import { expect, expectAsync, tap } from '@push.rocks/tapbundle'; import * as smartrouter from '../ts/index.js'; let testrouter: smartrouter.SmartRouter; tap.test('first test', async () => { testrouter = new smartrouter.SmartRouter({}); expect(testrouter).toBeInstanceOf(smartrouter.SmartRouter); }); tap.test('should handle a route change', async (toolsArg) => { const done = toolsArg.defer(); testrouter.on('/myawesomeroute/:any', async (routeInfoArg) => { expect(routeInfoArg.params.any).toEqual('hello'); done.resolve(); }); testrouter.pushUrl('/myawesomeroute/hello'); await done.promise; }); tap.test('should handle a route change', async (toolsArg) => { const done = toolsArg.defer(); testrouter.on('/myawesomeroute2/:wow', async (routeInfoArg) => { expect(routeInfoArg.params.wow).toEqual('hello2'); done.resolve(); }); testrouter.pushUrl('/myawesomeroute2/hello2'); await done.promise; expect(window.location.href).toEqual('http://localhost:3007/myawesomeroute2/hello2'); }); tap.test('should find a query param', async (toolsArg) => { const done = toolsArg.defer(); testrouter.on('/myawesomeroute2/:wow', async (routeInfoArg) => { expect(routeInfoArg.params.wow).toEqual('hello2'); expect(routeInfoArg.queryParams.aparam).toEqual('Yes'); console.log('Here is what queryParams looks like'); console.log(JSON.stringify(routeInfoArg.queryParams)); done.resolve(); }); testrouter.pushUrl('/myawesomeroute2/hello2?aparam=Yes'); await done.promise; expect(window.location.href).toEqual('http://localhost:3007/myawesomeroute2/hello2?aparam=Yes'); }); tap.start();