jest.mock('./../Commons/Logger/Logger'); import { isToolbarVisible, saveActivity, registerClickToDial, registerOnFocus, getPageInfo, setSoftphoneWidth, setSoftphoneHeight, enableClickToDial, search, globalSearchAndScreenpop, globalSearch, screenpop, setScreenpopControl, getSearchLayout } from './ApplicationAPIExports'; 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 Helper from './HelperFunctions'; import { SearchLayouts, ChannelTypes, InteractionDirectionTypes, SearchRecords, Field } from './ApplicationAPI'; describe('ApplicationAPIExports', () => { beforeAll(() => {}); beforeEach(() => { Helper.__setResponseData(undefined); }); test('setScreenpopControl', async () => { const promise = setScreenpopControl(true); await expect(promise).resolves.toBeUndefined(); }); test('screenpop', async () => { const promise = screenpop(ChannelTypes.Telephony, InteractionDirectionTypes.Inbound, '0000', 'Case'); await expect(promise).resolves.toBeUndefined(); }); test('globalSearch', async () => { Helper.__setResponseData(new SearchRecords()); const promise = globalSearch(ChannelTypes.Telephony, InteractionDirectionTypes.Inbound, 'AccountNumber=01', 'select??', 1); await expect(promise).resolves.toEqual(expect.any(SearchRecords)); }); test('globalSearchAndScreenpop', async () => { Helper.__setResponseData(new SearchRecords()); const promise = globalSearchAndScreenpop(ChannelTypes.Telephony, InteractionDirectionTypes.Inbound, 'AccountNumber=01', 'select??', 1); await expect(promise).resolves.toEqual(expect.any(SearchRecords)); }); test('search', async () => { Helper.__setResponseData(new SearchRecords()); const fields: Field[] = [ { FieldName: 'phoneNumber', DisplayName: 'Phone Number', Value: '' } ]; const promise = search(ChannelTypes.Telephony, InteractionDirectionTypes.Inbound, 'valueToSearch', fields, 'Account', 1); await expect(promise).resolves.toEqual(expect.any(SearchRecords)); }); test('enable click to dial', async () => { const promise = enableClickToDial(true); await expect(promise).resolves.toBeUndefined(); }); test('set softphone height', async () => { const promise = setSoftphoneHeight(20); await expect(promise).resolves.toBeUndefined(); }); test('set softphone width', async () => { const promise = setSoftphoneWidth(20); await expect(promise).resolves.toBeUndefined(); }); test('get search layout', async () => { Helper.__setResponseData(new SearchLayouts()); const promise = getSearchLayout(); await expect(promise).resolves.toEqual(expect.any(SearchLayouts)); }); test('get page info', async () => { Helper.__setResponseData(new SearchRecords()); const promise = getPageInfo(); await expect(promise).resolves.toEqual(expect.any(SearchRecords)); }); test('register click-to-dial', async () => { const callback: (phoneNumber: 'string', records: SearchRecords) => Promise = jest.fn(); const promise = registerClickToDial(callback); await expect(promise).resolves.toBeUndefined(); }); test('register on focus', async () => { const callback: (records: SearchRecords) => Promise = jest.fn(); const promise = registerOnFocus(callback); await expect(promise).resolves.toBeUndefined(); }); test('save activity', async () => { Helper.__setResponseData('An activity id'); const promise = saveActivity(); await expect(promise).resolves.toEqual('An activity id'); }); test('is toolbar visible', async () => { Helper.__setResponseData(true); const promise = isToolbarVisible(); await expect(promise).resolves.toEqual(true); }); });