test(okr): referanse-integritet dekker skills relative lenker
This commit is contained in:
parent
5166dbf772
commit
3b1b255ed6
1 changed files with 38 additions and 0 deletions
|
|
@ -79,3 +79,41 @@ test('alle ${CLAUDE_PLUGIN_ROOT}-stier finnes paa disk', () => {
|
|||
}
|
||||
assert.deepEqual(missing, [], 'doede referanser funnet');
|
||||
});
|
||||
|
||||
// 1.8.0 (En kanon): kanon-konsolideringen legger til NYE krysslenker mellom
|
||||
// referansefiler (Steps 3/4/6/10/11). Denne casen fanger doede *relative*
|
||||
// .md-lenker i skills/-treet - komplementaert til ${CLAUDE_PLUGIN_ROOT}-
|
||||
// invariantene over. Kilder: SKILL.md (backtick `references/x.md` / `x.md`)
|
||||
// + sibling-krysslenker (`x.md`) inni references/. Alle forventes aa peke
|
||||
// paa en fil i references/ paa disk.
|
||||
const REF_REL = join('skills', 'okr-offentlig-sektor', 'references');
|
||||
const REL_MD_RE = /`(?:references\/)?([a-z0-9-]+\.md)`/g;
|
||||
|
||||
function collectSkillRelativeRefs() {
|
||||
const refs = [];
|
||||
const sources = [join('skills', 'okr-offentlig-sektor', 'SKILL.md')];
|
||||
for (const name of readdirSync(join(ROOT, REF_REL))) {
|
||||
if (name.endsWith('.md')) sources.push(join(REF_REL, name));
|
||||
}
|
||||
for (const file of sources) {
|
||||
const body = readFileSync(join(ROOT, file), 'utf8');
|
||||
for (const m of body.matchAll(REL_MD_RE)) {
|
||||
refs.push({ file, rel: join(REF_REL, m[1]) });
|
||||
}
|
||||
}
|
||||
return refs;
|
||||
}
|
||||
|
||||
test('SKILL.md + referansefil-krysslenker resolverer paa disk (relative .md)', () => {
|
||||
const refs = collectSkillRelativeRefs();
|
||||
assert.ok(refs.length >= 15, `fant bare ${refs.length} relative refs (regex broken?)`);
|
||||
const missing = [];
|
||||
for (const { file, rel } of refs) {
|
||||
try {
|
||||
assertResolvable(rel);
|
||||
} catch (e) {
|
||||
missing.push(`${file} -> ${rel} (${e.message})`);
|
||||
}
|
||||
}
|
||||
assert.deepEqual(missing, [], 'doede relative referanser i skills/-treet');
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue