import 'jest-location-mock'; import * as webApp from '../../src/web/app'; import { EXTRA_API } from '@cloudbase/weda-cloud-sdk'; describe('test app', () => { const initData = { appConfig: { staticResourceDomain: 'lowcode-9gu72kpiac8de2d6-1252394733.tcloudbaseapp.com' } }; afterEach(() => { // restore the spy created with spyOn jest.restoreAllMocks(); }); it('test createApp', () => { const app = webApp.createWebApp(); expect(app.platform).toBe('WEB'); }); it('test createApp.__internal__.getConfig', () => { const app = webApp.createWebApp(initData); expect(app.__internal__.getConfig()).toBe(initData.appConfig); }); it('test createApp.__internal__.getConfig is null', () => { const app = webApp.createWebApp(); expect(JSON.stringify(app.__internal__.getConfig())).toBe('{}'); }); it('test createApp.__internal__.getConfig is {}', () => { const app = webApp.createWebApp({}); expect(JSON.stringify(app.__internal__.getConfig())).toBe('{}'); }); it('test createApp.__internal__.resolveStaticResourceUrl relative path', () => { (window as any)._isPrivate = false; (window as any)._deployType = 'hybrid'; const staticUrl = '/resources/2022-03/lowcode-55557'; const app = webApp.createWebApp(initData); const res = app.__internal__.resolveStaticResourceUrl(staticUrl); expect(res).toBe('http://lowcode-9gu72kpiac8de2d6-1252394733.tcloudbaseapp.com/resources/2022-03/lowcode-55557'); }); it('test createApp.__internal__.resolveStaticResourceUrl app.domain=""', () => { (window as any)._isPrivate = false; (window as any)._deployType = 'hybrid'; const staticUrl = '/resources/2022-03/lowcode-55557'; const app = webApp.createWebApp(); const res = app.__internal__.resolveStaticResourceUrl(staticUrl); expect(res).toBe('http:///resources/2022-03/lowcode-55557'); }); it('test createApp.__internal__.resolveStaticResourceUrl window._isPrivate=true', () => { (window as any)._isPrivate = true; (window as any)._deployType = ''; const staticUrl = '/resources/2022-03/lowcode-55557'; const app = webApp.createWebApp(); const res = app.__internal__.resolveStaticResourceUrl(staticUrl); expect(res).toBe(staticUrl); }); it('test createApp.__internal__.resolveStaticResourceUrl absolute path', () => { const staticUrl = 'https://main.qcloudimg.com/raw/c85c9a875e9754545ee19f20438b2caa.svg'; const app = webApp.createWebApp(initData); const res = app.__internal__.resolveStaticResourceUrl(staticUrl); expect(res).toBe(staticUrl); }); it('test createApp.__internal__._setStateVal', () => { const app = webApp.createWebApp(initData); const config = { varPath: 'main', val: 'hello', }; jest.spyOn(EXTRA_API, 'setState').mockImplementationOnce(() => {}); app._setStateVal(config); expect(EXTRA_API.setState).toBeCalled(); }); it('test app', () => { const app = webApp.app; expect(app.init).toBeInstanceOf(Function); }); });