@gluonjs/test-utils / packages/test-utils/src / RouterFixtureOptions
Interface: RouterFixtureOptions<Routes>
Type Parameters
Routes
Routes extends RouteNamedMap = RouteNamedMap
Properties
initial?
readonlyoptionalinitial?:string| readonlystring[]
routes
readonlyroutes: readonlyRouteRecordRaw[]
Example
Set the initial memory URL and typed route table used to construct a Router fixture:
import type { GluonPlugin } from '@gluonjs/core';
import { defineStore } from '@gluonjs/store';
import {
createRouterFixture,
createStoreFixture,
testPlugin,
type RouterFixture,
type RouterFixtureOptions,
type StoreFixture,
type TestPluginUse,
} from '@gluonjs/test-utils';
const analytics: GluonPlugin<{ enabled: boolean }> = {
install: (_app, options) => console.log(options.enabled),
};
const plugin: TestPluginUse = testPlugin(analytics, { enabled: true });
type Routes = { report: { params: { id: string } } };
const routerOptions = {
initial: '/reports/41',
routes: [{ path: '/reports/:id', name: 'report' }],
} satisfies RouterFixtureOptions<Routes>;
const routerFixture: RouterFixture<Routes> = createRouterFixture<Routes>(routerOptions);
await routerFixture.ready;
await routerFixture.router.push({ name: 'report', params: { id: '42' } });
const storeFixture: StoreFixture = createStoreFixture({
initialState: { counter: { count: 4 } },
});
const counter = defineStore({ id: 'counter', state: () => ({ count: 0 }) });
console.log(storeFixture.manager.use(counter).count, plugin.options);
routerFixture.router.destroy();
storeFixture.manager.dispose();