UNPKG

@simplito/privmx-webendpoint

Version:

PrivMX Web Endpoint library

57 lines (56 loc) 2.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const mockEventAPIs_1 = require("./__mocks__/mockEventAPIs"); const utils_1 = require("./__mocks__/utils"); const constants_1 = require("./__mocks__/constants"); describe('Inbox event manager', () => { let { q, manager } = (0, utils_1.createTestSetup)(); let mockEventsManager = manager.getInboxEventManager(new mockEventAPIs_1.MockInboxEventApi(q)); beforeEach(() => { let { q: _q, manager } = (0, utils_1.createTestSetup)(); q = _q; mockEventsManager = manager.getInboxEventManager(new mockEventAPIs_1.MockInboxEventApi(q)); }); it('should add callback for event', async () => { await mockEventsManager.onInboxEvent({ event: 'inboxUpdated', callback: () => { } }); expect(mockEventsManager.listeners.size).toBe(1); }); it('should function to remove callback from event', async () => { const removeListener = await mockEventsManager.onInboxEvent({ event: 'inboxUpdated', callback: () => { } }); expect(mockEventsManager.listeners.size).toBe(1); await removeListener(); expect(mockEventsManager.listeners.size).toBe(0); }); it('should register multiple callbacks for channel', async () => { const storeEventCb = jest.fn(); await mockEventsManager.onInboxEvent({ event: constants_1.MOCK_INBOX_CREATED_EVENT.type, callback: storeEventCb }); await mockEventsManager.onInboxEvent({ event: constants_1.MOCK_INBOX_CREATED_EVENT.type, callback: storeEventCb }); q.dispatchEvent(constants_1.MOCK_INBOX_CREATED_EVENT); //adding task on end of js event loop await (0, utils_1.waitForNextTick)(); expect(storeEventCb).toHaveBeenCalledTimes(2); }); it('should handle subscription for two channels', async () => { const storeEventCb = jest.fn(); const messageEventCb = jest.fn(); const inboxId = "98dsyvb8as7ybd0asydvb0as"; const event = (0, constants_1.MOCK_INBOX_ENTRY_DELETED_EVENT)(inboxId); await mockEventsManager.onInboxEvent({ event: constants_1.MOCK_INBOX_CREATED_EVENT.type, callback: storeEventCb }); await mockEventsManager.onEntryEvent(inboxId, { event: event.type, callback: messageEventCb }); q.dispatchEvent(constants_1.MOCK_INBOX_CREATED_EVENT); q.dispatchEvent(event); //adding task on end of js event loop await (0, utils_1.waitForNextTick)(); expect(storeEventCb).toHaveBeenCalledTimes(1); expect(messageEventCb).toHaveBeenCalledTimes(1); }); });