Skip to main content

Testing

Testing ROUTER_GUARD_TOKEN extensions

If you have a module or providers that define ROUTER_GUARD_TOKEN, then it will be convenient to use special utilities to test them separately

import { ROUTER_GUARD_TOKEN } from '@tramvai/tokens-router';
import { testGuard } from '@tramvai/module-router/tests';
import { CustomModule } from './module';
import { providers } from './providers';

describe('router guards', () => {
it('should redirect from guard', async () => {
const { router } = testGuard({
providers,
});

await router.navigate('/test/');

expect(router.getCurrentUrl()).toMatchObject({
path: '/redirect/',
});
});

it('should block navigation', async () => {
const { router } = testGuard({
modules: [CustomModule],
});

expect(router.getCurrentUrl()).toMatchObject({ path: '/' });

await router.navigate('/test/').catch(() => null);

expect(router.getCurrentUrl()).toMatchObject({
path: '/',
});
});
});