import { createWebRouterAPI } from '../../src/web/router'; import { createWebApp } from '../../src/web/app'; import sdk from '@tcwd/weapps-sdk/lib/app-h5-sdk'; describe('test src/web/router.ts', () => { const initData = { appConfig: { staticResourceDomain: 'lowcode-9gu72kpiac8de2d6-1252394733.tcloudbaseapp.com', pages: [ { id: 'home', }, ], }, }; it('test createWebRouterAPI.navigateTo mode=web', () => { const app = createWebApp(initData); const res = createWebRouterAPI(app, sdk); jest.spyOn(window, 'open').mockImplementation(jest.fn()); res.navigateTo({ pageId: 'home', params: {}, mode: 'web', } as any); expect(window.open).toBeCalled(); }); it('test createWebRouterAPI.navigateTo url.protocol === weda-page target===_blank', () => { const app = createWebApp(initData); const res = createWebRouterAPI(app, sdk); jest.spyOn(window, 'open').mockImplementation(jest.fn()); res.navigateTo({ url: 'weda-page://main/index?tt=2323&uu65553=&ww=', options: { target: '_blank' }, } as any); expect(window.open).toBeCalled(); }); it('test createWebRouterAPI.redirectTo mode=web', () => { const app = createWebApp(initData); const res = createWebRouterAPI(app, { redirectTo: jest.fn(), }); jest.spyOn(window, 'open').mockImplementation(jest.fn()); res.redirectTo({ pageId: 'home', params: {}, mode: 'web', } as any); expect(window.open).not.toBeCalled(); }); it('test createWebRouterAPI.redirectTo', () => { const app = createWebApp(initData); const res = createWebRouterAPI(app, { redirectTo: jest.fn(), }); jest.spyOn(window, 'open').mockImplementation(jest.fn()); res.redirectTo({ pageId: 'home', params: {}, } as any); expect(window.open).not.toBeCalled(); }); it('test createWebRouterAPI.relaunchHome', () => { const app = createWebApp(initData); const res = createWebRouterAPI(app, { reLaunch: jest.fn(), }); res.relaunchHome(); }); });