mirror of
https://github.com/obra/superpowers
synced 2026-07-16 07:34:30 +00: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');
|
||||
const text = await readFile(piToolsPath, 'utf8');
|
||||
|
||||
for (const expected of ['subagent', 'pi-subagents', 'Task', 'TODO.md']) {
|
||||
assert.match(text, new RegExp(expected));
|
||||
}
|
||||
// Assert against the mapping-table rows only. The surrounding prose mentions
|
||||
// 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