Files
blb-throne-of-the-bone-king/__tests__/navigationRoutes.test.ts
T

87 lines
2.1 KiB
TypeScript

import {
policyRoutes,
primaryMenuRoutes,
requiredPageRoutes,
toolkitRoutes,
routeDefinitions,
normalizeRouteName,
} from '../src/navigation/routes';
describe('routeDefinitions', () => {
it('defines every required page with labels and titles', () => {
expect(requiredPageRoutes).toEqual([
'home',
'newGame',
'saves',
'settings',
'policiesLegal',
'policiesPrivacy',
'policiesTerms',
'policiesCookies',
'credits',
'toolkit',
'toolkitOpening',
'toolkitPetitioners',
'toolkitRulings',
'toolkitSeed',
'toolkitResources',
'toolkitMap',
'toolkitFactions',
'toolkitFlags',
'toolkitStory',
'toolkitLore',
'toolkitAudio',
'toolkitCredits',
'toolkitEndings',
'toolkitReferences',
]);
for (const routeName of requiredPageRoutes) {
expect(routeDefinitions[routeName].label.length).toBeGreaterThan(0);
expect(routeDefinitions[routeName].title.length).toBeGreaterThan(0);
}
});
it('exposes home menu and policy submenu routes', () => {
expect(primaryMenuRoutes).toEqual([
'newGame',
'saves',
'settings',
'policies',
'credits',
'toolkit',
]);
expect(policyRoutes).toEqual([
'policiesLegal',
'policiesPrivacy',
'policiesTerms',
'policiesCookies',
]);
expect(toolkitRoutes).toEqual([
'toolkitOpening',
'toolkitPetitioners',
'toolkitRulings',
'toolkitSeed',
'toolkitResources',
'toolkitMap',
'toolkitFactions',
'toolkitFlags',
'toolkitStory',
'toolkitLore',
'toolkitAudio',
'toolkitCredits',
'toolkitEndings',
'toolkitReferences',
]);
});
it('normalizes stale persisted toolkit routes', () => {
expect(normalizeRouteName('toolkitOpeningSequence')).toBe('toolkit');
expect(normalizeRouteName('not-a-route')).toBe('home');
expect(normalizeRouteName('toolkitPetitioners')).toBe('toolkitPetitioners');
expect(normalizeRouteName('toolkitCredits')).toBe('toolkitCredits');
});
});