test(3663): add converter invocation test for stageSkillsForRuntimeAsSkills

RED-4/GREEN-4: verifies converter called with (content, skillName) per kept skill.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Tom Boucher
2026-05-17 00:13:25 -04:00
parent 151e4aa2c6
commit 6e0d3e8bd1

View File

@@ -43,6 +43,28 @@ describe('stageSkillsForRuntimeAsSkills', () => {
assert.strictEqual(typeof stageSkillsForRuntimeAsSkills, 'function');
});
test('converter is called with (content, skillName) for each kept skill', () => {
const src = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-rta-src-'));
let stagedDir;
try {
fs.writeFileSync(path.join(src, 'alpha.md'), '# alpha\n');
fs.writeFileSync(path.join(src, 'beta.md'), '# beta\n');
const calls = [];
const converter = (content, skillName) => {
calls.push([content, skillName]);
return content;
};
stagedDir = stageSkillsForRuntimeAsSkills(src, { skills: '*' }, converter, 'x-');
assert.strictEqual(calls.length, 2);
const callMap = Object.fromEntries(calls.map(([c, n]) => [n, c]));
assert.strictEqual(callMap['x-alpha'], '# alpha\n');
assert.strictEqual(callMap['x-beta'], '# beta\n');
} finally {
fs.rmSync(src, { recursive: true, force: true });
if (stagedDir) cleanupStagedSkills();
}
});
test('skills Set filters: only matching stems land in stagedDir', () => {
const src = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-rta-src-'));
let stagedDir;