import sdk from '@tcwd/weapps-sdk/lib/app-h5-sdk'; import * as actions from '../../../src/web/actions'; import * as utils from '../../../src/common/utils'; import * as scanCode from '../../../src/web/actions/scanCode/scanCode'; import * as service from '../../../src/common/models/request'; import { IWebAppAPI, createWebApp } from '../../../src/web/app'; afterEach(() => { // restore the spy created with spyOn jest.restoreAllMocks(); }); describe('test src/web/actions/actions.ts', () => { it('test createWebActionsAPI showModal isMobile=true', () => { jest.spyOn(utils, 'isMobile').mockReturnValue(true); const app = createWebApp(); const action = actions.createWebActionsAPI(app, sdk); action.showModal({}); expect(utils.isMobile).toBeCalled(); }); it('test createWebActionsAPI showModal isMobile=false', () => { jest.spyOn(utils, 'isMobile').mockReturnValue(false); const app = createWebApp(); Object.defineProperty(window, '@weapps-materials-main-gsd-h5-react', { value: { actions: { showModal: jest.fn(), }, }, writable: true, }); const action = actions.createWebActionsAPI(app, sdk); action.showModal({}); expect(utils.isMobile).toBeCalled(); }); it('test createWebActionsAPI showToast title.length>7', async () => { jest.spyOn(utils, 'isMobile').mockReturnValue(true); const app = createWebApp(); const action = actions.createWebActionsAPI(app, sdk); const res = await action.showToast({ title: 'xxxxxxxxxx' }); expect(res).toMatchObject({ errMsg: 'showToast:ok' }); }); it('test createWebActionsAPI showToast icon=error', async () => { jest.spyOn(utils, 'isMobile').mockReturnValue(true); const app = createWebApp(); const action = actions.createWebActionsAPI(app, sdk); const res = await action.showToast({ icon: 'error' }); expect(res).toMatchObject({ errMsg: 'showToast:ok' }); }); it('test createWebActionsAPI scanCode options=null', async () => { jest.spyOn(scanCode, 'scanCode').mockImplementation(() => {}); const app = createWebApp(); const action = actions.createWebActionsAPI(app, sdk); action.scanCode({ aaa: '', bbb: '', }); expect(scanCode.scanCode).toBeCalled(); }); it('test createWebActionsAPI scanCode', async () => { jest.spyOn(scanCode, 'scanCode').mockImplementation(() => {}); const app = createWebApp(); const action = actions.createWebActionsAPI(app, sdk); action.scanCode({}); expect(scanCode.scanCode).toBeCalled(); }); it('test createWebActionsAPI callProcess', async () => { const initData = { appConfig: { staticResourceDomain: 'lowcode-9gu72kpiac8de2d6-1252394733.tcloudbaseapp.com' } }; const app = createWebApp(initData); const data = { Data: [] }; const res = actions.createWebActionsAPI(app, initData); jest.spyOn(service, 'callWedaApiFn').mockImplementation(async () => { return new Promise((resolve, reject) => { return resolve(data); }); }); const result = await res.callProcess({ processKey: 'xx', startParams: { fieldType: 'xx', name: 'xx', paramCode: 'xx', entityCode: 'xx', fieldValueMap: [], }, } as any); expect(service.callWedaApiFn).toBeCalled(); expect(result).toMatchObject(data); }); it('test createWebActionsAPI callPhone', () => { const initData = { appConfig: { staticResourceDomain: 'lowcode-9gu72kpiac8de2d6-1252394733.tcloudbaseapp.com' } }; const app = createWebApp(initData); const res = actions.createWebActionsAPI(app, initData); const result = res.callPhone({ tel: 'xx', } as any); expect(result).toBe('tel:xx'); }); });