36 lines
1.5 KiB
JavaScript
36 lines
1.5 KiB
JavaScript
// Generated, do not edit. sha256:c6a688b05a3ee0ffe4f9c168acd72ea6bb6492b16f1c36d4741af1eab39eecdd
|
|||
|
|
import { describe, it, mock } from 'node:test';
|
||
|
|
import assert from 'node:assert/strict';
|
||
|
|
import { ROUTE_KEYS } from '../../shared/config.js';
|
||
|
|
|
||
|
|
let dicht = new Set();
|
||
|
|
mock.module('../../client/license.js', { namedExports: { locked: f => dicht.has(f) } });
|
||
|
|
const { registerRoute, routePage } = await import('../../client/routes.js');
|
||
|
|
|
||
|
|
const thuis = { render: () => {} };
|
||
|
|
const belasting = { render: () => {} };
|
||
|
|
registerRoute(ROUTE_KEYS.HOME, thuis);
|
||
|
|
registerRoute(ROUTE_KEYS.TAXES, belasting, { feature: 'tax' });
|
||
|
|
|
||
|
|
describe('routePage', () => {
|
||
|
|
it('geeft de pagina van een geregistreerde route', () => {
|
||
|
|
dicht = new Set();
|
||
|
|
assert.equal(routePage(ROUTE_KEYS.HOME), thuis);
|
||
|
|
assert.equal(routePage(ROUTE_KEYS.TAXES), belasting);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('geeft niets voor een route die de licentie uitzet, ook niet via het adres', () => {
|
||
|
|
dicht = new Set(['tax']);
|
||
|
|
assert.equal(routePage(ROUTE_KEYS.TAXES), null);
|
||
|
|
assert.equal(routePage(ROUTE_KEYS.HOME), thuis, 'een route zonder vlag blijft staan');
|
||
|
|
});
|
||
|
|
|
||
|
|
it('geeft niets voor een route die niet geregistreerd is (een andere editie)', () => {
|
||
|
|
assert.equal(routePage(ROUTE_KEYS.CHARTS), null);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('weigert een onbekende route en een tweede registratie', () => {
|
||
|
|
assert.throws(() => registerRoute('bestaat-niet', thuis), /Unknown route/);
|
||
|
|
assert.throws(() => registerRoute(ROUTE_KEYS.HOME, thuis), /registered twice/);
|
||
|
|
});
|
||
|
|
});
|