1const assert = require("node:assert/strict");
2const test = require("node:test");
3
4const { countTestDelta, render } = require("./test-delta.cjs");
5
6const diff = `diff --git a/apps/web/src/Panel.browser.test.tsx b/apps/web/src/Panel.browser.test.tsx
7new file mode 100644
8--- /dev/null
9+++ b/apps/web/src/Panel.browser.test.tsx
10@@ -0,0 +1,4 @@
11+it("opens", async () => {});
12+ it.each<{ n: number }>([{ n: 1 }])("renders $n", async () => {});
13+// it("is a comment, still counted only when it starts the line")
14diff --git a/apps/server/src/thing.test.ts b/apps/server/src/thing.test.ts
15--- a/apps/server/src/thing.test.ts
16+++ b/apps/server/src/thing.test.ts
17@@ -3,2 +3,1 @@
18-it.effect("old", () => {});
19-test("older", () => {});
20+ it.effect("new", () => {});
21diff --git a/packages/shared/src/gone.test.ts b/packages/shared/src/gone.test.ts
22deleted file mode 100644
23--- a/packages/shared/src/gone.test.ts
24+++ /dev/null
25@@ -1,1 +0,0 @@
26-it("goes", () => {});
27diff --git a/apps/web/src/Menu.test.tsx b/apps/web/src/Menu.browser.test.tsx
28similarity index 100%
29rename from apps/web/src/Menu.test.tsx
30rename to apps/web/src/Menu.browser.test.tsx
31diff --git a/apps/web/src/Old.browser.test.tsx b/apps/web/src/New.browser.test.tsx
32similarity index 100%
33rename from apps/web/src/Old.browser.test.tsx
34rename to apps/web/src/New.browser.test.tsx
35diff --git a/apps/web/src/Panel.tsx b/apps/web/src/Panel.tsx
36--- a/apps/web/src/Panel.tsx
37+++ b/apps/web/src/Panel.tsx
38@@ -1 +1 @@
39+it("is not a test file", () => {});
40`;
41
42test("counts cases by kind, including deleted files, and finds new or renamed browser files", () => {
43 assert.deepEqual(countTestDelta(diff), {
44 kinds: { browser: 2, server: -1, unit: -1 },
45 net: 0,
46 newBrowserFiles: ["apps/web/src/Panel.browser.test.tsx", "apps/web/src/Menu.browser.test.tsx"],
47 });
48});
49
50test("reports only growth worth a reviewer's attention", () => {
51 const quiet = { kinds: { browser: 0, server: 3, unit: 5 }, net: 8, newBrowserFiles: [] };
52 assert.equal(render(quiet), null);
53 const growth = { kinds: { browser: 4, server: 10, unit: 12 }, net: 26, newBrowserFiles: [] };
54 assert.match(render(growth), /\*\*\+26 test cases\*\* \(browser \+4, unit \+12, server \+10\)/);
55 assert.match(
56 render(countTestDelta(diff)),
57 /New browser test files: `apps\/web\/src\/Panel\.browser\.test\.tsx`/,
58 );
59});