|
|
@@ -113,6 +113,19 @@ describe("a red many pulls share", () => { |
| 113 | 113 |
expect(shared(red("i3", [longer]))).toBe(true); |
| 114 | 114 |
}); |
| 115 | 115 |
|
| 116 |
test("three pulls each changing a tool without regenerating docs/MCP.md are three pulls' own reds (#7906)", () => { |
| 117 |
const table = "the gathered tools > docs/MCP.md's tool table is current: run `bun scripts/mcp-tools.ts`"; |
| 118 |
const index = "the gathered tools > the index is current: run `bun scripts/mcp-tools.ts`"; |
| 119 |
for (const i of ["i1", "i2", "i3"]) red(i, [table, index]); |
| 120 |
expect(shared(red("i4", [table]))).toBe(false); |
| 121 |
expect(shared(red("i5", [index]))).toBe(false); |
| 122 |
expect(sharedTests(db)).toEqual([]); |
| 123 |
|
| 124 |
const other = "the gathered tools > are ordered by code point, not the machine's locale"; |
| 125 |
for (const i of ["i1", "i2"]) red(i, [other]); |
| 126 |
expect(shared(red("i3", [other]))).toBe(true); |
| 127 |
}); |
| 128 |
|
| 116 | 129 |
test("every tree gate names a suite, or a test in it, that exists", () => { |
| 117 | 130 |
const names = new Set<string>(); |
| 118 | 131 |
for (const f of new Glob("test/*.test.ts").scanSync(".")) for (const n of suiteNames(readFileSync(f, "utf8"))) names.add(n); |