Build and publish Eldorado documentation / build (pull_request) Successful in 40s
20 lines
1.2 KiB
JavaScript
20 lines
1.2 KiB
JavaScript
import {test} from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import {readFileSync, existsSync} from 'node:fs';
|
|
const read = p => readFileSync(p, 'utf8');
|
|
|
|
test('Strategy has one canonical Target, then Roadmap, without a landing menu duplicate', () => {
|
|
const sidebar = read('sidebars/strategy.ts').split('strategySidebar: [')[1].split(']')[0];
|
|
const ids = [...sidebar.matchAll(/'([^']+)'/g)].map(match => match[1]);
|
|
assert.deepEqual(ids, ['target-operating-model', 'roadmap', 'skills-governance', 'skills-quality', 'skills-adoption', 'measurement', 'skills-maintenance']);
|
|
assert.equal(ids.filter(id => id === 'target-operating-model').length, 1);
|
|
assert.match(read('docs/strategy/target-operating-model.mdx'), /^sidebar_label: Target$/m);
|
|
assert.match(read('docusaurus.config.ts'), /type: 'docSidebar', docsPluginId: 'strategy', sidebarId: 'strategySidebar', label: 'Strategy'/);
|
|
});
|
|
|
|
test('old Strategy entry redirects to Target instead of maintaining a second document', () => {
|
|
assert(!existsSync('docs/strategy/index.mdx'));
|
|
assert.match(read('docusaurus.config.ts'), /'@docusaurus\/plugin-client-redirects'/);
|
|
assert.match(read('docusaurus.config.ts'), /from: '\/strategy\/', to: '\/strategy\/target-operating-model\/'/);
|
|
});
|