import 'jest-location-mock'; import * as mpApp from '../../src/mp/app'; import { EXTRA_API, CLOUD_SDK } from '@cloudbase/weda-cloud-sdk'; import { EPLATFORM } from '../../src/common/constants'; describe('test src/mp/app.ts', () => { const initData = { appConfig: { staticResourceDomain: 'lowcode-9gu72kpiac8de2d6-1252394733.tcloudbaseapp.com', id: 'app' }, }; it('test createApp', () => { const app = mpApp.createMpApp(); expect(app.platform).toBe(EPLATFORM.MINIPROGRAM); }); it.skip('test createApp.__internal__.getConfig', () => { const app = mpApp.createMpApp(initData); expect(app.__internal__.getConfig()).toBe({ appId: initData.appConfig?.id, pages: [], envVersion: 'production', ...initData.appConfig, }); }); it('test createApp.__internal__.resolveStaticResourceUrl relative path', () => { (window as any)._isPrivate = false; const staticUrl = '/resources/2022-03/lowcode-55557'; const app = mpApp.createMpApp(initData); const res = app.__internal__.resolveStaticResourceUrl(staticUrl); expect(res).toBe('https://lowcode-9gu72kpiac8de2d6-1252394733.tcloudbaseapp.com/resources/2022-03/lowcode-55557'); }); it('test createApp.__internal__.resolveStaticResourceUrl absolute path', () => { const staticUrl = 'https://main.qcloudimg.com/raw/c85c9a875e9754545ee19f20438b2caa.svg'; const app = mpApp.createMpApp(initData); const res = app.__internal__.resolveStaticResourceUrl(staticUrl); expect(res).toBe(staticUrl); }); it('test createApp._setStateVal', () => { const app = mpApp.createMpApp(initData); const config = { varPath: 'main', val: 'hello', }; jest.spyOn(EXTRA_API, 'setState').mockImplementationOnce(() => {}); app._setStateVal(config); expect(EXTRA_API.setState).toBeCalled(); }); it('test createApp._setStateVal', () => { const app = mpApp.createMpApp(initData); const config = { varPath: 'main', val: 'hello', }; jest.spyOn(EXTRA_API, 'setState').mockImplementationOnce(() => {}); app._setStateVal(config); expect(EXTRA_API.setState).toBeCalled(); }); it('test createApp.__internal__.isMobile', () => { const app = mpApp.createMpApp(initData); jest.spyOn(wx, 'getSystemInfoSync').mockReturnValueOnce({ platform: 'weixin' } as any); const res = app.__internal__.isMobile(); expect(res).toBeTruthy(); }); it('test createApp.utils.getWXContext', async () => { const app = mpApp.createMpApp(initData); const data = { OPENID: 'oDXgH5VYKCLyhWE_rmPBlzjCjlPE', }; jest.spyOn(CLOUD_SDK, 'callWedaApi').mockImplementation(async () => ({ Data: data, })); const res = await app.utils.getWXContext(); expect(res).toBe(data); }); it('test createApp.utils.getWXContext err', async () => { const app = mpApp.createMpApp(initData); jest.spyOn(CLOUD_SDK, 'callWedaApi').mockImplementation(async () => ({ Data: '', })); const res = await app.utils.getWXContext(); expect(JSON.stringify(res)).toBe('{}'); }); it('test createApp.utils.getCurrentPage err', async () => { const app = mpApp.createMpApp(initData); const res = await app.utils.getCurrentPage(); expect(res).toBeNull(); }); it('test app', () => { const app = mpApp.app; app.__internal__.isMobile(); expect(app.init).toBeInstanceOf(Function); }); });