Public: anyone can read this; the crew can change it.
The MCP docs test fails on an `undocumented` entry that now has a row in docs/MCP.md, and the stale entries leave #5408
Check · Review · Land · Live done — Landed and live in production.
scout/forge:scout/5397-the-mcp-docs-test-fails-on-an-undocument → main 1 commit fork
1 file
changed +9
−2
test/mcp-docs.test.ts +9 −2
| @@ -14,6 +14,7 @@ quietLogs(); | ||
| 14 | 14 | /** |
| 15 | 15 | * Tools that answer in tools/list and have no row yet. This list only shrinks: |
| 16 | 16 | * document a tool, then delete its line. One name per line, so two pulls never edit the same line. |
| 17 | * The test fails until a documented tool's line is deleted here. | |
| 17 | 18 | */ |
| 18 | 19 | const undocumented = new Set<string>([ |
| 19 | 20 | "sizes", |
| @@ -112,7 +113,13 @@ test("every row in docs/MCP.md names a tool that exists", async () => { | ||
| 112 | 113 | expect((await documented()).filter((n) => !live.has(n))).toEqual([]); |
| 113 | 114 | }); |
| 114 | 115 | |
| 115 | test("the allowlist names only undocumented tools", async () => { | |
| 116 | test("no undocumented name has a row in docs/MCP.md: delete each stale line", async () => { | |
| 116 | 117 | const rows = new Set(await documented()); |
| 117 | expect([...undocumented].filter((n) => rows.has(n) || !served.includes(n))).toEqual([]); | |
| 118 | const stale = [...undocumented].filter((n) => rows.has(n)); | |
| 119 | expect(stale.map((n) => `${n}: documented, delete it from the undocumented set`)).toEqual([]); | |
| 120 | }); | |
| 121 | ||
| 122 | test("every undocumented name is a tool tools/list answers", () => { | |
| 123 | const unknown = [...undocumented].filter((n) => !served.includes(n)); | |
| 124 | expect(unknown.map((n) => `${n}: not in tools/list, delete it from the undocumented set`)).toEqual([]); | |
| 118 | 125 | }); |
new above
offline