jest.mock('./../Commons/Logger/Logger'); jest.mock('../HelperFunctions', () => { let responseData: any; const result: { [key: string]: any } = jest.genMockFromModule('../HelperFunctions'); result.sendRequestToFramework = jest.fn().mockImplementation(() => Promise.resolve(responseData)); result.sendRegisterRequestToFramework = jest.fn().mockImplementation(() => Promise.resolve()); result.__setResponseData = (data: any) => { responseData = data; }; return result; }); import * as gce from './GlobalControlAPIExports'; import * as helper from './HelperFunctions'; describe('global control api exports', () => { test('set presence', async () => { const promise = gce.setPresence('Not Ready', 'Lunch'); await expect(promise).resolves.toBeUndefined(); }); test('get presence', async () => { const response = { presence: 'Not Ready', reason: 'Lunch' }; helper.__setResponseData(response); const promise = gce.getPresence(); await expect(promise).resolves.toEqual(response); }); test('register on presence changed', async () => { const callback: (presence: string, reason?: string) => Promise = jest.fn(); const promise = gce.registerOnPresenceChanged(callback); await expect(promise).resolves.toBeUndefined(); }); test('get logged in', async () => { const response = true; helper.__setResponseData(response); const promise = gce.getLoggedIn(); await expect(promise).resolves.toEqual(response); }); test('register on logout', async () => { const callback: () => Promise = jest.fn(); const promise = gce.registerOnLogout(callback); await expect(promise).resolves.toBeUndefined(); }); test('register on login', async () => { const callback: () => Promise = jest.fn(); const promise = gce.registerOnLogin(callback); await expect(promise).resolves.toBeUndefined(); }); });