blob: 1eb6edaf57ed913c2df9e0d753b168dd79dbdbce [file] [log] [blame]
import {PluginPubSub} from './plugin-pubsub';
declare const window: Window;
describe('BasePubSub Tests', () => {
let pluginPubSub: PluginPubSub;
let testSub: string = 'testSub';
let testParentUrl: string = 'http://127.0.0.1';
let testEventsToWait: Array<string> = ['CHECK_IN', 'WINDOW_OUT'];
beforeEach(() => {
pluginPubSub = new PluginPubSub(testSub, testParentUrl, testEventsToWait);
});
describe('constructor tests', () => {
it('should init class property', () => {
expect(pluginPubSub.subscribers.size).toBe(1);
expect(pluginPubSub.eventsCallbacks.length).toBe(0);
expect(pluginPubSub.eventsToWait.size).toBe(0);
expect(pluginPubSub.clientId).toBe('testSub');
});
});
describe('subscribe function tests', () => {
it('should call notify function with the PLUGIN_REGISTER event and the register data', () => {
pluginPubSub.notify = jest.fn();
let wantedRegisterData = {
pluginId: testSub,
eventsToWait: []
};
pluginPubSub.subscribe();
expect(pluginPubSub.notify).toHaveBeenCalledWith('PLUGIN_REGISTER', wantedRegisterData);
})
});
describe('unsubscribe function tests', () => {
it('should call notify function with the PLUGIN_UNREGISTER event and the unregister data', () => {
pluginPubSub.notify = jest.fn();
let wantedUnregisterData = {
pluginId: testSub,
};
pluginPubSub.unsubscribe();
expect(pluginPubSub.notify).toHaveBeenCalledWith('PLUGIN_UNREGISTER', wantedUnregisterData);
})
});
});