Incognito-Wiki/tests/programme-navigation.test.mjs

21 lines
1.1 KiB
JavaScript

import assert from 'node:assert/strict';
import test from 'node:test';
import { programmeForPathname, programmeSwitchTargets, sidebarForPathname } from '../src/config/programme-navigation.mjs';
test('programme routes select the matching sidebar while retaining global groups', () => {
assert.equal(programmeForPathname('/computer-science/year-1/'), 'computer-science');
assert.equal(programmeForPathname('/data-science-and-ai/year-2/'), 'data-science-and-ai');
assert.equal(programmeForPathname('/useful-information/'), null);
for (const path of ['/computer-science/', '/data-science-and-ai/', '/useful-information/']) {
const text = JSON.stringify(sidebarForPathname(path));
assert.match(text, /Useful Information/);
assert.match(text, /Master AI/);
assert.match(text, /previous-exams-and-documents/);
}
});
test('shared course switches to its paired programme route', () => {
const targets = programmeSwitchTargets('/computer-science/year-1/period-2/calculus/');
assert.equal(targets.dataScience, '/data-science-and-ai/year-1/block-2/calculus/');
assert.equal(targets.computerScience, '/computer-science/year-1/period-2/calculus/');
});