supercov 0.0.9 → 0.0.11

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 (100) hide show
  1. package/bin/native.js +87 -0
  2. package/bin/supercov.js +20 -3
  3. package/dist/agentJson.d.ts +2 -1
  4. package/dist/agentJson.d.ts.map +1 -1
  5. package/dist/agentJson.js +18 -0
  6. package/dist/agentJson.js.map +1 -1
  7. package/dist/analyze.d.ts.map +1 -1
  8. package/dist/analyze.js +9 -4
  9. package/dist/analyze.js.map +1 -1
  10. package/dist/cli.js +115 -24
  11. package/dist/cli.js.map +1 -1
  12. package/dist/directInstrumenter.d.ts.map +1 -1
  13. package/dist/directInstrumenter.js +39 -19
  14. package/dist/directInstrumenter.js.map +1 -1
  15. package/dist/engineEvidence.d.ts +9 -0
  16. package/dist/engineEvidence.d.ts.map +1 -0
  17. package/dist/engineEvidence.js +31 -0
  18. package/dist/engineEvidence.js.map +1 -0
  19. package/dist/engineInstrumenter.d.ts +16 -0
  20. package/dist/engineInstrumenter.d.ts.map +1 -0
  21. package/dist/engineInstrumenter.js +50 -0
  22. package/dist/engineInstrumenter.js.map +1 -0
  23. package/dist/engineProcess.d.ts +11 -0
  24. package/dist/engineProcess.d.ts.map +1 -0
  25. package/dist/engineProcess.js +59 -0
  26. package/dist/engineProcess.js.map +1 -0
  27. package/dist/evidenceArchive.d.ts +1 -0
  28. package/dist/evidenceArchive.d.ts.map +1 -1
  29. package/dist/evidenceArchive.js +59 -13
  30. package/dist/evidenceArchive.js.map +1 -1
  31. package/dist/instrumenter.d.ts +8 -1
  32. package/dist/instrumenter.d.ts.map +1 -1
  33. package/dist/instrumenter.js +478 -80
  34. package/dist/instrumenter.js.map +1 -1
  35. package/dist/integrity.d.ts.map +1 -1
  36. package/dist/integrity.js +9 -1
  37. package/dist/integrity.js.map +1 -1
  38. package/dist/launchSupervisor.d.ts.map +1 -1
  39. package/dist/launchSupervisor.js +3 -0
  40. package/dist/launchSupervisor.js.map +1 -1
  41. package/dist/merge.d.ts.map +1 -1
  42. package/dist/merge.js +9 -6
  43. package/dist/merge.js.map +1 -1
  44. package/dist/nodeAssertionInstrumenter.d.ts +2 -2
  45. package/dist/nodeAssertionInstrumenter.d.ts.map +1 -1
  46. package/dist/nodeAssertionInstrumenter.js +12 -4
  47. package/dist/nodeAssertionInstrumenter.js.map +1 -1
  48. package/dist/nodeTest.d.ts.map +1 -1
  49. package/dist/nodeTest.js +13 -4
  50. package/dist/nodeTest.js.map +1 -1
  51. package/dist/playwright.d.ts.map +1 -1
  52. package/dist/playwright.js +177 -89
  53. package/dist/playwright.js.map +1 -1
  54. package/dist/processDiagnostics.d.ts +34 -0
  55. package/dist/processDiagnostics.d.ts.map +1 -0
  56. package/dist/processDiagnostics.js +155 -0
  57. package/dist/processDiagnostics.js.map +1 -0
  58. package/dist/project.d.ts +1 -0
  59. package/dist/project.d.ts.map +1 -1
  60. package/dist/project.js +39 -4
  61. package/dist/project.js.map +1 -1
  62. package/dist/query.d.ts +11 -0
  63. package/dist/query.d.ts.map +1 -1
  64. package/dist/query.js +224 -11
  65. package/dist/query.js.map +1 -1
  66. package/dist/register.mjs +52 -0
  67. package/dist/register.mjs.map +1 -1
  68. package/dist/resolve-loader.d.mts.map +1 -1
  69. package/dist/resolve-loader.mjs +8 -2
  70. package/dist/resolve-loader.mjs.map +1 -1
  71. package/dist/runAnalysis.d.ts.map +1 -1
  72. package/dist/runAnalysis.js +3 -1
  73. package/dist/runAnalysis.js.map +1 -1
  74. package/dist/runnerEvidence.d.ts +2 -2
  75. package/dist/runnerEvidence.d.ts.map +1 -1
  76. package/dist/runnerEvidence.js +6 -4
  77. package/dist/runnerEvidence.js.map +1 -1
  78. package/dist/runtime.d.ts +56 -4
  79. package/dist/runtime.d.ts.map +1 -1
  80. package/dist/runtime.js +308 -27
  81. package/dist/runtime.js.map +1 -1
  82. package/dist/sourceDiscovery.d.ts.map +1 -1
  83. package/dist/sourceDiscovery.js +6 -2
  84. package/dist/sourceDiscovery.js.map +1 -1
  85. package/dist/transport.js +2 -2
  86. package/dist/transport.js.map +1 -1
  87. package/dist/vitePlugin.d.ts.map +1 -1
  88. package/dist/vitePlugin.js +21 -7
  89. package/dist/vitePlugin.js.map +1 -1
  90. package/dist/vitest.js +38 -7
  91. package/dist/vitest.js.map +1 -1
  92. package/dist/waivers.d.ts +52 -0
  93. package/dist/waivers.d.ts.map +1 -0
  94. package/dist/waivers.js +121 -0
  95. package/dist/waivers.js.map +1 -0
  96. package/dist/workspace.d.ts +36 -0
  97. package/dist/workspace.d.ts.map +1 -1
  98. package/dist/workspace.js +212 -36
  99. package/dist/workspace.js.map +1 -1
  100. package/package.json +29 -3
@@ -81,9 +81,13 @@ function memberNames(node) {
81
81
  return t.isIdentifier(current) ? [current.name, ...names] : undefined;
82
82
  }
83
83
  /** Wrap native node:assert calls before their arguments are evaluated. */
84
- export function instrumentNodeAssertionPhases(code, file) {
84
+ export function instrumentNodeAssertionPhases(code, file, extraExpectModules = []) {
85
85
  const mayUseNodeAssert = /(?:node:)?assert(?:\/strict)?["']/.test(code);
86
- const mayUseNodeExpect = /["']node:test["']/.test(code) && /\bexpect\b/.test(code);
86
+ const mayUseContextualExpect = /["']node:test["']/.test(code) && /\bexpect\b/.test(code);
87
+ const lexicalExpectModules = new Set(["vitest", ...extraExpectModules]);
88
+ const mayUseLexicalExpect = /\bexpect\b/.test(code) &&
89
+ [...lexicalExpectModules].some((module) => code.includes(`"${module}"`) || code.includes(`'${module}'`));
90
+ const mayUseNodeExpect = mayUseContextualExpect || mayUseLexicalExpect;
87
91
  if (!mayUseNodeAssert && !mayUseNodeExpect)
88
92
  return { code, assertions: 0 };
89
93
  const plugins = [
@@ -107,6 +111,10 @@ export function instrumentNodeAssertionPhases(code, file) {
107
111
  if (!importedModule) {
108
112
  if (!mayUseNodeExpect)
109
113
  return;
114
+ if (!mayUseContextualExpect &&
115
+ !(t.isStringLiteral(path.node.source) &&
116
+ lexicalExpectModules.has(path.node.source.value)))
117
+ return;
110
118
  for (const specifier of path.node.specifiers) {
111
119
  if (t.isImportSpecifier(specifier) &&
112
120
  ((t.isIdentifier(specifier.imported) && specifier.imported.name === "expect") ||
@@ -245,14 +253,14 @@ export function instrumentNodeAssertionPhases(code, file) {
245
253
  }, code);
246
254
  return { code: output.code, assertions };
247
255
  }
248
- export function instrumentNodeAssertionsInWorkspace(root, files) {
256
+ export function instrumentNodeAssertionsInWorkspace(root, files, extraExpectModules = []) {
249
257
  let assertions = 0;
250
258
  for (const file of files) {
251
259
  const path = resolve(root, file);
252
260
  if (!existsSync(path))
253
261
  continue;
254
262
  const code = readFileSync(path, "utf8");
255
- const transformed = instrumentNodeAssertionPhases(code, file);
263
+ const transformed = instrumentNodeAssertionPhases(code, file, extraExpectModules);
256
264
  if (transformed.assertions === 0)
257
265
  continue;
258
266
  atomicWriteFileSync(path, transformed.code);
@@ -1 +1 @@
1
- {"version":3,"file":"nodeAssertionInstrumenter.js","sourceRoot":"","sources":["../src/nodeAssertionInstrumenter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodeAssertionInstrumenter.js","sourceRoot":"","sources":["../src/nodeAssertionInstrumenter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nodeTest.d.ts","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAyJpC,eAAO,MAAM,IAAI,EAAsE,OAAO,MAAM,CAAC,IAAI,CAAC;AAC1G,eAAO,MAAM,EAAE,EAAoE,OAAO,MAAM,CAAC,EAAE,CAAC;AACpG,eAAO,MAAM,KAAK,qBAAe,CAAC;AAClC,eAAO,MAAM,QAAQ,qBAAkB,CAAC;AACxC,eAAO,MAAM,MAAM,sBAAgB,CAAC;AACpC,eAAO,MAAM,KAAK,qBAAe,CAAC;AAClC,eAAO,MAAM,UAAU,0BAAoB,CAAC;AAC5C,eAAO,MAAM,SAAS,yBAAmB,CAAC;AAC1C,eAAO,MAAM,IAAI,oBAAc,CAAC;AAChC,eAAO,MAAM,QAAQ,wBAAkB,CAAC;AACxC,eAAO,MAAM,GAAG,mBAAa,CAAC;AAC9B,eAAO,MAAM,MAAM,sBAAgB,CAAC;eACrB,IAAI"}
1
+ {"version":3,"file":"nodeTest.d.ts","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAmKpC,eAAO,MAAM,IAAI,EAAsE,OAAO,MAAM,CAAC,IAAI,CAAC;AAC1G,eAAO,MAAM,EAAE,EAAoE,OAAO,MAAM,CAAC,EAAE,CAAC;AACpG,eAAO,MAAM,KAAK,qBAAe,CAAC;AAClC,eAAO,MAAM,QAAQ,qBAAkB,CAAC;AACxC,eAAO,MAAM,MAAM,sBAAgB,CAAC;AACpC,eAAO,MAAM,KAAK,qBAAe,CAAC;AAClC,eAAO,MAAM,UAAU,0BAAoB,CAAC;AAC5C,eAAO,MAAM,SAAS,yBAAmB,CAAC;AAC1C,eAAO,MAAM,IAAI,oBAAc,CAAC;AAChC,eAAO,MAAM,QAAQ,wBAAkB,CAAC;AACxC,eAAO,MAAM,GAAG,mBAAa,CAAC;AAC9B,eAAO,MAAM,MAAM,sBAAgB,CAAC;eACrB,IAAI"}
package/dist/nodeTest.js CHANGED
@@ -25,6 +25,12 @@ function wrappedRegistration(original) {
25
25
  runner: "node:test",
26
26
  name: testName(args, callback),
27
27
  ...location,
28
+ // Source-map producers disagree about whether a call expression maps to
29
+ // its first token or the first token on its source line. The line and
30
+ // dynamic test name are stable across ahead-of-run and build-tool
31
+ // transforms; the mapped column is not. Canonicalize it so the same test
32
+ // keeps one identity when esbuild, Babel, SWC, or TypeScript rewrites it.
33
+ ...(location.line === undefined ? {} : { column: 1 }),
28
34
  };
29
35
  const scope = runnerExecutionScope(identity);
30
36
  const options = testOptions(args, index);
@@ -39,8 +45,11 @@ function wrappedRegistration(original) {
39
45
  ? "skipped"
40
46
  : "passed";
41
47
  const contextProxy = new Proxy(context, {
42
- get(target, property, receiver) {
43
- const value = Reflect.get(target, property, receiver);
48
+ get(target, property) {
49
+ // Read with the real context as receiver: TestContext accessors
50
+ // (t.assert, t.mock, ...) touch private fields that only exist on
51
+ // the target, never on the proxy.
52
+ const value = Reflect.get(target, property, target);
44
53
  if ((property === "skip" || property === "todo") && typeof value === "function") {
45
54
  return (...callArgs) => {
46
55
  status = "skipped";
@@ -57,8 +66,8 @@ function wrappedRegistration(original) {
57
66
  if (emitted)
58
67
  return;
59
68
  emitted = true;
60
- flushBufferedServerEvidence(scope);
61
- writeRunnerEvidence(identity, nextStatus, scope, evidenceDirectory, takeNodeAssertionPhases(scope));
69
+ const flushedServerEvidence = flushBufferedServerEvidence(scope);
70
+ writeRunnerEvidence(identity, nextStatus, scope, evidenceDirectory, takeNodeAssertionPhases(scope), flushedServerEvidence);
62
71
  };
63
72
  try {
64
73
  if (callback.length >= 2) {
@@ -1 +1 @@
1
- {"version":3,"file":"nodeTest.js","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodeTest.js","sourceRoot":"","sources":["../src/nodeTest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,kBAAkB,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAMV,kBAAkB,EAClB,oBAAoB,EAEpB,QAAQ,EAET,MAAM,kBAAkB,CAAC;AAqB1B,cAAc,kBAAkB,CAAC;AA2BjC,QAAA,MAAM,UAAU,+BAAiB,CAAC;AA8sBlC,eAAO,MAAM,MAAM,EAEd,OAAO,UAAU,CAAC;AAmOvB,eAAO,MAAM,IAAI;qBAzKuC,IAAI;kDAyKxB,CAAC"}
1
+ {"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,kBAAkB,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAMV,kBAAkB,EAClB,oBAAoB,EAEpB,QAAQ,EAET,MAAM,kBAAkB,CAAC;AAqB1B,cAAc,kBAAkB,CAAC;AA2BjC,QAAA,MAAM,UAAU,+BAAiB,CAAC;AA22BlC,eAAO,MAAM,MAAM,EAEd,OAAO,UAAU,CAAC;AAqOvB,eAAO,MAAM,IAAI;qBA3IuC,IAAI;kDA2IxB,CAAC"}
@@ -105,6 +105,7 @@ class CoveragePhaseController {
105
105
  pendingRegistrations = new Set();
106
106
  scriptUpdate = Promise.resolve();
107
107
  proxyCache = new WeakMap();
108
+ runtimeSnapshots;
108
109
  // Parameter properties are stateful despite the base ESLint rule treating
109
110
  // this as an empty constructor.
110
111
  // eslint-disable-next-line no-useless-constructor
@@ -118,6 +119,41 @@ class CoveragePhaseController {
118
119
  allWorkers() {
119
120
  return [...this.workers];
120
121
  }
122
+ async collectRuntimeSnapshots() {
123
+ if (this.runtimeSnapshots)
124
+ return this.runtimeSnapshots;
125
+ const snapshots = [];
126
+ for (const page of this.allPages()) {
127
+ for (const frame of page.frames()) {
128
+ const snapshot = await frame
129
+ .evaluate(() => {
130
+ const getSnapshot = globalThis.__SUPERCOV_COVERAGE_SNAPSHOT__;
131
+ return getSnapshot?.() ?? { decisions: [], hits: [], events: [] };
132
+ })
133
+ .catch(() => ({
134
+ decisions: [],
135
+ hits: [],
136
+ events: [],
137
+ }));
138
+ snapshots.push(snapshot);
139
+ }
140
+ }
141
+ for (const worker of this.allWorkers()) {
142
+ const snapshot = await worker
143
+ .evaluate(() => {
144
+ const getSnapshot = globalThis.__SUPERCOV_COVERAGE_SNAPSHOT__;
145
+ return getSnapshot?.() ?? { decisions: [], hits: [], events: [] };
146
+ })
147
+ .catch(() => ({
148
+ decisions: [],
149
+ hits: [],
150
+ events: [],
151
+ }));
152
+ snapshots.push(snapshot);
153
+ }
154
+ this.runtimeSnapshots = snapshots;
155
+ return snapshots;
156
+ }
121
157
  async registerPage(page) {
122
158
  if (this.pages.has(page))
123
159
  return;
@@ -190,6 +226,7 @@ class CoveragePhaseController {
190
226
  globalThis.__SUPERCOV_MCDC_TEST_ID__ = attemptId;
191
227
  if (phase)
192
228
  globalThis.__SUPERCOV_PHASE_ID__ = phase;
229
+ globalThis.__SUPERCOV_ACTIVATE_PROBE_CONTEXT__?.(attemptId, phase);
193
230
  const originalFetch = globalThis.fetch?.bind(globalThis);
194
231
  if (!originalFetch)
195
232
  return;
@@ -217,8 +254,8 @@ class CoveragePhaseController {
217
254
  await this.activateInBrowser(phase.id);
218
255
  return phase;
219
256
  }
220
- beginAssertion(operation) {
221
- const phase = this.createPhase("assertion", operation, this.lastActionId);
257
+ beginAssertion(operation, source = callerSource()) {
258
+ const phase = this.createPhase("assertion", operation, this.lastActionId, source);
222
259
  this.activePhaseId = phase.id;
223
260
  // Playwright queues browser protocol commands in order. Starting this
224
261
  // evaluation before an async locator assertion is sufficient to tag its
@@ -294,8 +331,7 @@ class CoveragePhaseController {
294
331
  this.proxyCache.set(target, proxy);
295
332
  return proxy;
296
333
  }
297
- createPhase(kind, operation, causedByPhaseId) {
298
- const source = callerSource();
334
+ createPhase(kind, operation, causedByPhaseId, source = callerSource()) {
299
335
  const phase = {
300
336
  id: `${this.scope.attemptId}:phase:${++this.counter}`,
301
337
  kind,
@@ -369,6 +405,8 @@ class CoveragePhaseController {
369
405
  await Promise.all([...this.pages].flatMap((page) => page.frames()).map((frame) => frame
370
406
  .evaluate(({ id, storageKey, scopeCookie, scopeValue, phaseCookie }) => {
371
407
  globalThis.__SUPERCOV_PHASE_ID__ = id;
408
+ const coverageGlobal = globalThis;
409
+ coverageGlobal.__SUPERCOV_ACTIVATE_PROBE_CONTEXT__?.(coverageGlobal.__SUPERCOV_MCDC_TEST_ID__ ?? "unscoped", id);
372
410
  try {
373
411
  localStorage.setItem(storageKey, id);
374
412
  document.cookie = `${scopeCookie}=${encodeURIComponent(scopeValue)}; Path=/; SameSite=Lax`;
@@ -387,7 +425,9 @@ class CoveragePhaseController {
387
425
  .catch(() => undefined)));
388
426
  await Promise.all([...this.workers].map((worker) => worker
389
427
  .evaluate((id) => {
390
- globalThis.__SUPERCOV_PHASE_ID__ = id;
428
+ const coverageGlobal = globalThis;
429
+ coverageGlobal.__SUPERCOV_PHASE_ID__ = id;
430
+ coverageGlobal.__SUPERCOV_ACTIVATE_PROBE_CONTEXT__?.(coverageGlobal.__SUPERCOV_MCDC_TEST_ID__ ?? "unscoped", id);
391
431
  }, phaseId)
392
432
  .catch(() => undefined)));
393
433
  await Promise.all([...this.pages].map((page) => this.activatePage(page, phaseId)));
@@ -414,7 +454,7 @@ class CoveragePhaseController {
414
454
  }
415
455
  const installed = (await cdp
416
456
  .send("Page.addScriptToEvaluateOnNewDocument", {
417
- source: `globalThis.__SUPERCOV_PHASE_ID__=${JSON.stringify(phaseId)};`,
457
+ source: `globalThis.__SUPERCOV_PHASE_ID__=${JSON.stringify(phaseId)};globalThis.__SUPERCOV_ACTIVATE_PROBE_CONTEXT__?.(globalThis.__SUPERCOV_MCDC_TEST_ID__??"unscoped",${JSON.stringify(phaseId)});`,
418
458
  runImmediately: true,
419
459
  })
420
460
  .catch(() => undefined));
@@ -425,7 +465,40 @@ class CoveragePhaseController {
425
465
  }
426
466
  }
427
467
  let activeController;
468
+ let bridgedAssertionDepth = 0;
428
469
  const controllers = new Map();
470
+ const directRuntime = () => globalThis.__SUPERCOV_DIRECT_RUNTIME__;
471
+ globalThis.__SUPERCOV_ASSERTION_PHASE_BRIDGE__ = (operation, source, callback) => {
472
+ const controller = activeController;
473
+ const runtime = directRuntime();
474
+ if (!controller || !runtime)
475
+ return { handled: false };
476
+ const phase = controller.beginAssertion(operation, source);
477
+ bridgedAssertionDepth += 1;
478
+ try {
479
+ const value = runtime.withCoverageCarrier({ version: 1, scope: controller.scope, phaseId: phase.id }, callback);
480
+ bridgedAssertionDepth -= 1;
481
+ if (value &&
482
+ typeof value.then === "function")
483
+ return {
484
+ handled: true,
485
+ value: Promise.resolve(value).then((resolved) => {
486
+ controller.finish(phase);
487
+ return resolved;
488
+ }, (error) => {
489
+ controller.finish(phase, error);
490
+ throw error;
491
+ }),
492
+ };
493
+ controller.finish(phase);
494
+ return { handled: true, value };
495
+ }
496
+ catch (error) {
497
+ bridgedAssertionDepth -= 1;
498
+ controller.finish(phase, error);
499
+ throw error;
500
+ }
501
+ };
429
502
  function activeCoverageHeaders() {
430
503
  const controller = activeController;
431
504
  if (!controller)
@@ -572,7 +645,9 @@ function wrapMatchers(matchers, path = "expect") {
572
645
  return value;
573
646
  return (...args) => {
574
647
  const controller = activeController;
575
- const phase = controller?.beginAssertion(`${path}.${name}`);
648
+ const phase = bridgedAssertionDepth === 0
649
+ ? controller?.beginAssertion(`${path}.${name}`)
650
+ : undefined;
576
651
  try {
577
652
  const result = Reflect.apply(value, target, args);
578
653
  if (result instanceof Promise) {
@@ -663,22 +738,51 @@ function readServerRecords(scope) {
663
738
  return [];
664
739
  }
665
740
  }
741
+ function phaseSourceLine(source) {
742
+ return source?.replace(/:\d+$/, "");
743
+ }
744
+ /**
745
+ * Playwright's redirected `expect` is the preferred assertion boundary, but
746
+ * its transform loader can bypass Node's resolve hook for project-owned
747
+ * fixture modules. The ahead-of-run frontend therefore keeps a lexical
748
+ * fallback. If both paths observe the same assertion, retain the richer
749
+ * Playwright phase (including action causality) exactly once.
750
+ */
751
+ function mergeCollectedPhases(controllerPhases, fallbackPhases) {
752
+ const observed = new Map();
753
+ for (const phase of controllerPhases) {
754
+ if (phase.kind !== "assertion")
755
+ continue;
756
+ const key = `${phase.operation}\0${phaseSourceLine(phase.source) ?? ""}`;
757
+ observed.set(key, (observed.get(key) ?? 0) + 1);
758
+ }
759
+ const remaining = fallbackPhases.filter((phase) => {
760
+ if (phase.kind !== "assertion")
761
+ return true;
762
+ const key = `${phase.operation}\0${phaseSourceLine(phase.source) ?? ""}`;
763
+ const count = observed.get(key) ?? 0;
764
+ if (count === 0)
765
+ return true;
766
+ observed.set(key, count - 1);
767
+ return false;
768
+ });
769
+ return [...controllerPhases, ...remaining];
770
+ }
666
771
  const instrumentedTest = base.extend({
667
772
  page: async ({ page }, use, testInfo) => {
668
773
  const scope = executionScope(testInfo);
669
- const configuredHeaders = Object.fromEntries(Object.entries(testInfo.project.use.extraHTTPHeaders ?? {}).map(([name, value]) => [name, String(value)]));
670
- const controller = new CoveragePhaseController(scope, configuredHeaders);
671
- controllers.set(scope.attemptId, controller);
672
- activeController = controller;
774
+ const controller = controllers.get(scope.attemptId);
775
+ if (!controller)
776
+ throw new Error(`Supercov's automatic Playwright collector was not initialized for ${scope.attemptId}`);
673
777
  await controller.registerPage(page);
674
778
  try {
675
779
  await use(controller.wrap(page));
676
780
  }
677
781
  finally {
678
- await controller.dispose();
679
- if (activeController === controller)
680
- activeController = undefined;
681
- controllers.delete(scope.attemptId);
782
+ // This fixture still owns a live page. The automatic test fixture tears
783
+ // down after page dependencies and therefore cannot reliably evaluate
784
+ // frames on every Playwright version.
785
+ await controller.collectRuntimeSnapshots();
682
786
  }
683
787
  },
684
788
  browser: [
@@ -705,8 +809,13 @@ const instrumentedTest = base.extend({
705
809
  }));
706
810
  },
707
811
  mcdcAutoCollect: [
708
- async ({ page }, use, testInfo) => {
812
+ async ({}, use, testInfo) => {
709
813
  const scope = executionScope(testInfo);
814
+ const configuredHeaders = Object.fromEntries(Object.entries(testInfo.project.use.extraHTTPHeaders ?? {}).map(([name, value]) => [name, String(value)]));
815
+ const controller = new CoveragePhaseController(scope, configuredHeaders);
816
+ controllers.set(scope.attemptId, controller);
817
+ activeController = controller;
818
+ directRuntime()?.activateCoverageScope(scope);
710
819
  const serverOutput = serverEvidencePath(scope);
711
820
  mkdirSync(serverEvidenceDirectory(scope), { recursive: true });
712
821
  rmSync(serverOutput, { force: true });
@@ -714,81 +823,60 @@ const instrumentedTest = base.extend({
714
823
  await use();
715
824
  }
716
825
  finally {
717
- const controller = controllers.get(scope.attemptId);
718
- const browser = [];
719
- const pages = controller?.allPages() ?? [page];
720
- for (const currentPage of pages) {
721
- for (const frame of currentPage.frames()) {
722
- const frameSnapshot = await frame
723
- .evaluate(() => {
724
- const getSnapshot = globalThis.__SUPERCOV_COVERAGE_SNAPSHOT__;
725
- return getSnapshot?.() ?? { decisions: [], hits: [], events: [] };
726
- })
727
- .catch(() => ({
728
- decisions: [],
729
- hits: [],
730
- events: [],
731
- }));
732
- browser.push(frameSnapshot);
826
+ try {
827
+ const browser = await controller.collectRuntimeSnapshots();
828
+ const server = readServerRecords(scope);
829
+ // Emit an artifact even when this test touched no application source.
830
+ // A complete test-to-coverage matrix must also identify tests that are
831
+ // removable without changing coverage.
832
+ const outputPath = testInfo.outputPath("mcdc.json");
833
+ mkdirSync(dirname(outputPath), { recursive: true });
834
+ const testFile = relative(process.cwd(), testInfo.file)
835
+ .split(sep)
836
+ .join("/");
837
+ const payload = {
838
+ testId: testInfo.testId,
839
+ scope,
840
+ test: testInfo.titlePath.join(" > "),
841
+ testFile,
842
+ title: testInfo.title,
843
+ retry: testInfo.retry,
844
+ status: testInfo.status ?? "unknown",
845
+ expectedStatus: testInfo.expectedStatus,
846
+ provenance: inferTestProvenance({
847
+ runner: "playwright",
848
+ file: testFile,
849
+ project: testInfo.project.name,
850
+ explicitKind: process.env["SUPERCOV_TEST_KIND"],
851
+ }),
852
+ phases: mergeCollectedPhases(controller.phases, directRuntime()?.takeNodeAssertionPhases(scope) ?? []),
853
+ browser,
854
+ server,
855
+ };
856
+ const serialized = `${JSON.stringify(payload)}\n`;
857
+ atomicWriteFileSync(outputPath, serialized);
858
+ // Pool runners may cycle-restore a VM immediately after Playwright
859
+ // exits, which can discard or overwrite the normal artifact copy.
860
+ // Write one uniquely named, one-shot evidence file to the runner's
861
+ // shared directory as well. No test streams into this path.
862
+ const evidenceDirectory = process.env["SUPERCOV_EVIDENCE_DIR"] ??
863
+ (GENERATED_EVIDENCE_DIRECTORY.startsWith("__")
864
+ ? undefined
865
+ : GENERATED_EVIDENCE_DIRECTORY);
866
+ if (evidenceDirectory) {
867
+ const resolvedDirectory = resolve(process.cwd(), evidenceDirectory);
868
+ const safeTestId = testInfo.testId.replace(/[^a-zA-Z0-9_-]/g, "_");
869
+ const testEvidenceDirectory = resolve(resolvedDirectory, `${safeTestId}-${testInfo.retry}`);
870
+ mkdirSync(testEvidenceDirectory, { recursive: true });
871
+ atomicWriteFileSync(resolve(testEvidenceDirectory, "mcdc.json"), serialized);
733
872
  }
734
873
  }
735
- for (const worker of controller?.allWorkers() ?? []) {
736
- const workerSnapshot = await worker
737
- .evaluate(() => {
738
- const getSnapshot = globalThis.__SUPERCOV_COVERAGE_SNAPSHOT__;
739
- return getSnapshot?.() ?? { decisions: [], hits: [], events: [] };
740
- })
741
- .catch(() => ({
742
- decisions: [],
743
- hits: [],
744
- events: [],
745
- }));
746
- browser.push(workerSnapshot);
747
- }
748
- const server = readServerRecords(scope);
749
- // Emit an artifact even when this test touched no application source.
750
- // A complete test-to-coverage matrix must also identify tests that are
751
- // removable without changing coverage.
752
- const outputPath = testInfo.outputPath("mcdc.json");
753
- mkdirSync(dirname(outputPath), { recursive: true });
754
- const testFile = relative(process.cwd(), testInfo.file)
755
- .split(sep)
756
- .join("/");
757
- const payload = {
758
- testId: testInfo.testId,
759
- scope,
760
- test: testInfo.titlePath.join(" > "),
761
- testFile,
762
- title: testInfo.title,
763
- retry: testInfo.retry,
764
- status: testInfo.status ?? "unknown",
765
- expectedStatus: testInfo.expectedStatus,
766
- provenance: inferTestProvenance({
767
- runner: "playwright",
768
- file: testFile,
769
- project: testInfo.project.name,
770
- explicitKind: process.env["SUPERCOV_TEST_KIND"],
771
- }),
772
- phases: controller?.phases ?? [],
773
- browser,
774
- server,
775
- };
776
- const serialized = `${JSON.stringify(payload)}\n`;
777
- atomicWriteFileSync(outputPath, serialized);
778
- // Pool runners may cycle-restore a VM immediately after Playwright
779
- // exits, which can discard or overwrite the normal artifact copy.
780
- // Write one uniquely named, one-shot evidence file to the runner's
781
- // shared directory as well. No test streams into this path.
782
- const evidenceDirectory = process.env["SUPERCOV_EVIDENCE_DIR"] ??
783
- (GENERATED_EVIDENCE_DIRECTORY.startsWith("__")
784
- ? undefined
785
- : GENERATED_EVIDENCE_DIRECTORY);
786
- if (evidenceDirectory) {
787
- const resolvedDirectory = resolve(process.cwd(), evidenceDirectory);
788
- const safeTestId = testInfo.testId.replace(/[^a-zA-Z0-9_-]/g, "_");
789
- const testEvidenceDirectory = resolve(resolvedDirectory, `${safeTestId}-${testInfo.retry}`);
790
- mkdirSync(testEvidenceDirectory, { recursive: true });
791
- atomicWriteFileSync(resolve(testEvidenceDirectory, "mcdc.json"), serialized);
874
+ finally {
875
+ await controller.dispose();
876
+ directRuntime()?.activateCoverageScope();
877
+ if (activeController === controller)
878
+ activeController = undefined;
879
+ controllers.delete(scope.attemptId);
792
880
  }
793
881
  }
794
882
  },