@paretools/test 0.9.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +35 -18
  2. package/dist/index.js +1 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/formatters.d.ts +1 -0
  5. package/dist/lib/formatters.d.ts.map +1 -1
  6. package/dist/lib/formatters.js +4 -0
  7. package/dist/lib/formatters.js.map +1 -1
  8. package/dist/lib/parsers/jest.d.ts +4 -0
  9. package/dist/lib/parsers/jest.d.ts.map +1 -1
  10. package/dist/lib/parsers/jest.js +39 -2
  11. package/dist/lib/parsers/jest.js.map +1 -1
  12. package/dist/lib/parsers/mocha.d.ts +4 -0
  13. package/dist/lib/parsers/mocha.d.ts.map +1 -1
  14. package/dist/lib/parsers/mocha.js +47 -2
  15. package/dist/lib/parsers/mocha.js.map +1 -1
  16. package/dist/lib/parsers/playwright.d.ts.map +1 -1
  17. package/dist/lib/parsers/playwright.js +1 -0
  18. package/dist/lib/parsers/playwright.js.map +1 -1
  19. package/dist/lib/parsers/pytest.d.ts +4 -0
  20. package/dist/lib/parsers/pytest.d.ts.map +1 -1
  21. package/dist/lib/parsers/pytest.js +35 -2
  22. package/dist/lib/parsers/pytest.js.map +1 -1
  23. package/dist/lib/parsers/vitest.d.ts +4 -0
  24. package/dist/lib/parsers/vitest.d.ts.map +1 -1
  25. package/dist/lib/parsers/vitest.js +39 -2
  26. package/dist/lib/parsers/vitest.js.map +1 -1
  27. package/dist/lib/timeouts.d.ts +3 -0
  28. package/dist/lib/timeouts.d.ts.map +1 -0
  29. package/dist/lib/timeouts.js +3 -0
  30. package/dist/lib/timeouts.js.map +1 -0
  31. package/dist/schemas/index.d.ts +17 -0
  32. package/dist/schemas/index.d.ts.map +1 -1
  33. package/dist/schemas/index.js +12 -0
  34. package/dist/schemas/index.js.map +1 -1
  35. package/dist/tools/coverage.d.ts +1 -1
  36. package/dist/tools/coverage.d.ts.map +1 -1
  37. package/dist/tools/coverage.js +103 -38
  38. package/dist/tools/coverage.js.map +1 -1
  39. package/dist/tools/playwright.d.ts.map +1 -1
  40. package/dist/tools/playwright.js +5 -15
  41. package/dist/tools/playwright.js.map +1 -1
  42. package/dist/tools/run.d.ts +3 -1
  43. package/dist/tools/run.d.ts.map +1 -1
  44. package/dist/tools/run.js +21 -18
  45. package/dist/tools/run.js.map +1 -1
  46. package/package.json +7 -3
package/README.md CHANGED
@@ -7,12 +7,13 @@
7
7
 
8
8
  Part of the [Pare](https://github.com/Dave-London/Pare) suite of MCP servers. Auto-detects pytest, jest, vitest, and mocha.
9
9
 
10
- ## Tools (2)
10
+ ## Tools (3)
11
11
 
12
- | Tool | Description |
13
- | ---------- | ------------------------------------------------------- |
14
- | `run` | Run tests, returns pass/fail counts and failure details |
15
- | `coverage` | Run tests with coverage, returns per-file summary |
12
+ | Tool | Description |
13
+ | ------------ | ------------------------------------------------------- |
14
+ | `run` | Run tests, returns pass/fail counts and failure details |
15
+ | `coverage` | Run tests with coverage, returns per-file summary |
16
+ | `playwright` | Run Playwright tests with structured pass/fail output |
16
17
 
17
18
  ## Quick Start
18
19
 
@@ -54,19 +55,35 @@ Add to your MCP client config:
54
55
  }
55
56
  ```
56
57
 
57
- ## All Pare Servers (147 tools)
58
-
59
- | Package | Tools | Wraps |
60
- | -------------------------------------------------------------------- | --------------------------------------------------------------------------- | ---------------------------------- |
61
- | [@paretools/git](https://www.npmjs.com/package/@paretools/git) | status, log, diff, branch, show, add, commit, push, pull, checkout | git |
62
- | **@paretools/test** | run, coverage | pytest, jest, vitest, mocha |
63
- | [@paretools/npm](https://www.npmjs.com/package/@paretools/npm) | install, audit, outdated, list, run, test, init | npm |
64
- | [@paretools/build](https://www.npmjs.com/package/@paretools/build) | tsc, build, esbuild, vite-build, webpack | tsc, esbuild, vite, webpack |
65
- | [@paretools/lint](https://www.npmjs.com/package/@paretools/lint) | lint, format-check, prettier-format, biome-check, biome-format | eslint, prettier, biome |
66
- | [@paretools/python](https://www.npmjs.com/package/@paretools/python) | pip-install, mypy, ruff-check, pip-audit, pytest, uv-install, uv-run, black | pip, mypy, ruff, pytest, uv, black |
67
- | [@paretools/docker](https://www.npmjs.com/package/@paretools/docker) | ps, build, logs, images, run, exec, compose-up, compose-down, pull | docker, docker compose |
68
- | [@paretools/cargo](https://www.npmjs.com/package/@paretools/cargo) | build, test, clippy, run, add, remove, fmt, doc, check | cargo |
69
- | [@paretools/go](https://www.npmjs.com/package/@paretools/go) | build, test, vet, run, mod-tidy, fmt, generate | go, gofmt |
58
+ ## Timeout Policy
59
+
60
+ - Tool process timeout (`run`, `coverage`, `playwright`): `300_000ms` (5 minutes)
61
+ - Integration test MCP call timeout: `300_000ms`
62
+ - Vitest file/test timeout for this package: `300_000ms`
63
+
64
+ This package runs real downstream suites (including `@paretools/git` integration tests), so lower global limits like 120s can fail due to cumulative runtime on slower CI/Windows runners.
65
+
66
+ ## Test Batching (Maintainers)
67
+
68
+ - `pnpm test:unit` runs fast parser/formatter/helper tests
69
+ - `pnpm test:integration` runs MCP integration + tool-params tests
70
+ - `pnpm test:fidelity` runs the long fidelity suite
71
+
72
+ The default `pnpm test` runs these batches sequentially for earlier failure and clearer triage.
73
+
74
+ ## All Pare Servers (149 tools)
75
+
76
+ | Package | Tools | Wraps |
77
+ | -------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------- |
78
+ | [@paretools/git](https://www.npmjs.com/package/@paretools/git) | status, log, diff, branch, show, add, commit, push, pull, checkout | git |
79
+ | **@paretools/test** | run, coverage, playwright | pytest, jest, vitest, mocha, playwright |
80
+ | [@paretools/npm](https://www.npmjs.com/package/@paretools/npm) | install, audit, outdated, list, run, test, init | npm |
81
+ | [@paretools/build](https://www.npmjs.com/package/@paretools/build) | tsc, build, esbuild, vite-build, webpack | tsc, esbuild, vite, webpack |
82
+ | [@paretools/lint](https://www.npmjs.com/package/@paretools/lint) | lint, format-check, prettier-format, biome-check, biome-format | eslint, prettier, biome |
83
+ | [@paretools/python](https://www.npmjs.com/package/@paretools/python) | pip-install, mypy, ruff-check, pip-audit, pytest, uv-install, uv-run, black | pip, mypy, ruff, pytest, uv, black |
84
+ | [@paretools/docker](https://www.npmjs.com/package/@paretools/docker) | ps, build, logs, images, run, exec, compose-up, compose-down, pull | docker, docker compose |
85
+ | [@paretools/cargo](https://www.npmjs.com/package/@paretools/cargo) | build, test, clippy, run, add, remove, fmt, doc, check | cargo |
86
+ | [@paretools/go](https://www.npmjs.com/package/@paretools/go) | build, test, vet, run, mod-tidy, fmt, generate | go, gofmt |
70
87
 
71
88
  ## Compatible Clients
72
89
 
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { registerAllTools } from "./tools/index.js";
5
5
  const server = new McpServer({ name: "@paretools/test", version: "0.8.1" }, {
6
- instructions: "Structured test runner operations (run, coverage). Auto-detects pytest, jest, vitest, and mocha. Use instead of running test commands via bash. Returns typed JSON with structured pass/fail results and failure details.",
6
+ instructions: "Structured test runner operations (run, coverage). Auto-detects pytest, jest, vitest, and mocha. Returns typed JSON with structured pass/fail results and failure details.",
7
7
  });
8
8
  registerAllTools(server);
9
9
  const transport = new StdioServerTransport();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC7C;IACE,YAAY,EACV,2NAA2N;CAC9N,CACF,CAAC;AAEF,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAEzB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC7C;IACE,YAAY,EACV,4KAA4K;CAC/K,CACF,CAAC;AAEF,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAEzB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC"}
@@ -26,6 +26,7 @@ export interface CoverageCompact {
26
26
  [key: string]: unknown;
27
27
  framework: string;
28
28
  summary: {
29
+ statements?: number;
29
30
  lines: number;
30
31
  branches?: number;
31
32
  functions?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,mHAAmH;AACnH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAYhD;AAED,kGAAkG;AAClG,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAelD;AAID,uGAAuG;AACvG,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,cAAc,CAS5D;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAW9D;AAED,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,GAAG,eAAe,CAO/D;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAahE;AAID,qFAAqF;AACrF,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAelE;AAED,sGAAsG;AACtG,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAQvF;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,uBAAuB,GAAG,MAAM,CAchF"}
1
+ {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,mHAAmH;AACnH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAYhD;AAED,kGAAkG;AAClG,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAiBlD;AAID,uGAAuG;AACvG,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,cAAc,CAS5D;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAW9D;AAED,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,GAAG,eAAe,CAO/D;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAehE;AAID,qFAAqF;AACrF,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAelE;AAED,sGAAsG;AACtG,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,gBAAgB,GAAG,uBAAuB,CAQvF;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,uBAAuB,GAAG,MAAM,CAchF"}
@@ -13,6 +13,8 @@ export function formatTestRun(r) {
13
13
  /** Formats structured coverage data into a human-readable summary with per-file line coverage. */
14
14
  export function formatCoverage(c) {
15
15
  const parts = [`Coverage (${c.framework}): ${c.summary.lines}% lines`];
16
+ if (c.summary.statements !== undefined)
17
+ parts[0] += `, ${c.summary.statements}% statements`;
16
18
  if (c.summary.branches !== undefined)
17
19
  parts[0] += `, ${c.summary.branches}% branches`;
18
20
  if (c.summary.functions !== undefined)
@@ -55,6 +57,8 @@ export function compactCoverageMap(c) {
55
57
  }
56
58
  export function formatCoverageCompact(c) {
57
59
  const parts = [`Coverage (${c.framework}): ${c.summary.lines}% lines`];
60
+ if (c.summary.statements !== undefined)
61
+ parts[0] += `, ${c.summary.statements}% statements`;
58
62
  if (c.summary.branches !== undefined)
59
63
  parts[0] += `, ${c.summary.branches}% branches`;
60
64
  if (c.summary.functions !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/lib/formatters.ts"],"names":[],"mappings":"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"}
@@ -15,4 +15,8 @@ export declare function parseJestJson(jsonStr: string): TestRun;
15
15
  * ----------|---------|----------|---------|---------|
16
16
  */
17
17
  export declare function parseJestCoverage(stdout: string): Coverage;
18
+ /**
19
+ * Parses Jest JSON summary coverage output (`coverage-summary.json`).
20
+ */
21
+ export declare function parseJestCoverageJson(jsonStr: string): Coverage;
18
22
  //# sourceMappingURL=jest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jest.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/jest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAmChE;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAyCtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAmC1D"}
1
+ {"version":3,"file":"jest.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/jest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAoChE;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAkDtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAoC1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAkC/D"}
@@ -6,8 +6,15 @@ export function parseJestJson(jsonStr) {
6
6
  const endTime = Date.now();
7
7
  const duration = (endTime - data.startTime) / 1000;
8
8
  const failures = [];
9
+ const tests = [];
9
10
  for (const suite of data.testResults) {
10
11
  for (const test of suite.testResults) {
12
+ tests.push({
13
+ name: test.fullName,
14
+ file: suite.testFilePath,
15
+ status: test.status === "failed" ? "failed" : test.status === "passed" ? "passed" : "skipped",
16
+ ...(test.duration !== undefined ? { duration: test.duration / 1000 } : {}),
17
+ });
11
18
  if (test.status === "failed") {
12
19
  const message = test.failureMessages.join("\n").trim();
13
20
  // Try to extract expected/actual from Jest's diff output
@@ -35,6 +42,7 @@ export function parseJestJson(jsonStr) {
35
42
  duration: Math.round(duration * 100) / 100,
36
43
  },
37
44
  failures,
45
+ ...(tests.length > 0 ? { tests } : {}),
38
46
  };
39
47
  }
40
48
  /**
@@ -51,17 +59,18 @@ export function parseJestJson(jsonStr) {
51
59
  export function parseJestCoverage(stdout) {
52
60
  const lines = stdout.split("\n");
53
61
  const files = [];
54
- let summary = { lines: 0, branches: 0, functions: 0 };
62
+ let summary = { statements: 0, lines: 0, branches: 0, functions: 0 };
55
63
  for (const line of lines) {
56
64
  // Match coverage table rows: " file | stmts | branch | funcs | lines | uncovered"
57
65
  const match = line.match(/\s*(.+?)\s*\|\s*([\d.]+)\s*\|\s*([\d.]+)\s*\|\s*([\d.]+)\s*\|\s*([\d.]+)\s*\|/);
58
66
  if (!match)
59
67
  continue;
60
- const [, name, , branch, funcs, linePct] = match;
68
+ const [, name, stmts, branch, funcs, linePct] = match;
61
69
  const trimName = name.trim();
62
70
  if (trimName === "File" || trimName.match(/^-+$/))
63
71
  continue;
64
72
  const entry = {
73
+ statements: parseFloat(stmts),
65
74
  lines: parseFloat(linePct),
66
75
  branches: parseFloat(branch),
67
76
  functions: parseFloat(funcs),
@@ -79,4 +88,32 @@ export function parseJestCoverage(stdout) {
79
88
  files,
80
89
  };
81
90
  }
91
+ /**
92
+ * Parses Jest JSON summary coverage output (`coverage-summary.json`).
93
+ */
94
+ export function parseJestCoverageJson(jsonStr) {
95
+ const parsed = JSON.parse(jsonStr);
96
+ const files = [];
97
+ let summary = { statements: 0, lines: 0, branches: 0, functions: 0 };
98
+ for (const [file, metrics] of Object.entries(parsed)) {
99
+ const entry = {
100
+ statements: metrics.statements?.pct ?? 0,
101
+ lines: metrics.lines?.pct ?? 0,
102
+ branches: metrics.branches?.pct ?? 0,
103
+ functions: metrics.functions?.pct ?? 0,
104
+ };
105
+ if (file === "total") {
106
+ summary = entry;
107
+ }
108
+ else {
109
+ files.push({ file, ...entry });
110
+ }
111
+ }
112
+ return {
113
+ framework: "jest",
114
+ summary,
115
+ files,
116
+ totalFiles: files.length,
117
+ };
118
+ }
82
119
  //# sourceMappingURL=jest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jest.js","sourceRoot":"","sources":["../../../src/lib/parsers/jest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jest.js","sourceRoot":"","sources":["../../../src/lib/parsers/jest.ts"],"names":[],"mappings":"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"}
@@ -15,4 +15,8 @@ export declare function parseMochaJson(jsonStr: string): TestRun;
15
15
  * ----------|---------|----------|---------|---------|
16
16
  */
17
17
  export declare function parseMochaCoverage(stdout: string): Coverage;
18
+ /**
19
+ * Parses nyc JSON summary coverage output (`coverage-summary.json`).
20
+ */
21
+ export declare function parseMochaCoverageJson(jsonStr: string): Coverage;
18
22
  //# sourceMappingURL=mocha.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mocha.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/mocha.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAuChE;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAiCvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAkC3D"}
1
+ {"version":3,"file":"mocha.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/mocha.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAuChE;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAkDvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAmC3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAkChE"}
@@ -4,7 +4,22 @@
4
4
  export function parseMochaJson(jsonStr) {
5
5
  const data = JSON.parse(jsonStr);
6
6
  const failures = [];
7
+ const tests = [];
8
+ for (const test of data.passes) {
9
+ tests.push({
10
+ name: test.fullTitle,
11
+ file: test.file,
12
+ status: "passed",
13
+ ...(test.duration !== undefined ? { duration: test.duration / 1000 } : {}),
14
+ });
15
+ }
7
16
  for (const test of data.failures) {
17
+ tests.push({
18
+ name: test.fullTitle,
19
+ file: test.file,
20
+ status: "failed",
21
+ ...(test.duration !== undefined ? { duration: test.duration / 1000 } : {}),
22
+ });
8
23
  const expected = test.err.expected !== undefined ? String(test.err.expected) : undefined;
9
24
  const actual = test.err.actual !== undefined ? String(test.err.actual) : undefined;
10
25
  failures.push({
@@ -28,6 +43,7 @@ export function parseMochaJson(jsonStr) {
28
43
  duration: Math.round(durationSec * 100) / 100,
29
44
  },
30
45
  failures,
46
+ ...(tests.length > 0 ? { tests } : {}),
31
47
  };
32
48
  }
33
49
  /**
@@ -44,16 +60,17 @@ export function parseMochaJson(jsonStr) {
44
60
  export function parseMochaCoverage(stdout) {
45
61
  const lines = stdout.split("\n");
46
62
  const files = [];
47
- let summary = { lines: 0, branches: 0, functions: 0 };
63
+ let summary = { statements: 0, lines: 0, branches: 0, functions: 0 };
48
64
  for (const line of lines) {
49
65
  const match = line.match(/\s*(.+?)\s*\|\s*([\d.]+)\s*\|\s*([\d.]+)\s*\|\s*([\d.]+)\s*\|\s*([\d.]+)\s*\|/);
50
66
  if (!match)
51
67
  continue;
52
- const [, name, , branch, funcs, linePct] = match;
68
+ const [, name, stmts, branch, funcs, linePct] = match;
53
69
  const trimName = name.trim();
54
70
  if (trimName === "File" || trimName.match(/^-+$/))
55
71
  continue;
56
72
  const entry = {
73
+ statements: parseFloat(stmts),
57
74
  lines: parseFloat(linePct),
58
75
  branches: parseFloat(branch),
59
76
  functions: parseFloat(funcs),
@@ -71,4 +88,32 @@ export function parseMochaCoverage(stdout) {
71
88
  files,
72
89
  };
73
90
  }
91
+ /**
92
+ * Parses nyc JSON summary coverage output (`coverage-summary.json`).
93
+ */
94
+ export function parseMochaCoverageJson(jsonStr) {
95
+ const parsed = JSON.parse(jsonStr);
96
+ const files = [];
97
+ let summary = { statements: 0, lines: 0, branches: 0, functions: 0 };
98
+ for (const [file, metrics] of Object.entries(parsed)) {
99
+ const entry = {
100
+ statements: metrics.statements?.pct ?? 0,
101
+ lines: metrics.lines?.pct ?? 0,
102
+ branches: metrics.branches?.pct ?? 0,
103
+ functions: metrics.functions?.pct ?? 0,
104
+ };
105
+ if (file === "total") {
106
+ summary = entry;
107
+ }
108
+ else {
109
+ files.push({ file, ...entry });
110
+ }
111
+ }
112
+ return {
113
+ framework: "mocha",
114
+ summary,
115
+ files,
116
+ totalFiles: files.length,
117
+ };
118
+ }
74
119
  //# sourceMappingURL=mocha.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mocha.js","sourceRoot":"","sources":["../../../src/lib/parsers/mocha.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mocha.js","sourceRoot":"","sources":["../../../src/lib/parsers/mocha.ts"],"names":[],"mappings":"AAuCA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;IAEpD,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,MAAM,KAAK,GAAkC,EAAE,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,QAAQ;YAChB,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3E,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,QAAQ;YAChB,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3E,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnF,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,aAAa;YAC1C,QAAQ;YACR,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;SACtB,CAAC,CAAC;IACL,CAAC;IAED,yDAAyD;IACzD,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAEtD,OAAO;QACL,SAAS,EAAE,OAAO;QAClB,OAAO,EAAE;YACP,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC3B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,GAAG;SAC9C;QACD,QAAQ;QACR,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,IAAI,OAAO,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAErE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,+EAA+E,CAChF,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE7B,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,SAAS;QAE5D,MAAM,KAAK,GAAG;YACZ,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC;YAC7B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;YAC1B,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC;YAC5B,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC;SAC7B,CAAC;QAEF,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7B,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,OAAO;QAClB,OAAO;QACP,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAQhC,CAAC;IAEF,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,IAAI,OAAO,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAErE,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG;YACZ,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC;YACxC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC;YAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;YACpC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;SACvC,CAAC;QACF,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,OAAO;QAClB,OAAO;QACP,KAAK;QACL,UAAU,EAAE,KAAK,CAAC,MAAM;KACzB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/playwright.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,wBAAwB,CAAC;AA6ChC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAyHrE"}
1
+ {"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/playwright.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,wBAAwB,CAAC;AA6ChC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CA0HrE"}
@@ -58,6 +58,7 @@ export function parsePlaywrightJson(jsonStr) {
58
58
  title: spec.title,
59
59
  file: spec.file || suiteFile,
60
60
  line: spec.line,
61
+ projectName: test.projectName,
61
62
  status,
62
63
  duration,
63
64
  ...(errorMsg ? { error: errorMsg } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"playwright.js","sourceRoot":"","sources":["../../../src/lib/parsers/playwright.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playwright.js","sourceRoot":"","sources":["../../../src/lib/parsers/playwright.ts"],"names":[],"mappings":"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"}
@@ -23,4 +23,8 @@ export declare function parsePytestOutput(stdout: string): TestRun;
23
23
  * TOTAL 80 15 81%
24
24
  */
25
25
  export declare function parsePytestCoverage(stdout: string): Coverage;
26
+ /**
27
+ * Parses coverage.py JSON output (`pytest --cov-report=json:<file>`) into structured data.
28
+ */
29
+ export declare function parsePytestCoverageJson(jsonStr: string): Coverage;
26
30
  //# sourceMappingURL=pytest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pytest.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/pytest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CA8DzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAgC5D"}
1
+ {"version":3,"file":"pytest.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/pytest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEhE;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CA0EzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAgC5D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CA8BjE"}
@@ -18,6 +18,15 @@ export function parsePytestOutput(stdout) {
18
18
  const duration = summaryMatch ? parseFloat(summaryMatch[5] || "0") : 0;
19
19
  // Parse failures from short test summary
20
20
  const failures = [];
21
+ const tests = [];
22
+ for (const line of lines) {
23
+ const m = line.match(/^(.+?)::(.+?)\s+(PASSED|FAILED|SKIPPED|XFAIL|XPASS)\b/);
24
+ if (!m)
25
+ continue;
26
+ const [, file, name, statusRaw] = m;
27
+ const status = statusRaw === "FAILED" ? "failed" : statusRaw === "PASSED" ? "passed" : "skipped";
28
+ tests.push({ file, name, status });
29
+ }
21
30
  const summaryStart = lines.findIndex((l) => l.includes("short test summary info"));
22
31
  const summaryEnd = lines.findIndex((l, i) => i > summaryStart && summaryStart >= 0 && l.match(/^=+ /));
23
32
  if (summaryStart >= 0) {
@@ -56,6 +65,7 @@ export function parsePytestOutput(stdout) {
56
65
  duration,
57
66
  },
58
67
  failures,
68
+ ...(tests.length > 0 ? { tests } : {}),
59
69
  };
60
70
  }
61
71
  /**
@@ -92,14 +102,37 @@ export function parsePytestCoverage(stdout) {
92
102
  totalPct = pct;
93
103
  }
94
104
  else {
95
- files.push({ file, lines: pct });
105
+ files.push({ file, statements: pct, lines: pct });
96
106
  }
97
107
  }
98
108
  }
99
109
  return {
100
110
  framework: "pytest",
101
- summary: { lines: totalPct },
111
+ summary: { statements: totalPct, lines: totalPct },
112
+ files,
113
+ };
114
+ }
115
+ /**
116
+ * Parses coverage.py JSON output (`pytest --cov-report=json:<file>`) into structured data.
117
+ */
118
+ export function parsePytestCoverageJson(jsonStr) {
119
+ const data = JSON.parse(jsonStr);
120
+ const files = [];
121
+ for (const [file, info] of Object.entries(data.files ?? {})) {
122
+ const pct = info.summary?.percent_covered ?? 0;
123
+ files.push({
124
+ file,
125
+ statements: pct,
126
+ lines: pct,
127
+ uncoveredLines: info.missing_lines ?? undefined,
128
+ });
129
+ }
130
+ const totalPct = data.totals?.percent_covered ?? 0;
131
+ return {
132
+ framework: "pytest",
133
+ summary: { statements: totalPct, lines: totalPct },
102
134
  files,
135
+ totalFiles: files.length,
103
136
  };
104
137
  }
105
138
  //# sourceMappingURL=pytest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pytest.js","sourceRoot":"","sources":["../../../src/lib/parsers/pytest.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjC,+DAA+D;IAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAC/B,yGAAyG,CAC1G,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE,yCAAyC;IACzC,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAChC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,YAAY,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CACnE,CAAC;IAEF,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAC3B,YAAY,GAAG,CAAC,EAChB,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CACnD,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACnE,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;oBACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;oBAC1B,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACnD,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;oBACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;oBACd,OAAO,EAAE,sDAAsD;iBAChE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;YAChC,MAAM;YACN,MAAM;YACN,OAAO;YACP,QAAQ;SACT;QACD,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9E,UAAU,GAAG,IAAI,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,UAAU;YAAE,SAAS;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,SAAS;QAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC5D,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,EAAE,IAAI,EAAE,AAAD,EAAG,AAAD,EAAG,KAAK,CAAC,GAAG,KAAK,CAAC;YAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAEhC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,QAAQ,GAAG,GAAG,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC5B,KAAK;KACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"pytest.js","sourceRoot":"","sources":["../../../src/lib/parsers/pytest.ts"],"names":[],"mappings":"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"}
@@ -8,4 +8,8 @@ export declare function parseVitestJson(jsonStr: string): TestRun;
8
8
  * Parses Vitest text coverage output (uses c8/istanbul format, same as Jest).
9
9
  */
10
10
  export declare function parseVitestCoverage(stdout: string): Coverage;
11
+ /**
12
+ * Parses Vitest JSON summary coverage output (`coverage-summary.json`).
13
+ */
14
+ export declare function parseVitestCoverageJson(jsonStr: string): Coverage;
11
15
  //# sourceMappingURL=vitest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAwBhE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAyCxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAkC5D"}
1
+ {"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAyBhE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAkDxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAmC5D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAkCjE"}
@@ -7,8 +7,15 @@ export function parseVitestJson(jsonStr) {
7
7
  const endTime = Date.now();
8
8
  const duration = (endTime - data.startTime) / 1000;
9
9
  const failures = [];
10
+ const tests = [];
10
11
  for (const suite of data.testResults) {
11
12
  for (const test of suite.assertionResults) {
13
+ tests.push({
14
+ name: test.fullName,
15
+ file: suite.name,
16
+ status: test.status === "failed" ? "failed" : test.status === "passed" ? "passed" : "skipped",
17
+ ...(test.duration !== undefined ? { duration: test.duration / 1000 } : {}),
18
+ });
12
19
  if (test.status === "failed") {
13
20
  const message = test.failureMessages.join("\n").trim();
14
21
  // Vitest uses similar assertion format to Jest
@@ -36,6 +43,7 @@ export function parseVitestJson(jsonStr) {
36
43
  duration: Math.round(duration * 100) / 100,
37
44
  },
38
45
  failures,
46
+ ...(tests.length > 0 ? { tests } : {}),
39
47
  };
40
48
  }
41
49
  /**
@@ -44,16 +52,17 @@ export function parseVitestJson(jsonStr) {
44
52
  export function parseVitestCoverage(stdout) {
45
53
  const lines = stdout.split("\n");
46
54
  const files = [];
47
- let summary = { lines: 0, branches: 0, functions: 0 };
55
+ let summary = { statements: 0, lines: 0, branches: 0, functions: 0 };
48
56
  for (const line of lines) {
49
57
  const match = line.match(/\s*(.+?)\s*\|\s*([\d.]+)\s*\|\s*([\d.]+)\s*\|\s*([\d.]+)\s*\|\s*([\d.]+)\s*\|/);
50
58
  if (!match)
51
59
  continue;
52
- const [, name, , branch, funcs, linePct] = match;
60
+ const [, name, stmts, branch, funcs, linePct] = match;
53
61
  const trimName = name.trim();
54
62
  if (trimName === "File" || trimName.match(/^-+$/))
55
63
  continue;
56
64
  const entry = {
65
+ statements: parseFloat(stmts),
57
66
  lines: parseFloat(linePct),
58
67
  branches: parseFloat(branch),
59
68
  functions: parseFloat(funcs),
@@ -71,4 +80,32 @@ export function parseVitestCoverage(stdout) {
71
80
  files,
72
81
  };
73
82
  }
83
+ /**
84
+ * Parses Vitest JSON summary coverage output (`coverage-summary.json`).
85
+ */
86
+ export function parseVitestCoverageJson(jsonStr) {
87
+ const parsed = JSON.parse(jsonStr);
88
+ const files = [];
89
+ let summary = { statements: 0, lines: 0, branches: 0, functions: 0 };
90
+ for (const [file, metrics] of Object.entries(parsed)) {
91
+ const entry = {
92
+ statements: metrics.statements?.pct ?? 0,
93
+ lines: metrics.lines?.pct ?? 0,
94
+ branches: metrics.branches?.pct ?? 0,
95
+ functions: metrics.functions?.pct ?? 0,
96
+ };
97
+ if (file === "total") {
98
+ summary = entry;
99
+ }
100
+ else {
101
+ files.push({ file, ...entry });
102
+ }
103
+ }
104
+ return {
105
+ framework: "vitest",
106
+ summary,
107
+ files,
108
+ totalFiles: files.length,
109
+ };
110
+ }
74
111
  //# sourceMappingURL=vitest.js.map