mirror of
https://github.com/obra/superpowers.git
synced 2026-07-17 23:44:04 +08:00
test(pi): scope mapping assertions to the table, not whole file
The pi tokens (subagent, pi-subagents, Task, TODO.md) also appear in the surrounding prose, so matching the whole file passed even with the mapping table deleted — the exact regression this test exists to catch. Filter to table rows (lines starting with '|') so the assertion fails when the table is gone and passes on dev. Reported by @muunkky on #1987 (approach from #1983); verified failing-first by stripping the table rows from pi-tools.md.
This commit is contained in:
committed by
Jesse Vincent
parent
2b1c06a849
commit
7a81eb7177
@@ -122,7 +122,16 @@ test('pi tools reference documents pi-specific mappings', async () => {
|
|||||||
assert.equal(existsSync(piToolsPath), true, 'pi-tools.md should exist');
|
assert.equal(existsSync(piToolsPath), true, 'pi-tools.md should exist');
|
||||||
const text = await readFile(piToolsPath, 'utf8');
|
const text = await readFile(piToolsPath, 'utf8');
|
||||||
|
|
||||||
for (const expected of ['subagent', 'pi-subagents', 'Task', 'TODO.md']) {
|
// Assert against the mapping-table rows only. The surrounding prose mentions
|
||||||
assert.match(text, new RegExp(expected));
|
// these same tokens, so matching the whole file would still pass if the table
|
||||||
}
|
// were deleted — the exact regression this test exists to catch.
|
||||||
|
const rows = text.split('\n').filter((line) => line.startsWith('|'));
|
||||||
|
assert.ok(
|
||||||
|
rows.some((row) => /subagent/i.test(row)),
|
||||||
|
'mapping table documents subagent dispatch',
|
||||||
|
);
|
||||||
|
assert.ok(
|
||||||
|
rows.some((row) => /todo|task/i.test(row)),
|
||||||
|
'mapping table documents task tracking',
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user