angular/projects/ng-devtools/src/lib/devtools-tabs/devtools-tabs.spec.ts
2020-06-17 10:07:25 -07:00

53 lines
1.9 KiB
TypeScript

import { DevToolsTabsComponent } from './devtools-tabs.component';
import { ApplicationEnvironment } from 'ng-devtools';
import { Events, MessageBus } from 'protocol';
import { TabUpdate } from './tab-update';
describe('DevtoolsTabsComponent', () => {
let messageBusMock: MessageBus<Events>;
let applicationEnvironmentMock: ApplicationEnvironment;
let comp: DevToolsTabsComponent;
let mockThemeService: any;
beforeEach(() => {
messageBusMock = jasmine.createSpyObj('messageBus', ['on', 'once', 'emit', 'destroy']);
applicationEnvironmentMock = jasmine.createSpyObj('applicationEnvironment', ['environment']);
mockThemeService = {};
comp = new DevToolsTabsComponent(
new TabUpdate(),
mockThemeService as any,
messageBusMock,
applicationEnvironmentMock
);
});
it('should create instance from class', () => {
expect(comp).toBeTruthy();
});
it('toggles inspector flag', () => {
expect(comp.inspectorRunning).toBe(false);
comp.toggleInspectorState();
expect(comp.inspectorRunning).toBe(true);
comp.toggleInspectorState();
expect(comp.inspectorRunning).toBe(false);
});
it('emits inspector event', () => {
comp.tabGroup = jasmine.createSpyObj('tabGroup', ['selectedIndex']);
comp.toggleInspector();
expect(messageBusMock.emit).toHaveBeenCalledTimes(1);
expect(messageBusMock.emit).toHaveBeenCalledWith('inspectorStart');
comp.toggleInspector();
expect(messageBusMock.emit).toHaveBeenCalledTimes(3);
expect(messageBusMock.emit).toHaveBeenCalledWith('inspectorEnd');
expect(messageBusMock.emit).toHaveBeenCalledWith('removeHighlightOverlay');
});
it('calls child refresh method', () => {
comp.directiveExplorer = jasmine.createSpyObj('directiveExplorer', ['refresh']);
comp.refresh();
expect(comp.directiveExplorer.refresh).toHaveBeenCalledTimes(1);
});
});