@testchimp/playwright 0.2.13 → 0.2.15

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.
package/README.md CHANGED
@@ -101,6 +101,10 @@ Set these so the reporter can talk to TestChimp (env vars override programmatic
101
101
  | `TESTCHIMP_TESTS_FOLDER` | No | Base folder for relative paths (default: `tests`). |
102
102
  | `TESTCHIMP_RELEASE` | No | Release/version identifier. |
103
103
  | `TESTCHIMP_ENV` | No | Environment (e.g. `staging`, `prod`). |
104
+ | `TESTCHIMP_ENABLE_API_CAPTURE` | No | Set to `1`/`true`/`yes` to opt in to API operation capture + payload ingest (default **off**). |
105
+ | `TESTCHIMP_API_COVERAGE_URL_REGEX` | No | Optional client-side URL allow-list regex (full URL). |
106
+ | `TESTCHIMP_API_COVERAGE_BODY_TIMEOUT_MS` | No | Per-response body read timeout in ms (default **1500**). |
107
+ | `TESTCHIMP_API_COVERAGE_DRAIN_TIMEOUT_MS` | No | Page teardown drain timeout in ms (default **5000**). |
104
108
  | `TESTCHIMP_RUM_AUTOMATION_SET_PREFIX` | No | Override set-URL prefix (default `testchimp-rum://truecoverage/v1/set?p=` + base64url JSON). |
105
109
  | `TESTCHIMP_RUM_AUTOMATION_CLEAR_URL` | No | Override clear URL (default `testchimp-rum://truecoverage/v1/clear`). |
106
110
  | `TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS` | No | When `1`/`true`/`yes`, each test’s **`device`** fixture sends `/v1/clear` before `SET` (legacy). **Default off** so CI stays set until overwritten, avoiding null `ci_test_info` on RUM during the clear→set window. |
@@ -110,6 +114,20 @@ Set these so the reporter can talk to TestChimp (env vars override programmatic
110
114
 
111
115
  If `TESTCHIMP_API_KEY` is missing, the reporter logs a warning and disables reporting (no request is sent).
112
116
 
117
+ ### API operation capture (Operations coverage)
118
+
119
+ **Off by default.** Set **`TESTCHIMP_ENABLE_API_CAPTURE=1`** to enable both HTTP interaction capture (via the web `page` fixture from `installTestChimp`) and reporter ingest of those interactions. One flag controls both; leave it unset so the plugin never attaches network listeners or reads response bodies.
120
+
121
+ ```bash
122
+ export TESTCHIMP_API_KEY=your-api-key
123
+ export TESTCHIMP_ENABLE_API_CAPTURE=1
124
+ npx playwright test
125
+ ```
126
+
127
+ Capture is best-effort and bounded (body / drain timeouts above) so it must not hang test teardown. Native Playwright mocks registered with `page.route(...)` or `context.route(...)` and completed with `route.fulfill(...)` are automatically classified as mocked; no special helper or response header is required. Routes that continue to the network remain real.
128
+
129
+ Mock classification is also best-effort. Routes registered before the TestChimp page fixture attaches, HAR replay, service-worker-based tools such as MSW, and non-Playwright mocking layers may not be identifiable and therefore default to real. Classification never changes fulfill options or blocks a route. Project **Operations** config can further restrict which URLs are stored and whether payloads are retained.
130
+
113
131
  ### 3. Run tests
114
132
 
115
133
  ```bash
@@ -2,16 +2,22 @@
2
2
  * API operation coverage capture for Playwright (US-185).
3
3
  * Collects HTTP interactions; ingest is append-only (no coverage math client-side).
4
4
  *
5
- * Enable/disable via TESTCHIMP_API_COVERAGE (default on; set to '0'/'false' to opt out).
5
+ * P0: never disrupt test execution. Body reads and drain are hard-timeout’d; on timeout we
6
+ * keep metadata (or drop the interaction) rather than hang fixture teardown.
7
+ *
8
+ * Opt-in via TESTCHIMP_ENABLE_API_CAPTURE=1 (default off). One flag enables page capture,
9
+ * payload reads, attachment, and reporter ingest together — leave unset to avoid any impact
10
+ * on test execution from API capturing.
6
11
  * Scope capture to matching URLs via TESTCHIMP_API_COVERAGE_URL_REGEX (optional; matches full URL).
7
- * Disable request/response body capture via TESTCHIMP_API_COVERAGE_PAYLOADS=0 (default on;
8
- * mirrors ProjectConfig.operationsConfig.disablePayloadTrackingInTests).
12
+ * Body read timeout: TESTCHIMP_API_COVERAGE_BODY_TIMEOUT_MS (default 1500).
13
+ * Drain timeout: TESTCHIMP_API_COVERAGE_DRAIN_TIMEOUT_MS (default 5000).
9
14
  *
10
- * Mocked vs real: interactions default to REAL. To mark a route as MOCKED, fulfill it via
11
- * {@link fulfillMocked} instead of `route.fulfill(...)` directly — it stamps a response header
12
- * this module checks for. Playwright gives no generic way to detect route interception otherwise.
15
+ * Mocked vs real: native Playwright `route.fulfill(...)` calls are detected automatically.
16
+ * Playwright does not expose this on Response, so route handlers registered after capture attaches
17
+ * are instrumented in-process. Instrumentation is best-effort and must never alter route behavior.
13
18
  */
14
19
  import type { Page, Route } from '@playwright/test';
20
+ /** @deprecated Mock detection no longer relies on response headers. */
15
21
  export declare const TESTCHIMP_MOCKED_HEADER = "x-testchimp-mocked";
16
22
  /** Name of the per-test Playwright attachment carrying buffered interactions (JSON array). */
17
23
  export declare const API_COVERAGE_ATTACHMENT_NAME = "testchimp-api-coverage";
@@ -63,14 +69,29 @@ export interface ApiOperationInteractionPayload {
63
69
  }
64
70
  /** Alias matching the `ApiOperationInteraction` proto message name used in ingest requests. */
65
71
  export type ApiOperationInteraction = ApiOperationInteractionPayload;
66
- /** Whether page-level API coverage capture should be installed (default on). */
72
+ /**
73
+ * Whether API operation capture + payload ingest should run.
74
+ * Controlled solely by TESTCHIMP_ENABLE_API_CAPTURE (default off / unset).
75
+ * Truthy: 1, true, yes. Falsy / unset: disabled.
76
+ */
67
77
  export declare function isApiCoverageEnabled(): boolean;
68
- /** Whether request/response bodies should be captured (default on). */
78
+ /**
79
+ * Payload capture follows the same opt-in as {@link isApiCoverageEnabled}.
80
+ * Kept as a named export for callers that previously branched on payloads separately.
81
+ */
69
82
  export declare function apiCoveragePayloadsEnabled(): boolean;
83
+ /** Per-response body read cap so SSE/long-poll cannot hang the pending set. */
84
+ export declare function resolveApiCoverageBodyTimeoutMs(): number;
85
+ /** Fixture-teardown drain budget (same spirit as RUM flush). */
86
+ export declare function resolveApiCoverageDrainTimeoutMs(): number;
70
87
  /** Optional URL allow-list regex from TESTCHIMP_API_COVERAGE_URL_REGEX (matches full URL). */
71
88
  export declare function buildApiCoverageUrlRegex(): RegExp | null;
89
+ /** Statuses with no useful body — skip body read. */
90
+ export declare function shouldSkipBodyForStatus(status: number): boolean;
91
+ export declare function shouldSkipResourceType(resourceType: string): boolean;
72
92
  /**
73
- * Fulfill a route as mocked and mark the request for coverage (interactionType=MOCKED).
93
+ * @deprecated Use Playwright's `route.fulfill(...)`; mocked coverage is detected automatically.
94
+ * Kept as a no-header fallback for handlers registered before capture instrumentation attaches.
74
95
  */
75
96
  export declare function fulfillMocked(route: Route, options: Parameters<Route['fulfill']>[0]): Promise<void>;
76
97
  /**
@@ -80,7 +101,10 @@ export declare function attachApiCoverageCapture(page: Page, opts?: {
80
101
  urlRegex?: RegExp | null;
81
102
  capturePayloads?: boolean;
82
103
  }): void;
83
- /** Wait for in-flight response handlers, then drain the buffer (call from fixture teardown). */
104
+ /**
105
+ * Wait (bounded) for in-flight response handlers, then drain the buffer.
106
+ * On drain timeout, returns whatever is already buffered and abandons remaining pending work.
107
+ */
84
108
  export declare function drainApiCoverageInteractions(page: Page): Promise<ApiOperationInteractionPayload[]>;
85
109
  /** Serialize buffered interactions for a Playwright `testInfo.attach(...)` body. */
86
110
  export declare function toApiCoverageAttachmentBody(interactions: ApiOperationInteractionPayload[]): Buffer;
@@ -1 +1 @@
1
- {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/api-coverage/capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,IAAI,EAAW,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE7D,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAE5D,8FAA8F;AAC9F,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AAErE,oBAAY,oBAAoB;IAC9B,+BAA+B,oCAAoC;IACnE,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAED,oBAAY,2BAA2B;IACrC,sCAAsC,2CAA2C;IACjF,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,oBAAY,cAAc;IACxB,wBAAwB,6BAA6B;IACrD,IAAI,SAAS;IACb,eAAe,oBAAoB;IACnC,GAAG,QAAQ;IACX,OAAO,YAAY;CACpB;AAED,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,8BAA8B;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAAC;IACzC,0DAA0D;IAC1D,eAAe,CAAC,EAAE,2BAA2B,GAAG,MAAM,CAAC;IACvD,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,+FAA+F;AAC/F,MAAM,MAAM,uBAAuB,GAAG,8BAA8B,CAAC;AAQrE,gFAAgF;AAChF,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,uEAAuE;AACvE,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD;AAED,8FAA8F;AAC9F,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,IAAI,CAUxD;AAkJD;;GAEG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,EACV,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7D,IAAI,CA6EN;AAED,gGAAgG;AAChG,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,8BAA8B,EAAE,CAAC,CASxG;AAED,oFAAoF;AACpF,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,8BAA8B,EAAE,GAAG,MAAM,CAElG;AAED,2FAA2F;AAC3F,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,8BAA8B,EAAE,CAQjG"}
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/api-coverage/capture.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ApiPayloadKind = exports.ApiOperationInteractionType = exports.ApiOperationTestMode = exports.API_COVERAGE_ATTACHMENT_NAME = exports.TESTCHIMP_MOCKED_HEADER = void 0;
4
4
  exports.isApiCoverageEnabled = isApiCoverageEnabled;
5
5
  exports.apiCoveragePayloadsEnabled = apiCoveragePayloadsEnabled;
6
+ exports.resolveApiCoverageBodyTimeoutMs = resolveApiCoverageBodyTimeoutMs;
7
+ exports.resolveApiCoverageDrainTimeoutMs = resolveApiCoverageDrainTimeoutMs;
6
8
  exports.buildApiCoverageUrlRegex = buildApiCoverageUrlRegex;
9
+ exports.shouldSkipBodyForStatus = shouldSkipBodyForStatus;
10
+ exports.shouldSkipResourceType = shouldSkipResourceType;
7
11
  exports.fulfillMocked = fulfillMocked;
8
12
  exports.attachApiCoverageCapture = attachApiCoverageCapture;
9
13
  exports.drainApiCoverageInteractions = drainApiCoverageInteractions;
10
14
  exports.toApiCoverageAttachmentBody = toApiCoverageAttachmentBody;
11
15
  exports.parseApiCoverageAttachment = parseApiCoverageAttachment;
16
+ /** @deprecated Mock detection no longer relies on response headers. */
12
17
  exports.TESTCHIMP_MOCKED_HEADER = 'x-testchimp-mocked';
13
18
  /** Name of the per-test Playwright attachment carrying buffered interactions (JSON array). */
14
19
  exports.API_COVERAGE_ATTACHMENT_NAME = 'testchimp-api-coverage';
@@ -38,13 +43,37 @@ function envFlag(name, defaultValue) {
38
43
  return defaultValue;
39
44
  return raw !== '0' && raw !== 'false' && raw !== 'no';
40
45
  }
41
- /** Whether page-level API coverage capture should be installed (default on). */
46
+ function envTimeoutMs(name, defaultMs, minMs, maxMs) {
47
+ const raw = process.env[name];
48
+ if (raw === undefined || raw === '')
49
+ return defaultMs;
50
+ const n = parseInt(raw, 10);
51
+ if (Number.isNaN(n))
52
+ return defaultMs;
53
+ return Math.max(minMs, Math.min(maxMs, n));
54
+ }
55
+ /**
56
+ * Whether API operation capture + payload ingest should run.
57
+ * Controlled solely by TESTCHIMP_ENABLE_API_CAPTURE (default off / unset).
58
+ * Truthy: 1, true, yes. Falsy / unset: disabled.
59
+ */
42
60
  function isApiCoverageEnabled() {
43
- return envFlag('TESTCHIMP_API_COVERAGE', true);
61
+ return envFlag('TESTCHIMP_ENABLE_API_CAPTURE', false);
44
62
  }
45
- /** Whether request/response bodies should be captured (default on). */
63
+ /**
64
+ * Payload capture follows the same opt-in as {@link isApiCoverageEnabled}.
65
+ * Kept as a named export for callers that previously branched on payloads separately.
66
+ */
46
67
  function apiCoveragePayloadsEnabled() {
47
- return envFlag('TESTCHIMP_API_COVERAGE_PAYLOADS', true);
68
+ return isApiCoverageEnabled();
69
+ }
70
+ /** Per-response body read cap so SSE/long-poll cannot hang the pending set. */
71
+ function resolveApiCoverageBodyTimeoutMs() {
72
+ return envTimeoutMs('TESTCHIMP_API_COVERAGE_BODY_TIMEOUT_MS', 1500, 50, 10000);
73
+ }
74
+ /** Fixture-teardown drain budget (same spirit as RUM flush). */
75
+ function resolveApiCoverageDrainTimeoutMs() {
76
+ return envTimeoutMs('TESTCHIMP_API_COVERAGE_DRAIN_TIMEOUT_MS', 5000, 100, 30000);
48
77
  }
49
78
  /** Optional URL allow-list regex from TESTCHIMP_API_COVERAGE_URL_REGEX (matches full URL). */
50
79
  function buildApiCoverageUrlRegex() {
@@ -63,6 +92,22 @@ function buildApiCoverageUrlRegex() {
63
92
  const PAYLOAD_MAX = 65536;
64
93
  const BUFFER_KEY = '__testchimpApiCoverageBuffers';
65
94
  const PENDING_KEY = '__testchimpApiCoveragePending';
95
+ const ROUTING_INSTRUMENTED = Symbol('testchimpApiCoverageRoutingInstrumented');
96
+ const ROUTE_FULFILL_INSTRUMENTED = Symbol('testchimpApiCoverageRouteFulfillInstrumented');
97
+ /** Shared across pages in a worker so context-level routes can mark the owning page's request. */
98
+ const fulfilledRequests = new WeakSet();
99
+ const SKIP_RESOURCE_TYPES = new Set([
100
+ 'image',
101
+ 'media',
102
+ 'font',
103
+ 'stylesheet',
104
+ 'script',
105
+ 'document',
106
+ 'websocket',
107
+ 'eventsource',
108
+ 'manifest',
109
+ 'texttrack',
110
+ ]);
66
111
  function getBuffers(page) {
67
112
  const p = page;
68
113
  if (!p[BUFFER_KEY])
@@ -113,16 +158,26 @@ function truncate(s) {
113
158
  return undefined;
114
159
  return s.length <= PAYLOAD_MAX ? s : s.slice(0, PAYLOAD_MAX);
115
160
  }
161
+ /** Binary / multipart / streaming content types — never call response.text(). */
116
162
  function isSkippableContentType(ct) {
117
163
  if (!ct)
118
164
  return false;
119
165
  const c = ct.toLowerCase();
120
166
  return (c.includes('multipart/form-data') ||
121
167
  c.includes('octet-stream') ||
168
+ c.includes('text/event-stream') ||
169
+ c.includes('text/html') ||
122
170
  c.startsWith('image/') ||
123
171
  c.startsWith('video/') ||
124
172
  c.startsWith('audio/'));
125
173
  }
174
+ /** Statuses with no useful body — skip body read. */
175
+ function shouldSkipBodyForStatus(status) {
176
+ return status < 200 || status === 204 || status === 304;
177
+ }
178
+ function shouldSkipResourceType(resourceType) {
179
+ return SKIP_RESOURCE_TYPES.has(resourceType);
180
+ }
126
181
  function isJsonContentType(ct) {
127
182
  if (!ct)
128
183
  return false;
@@ -185,23 +240,193 @@ function textToApiPayload(contentType, text) {
185
240
  return undefined;
186
241
  }
187
242
  }
188
- async function bodyToApiPayload(contentType, getText) {
243
+ async function withTimeout(promise, ms) {
244
+ let timer;
245
+ try {
246
+ return await Promise.race([
247
+ promise,
248
+ new Promise((_, reject) => {
249
+ timer = setTimeout(() => reject(new Error(`timed out after ${ms}ms`)), ms);
250
+ }),
251
+ ]);
252
+ }
253
+ finally {
254
+ if (timer !== undefined)
255
+ clearTimeout(timer);
256
+ }
257
+ }
258
+ async function bodyToApiPayload(contentType, getText, timeoutMs) {
189
259
  if (isSkippableContentType(contentType)) {
190
260
  return { kind: ApiPayloadKind.OMITTED, contentType };
191
261
  }
192
262
  try {
193
- return textToApiPayload(contentType, await getText());
263
+ const text = await withTimeout(getText(), timeoutMs);
264
+ return textToApiPayload(contentType, text);
194
265
  }
195
266
  catch {
267
+ // Timeout or body read failure: omit payload rather than fail the test.
196
268
  return undefined;
197
269
  }
198
270
  }
199
271
  /**
200
- * Fulfill a route as mocked and mark the request for coverage (interactionType=MOCKED).
272
+ * @deprecated Use Playwright's `route.fulfill(...)`; mocked coverage is detected automatically.
273
+ * Kept as a no-header fallback for handlers registered before capture instrumentation attaches.
201
274
  */
202
275
  async function fulfillMocked(route, options) {
203
- const headers = { ...(options?.headers || {}), [exports.TESTCHIMP_MOCKED_HEADER]: '1' };
204
- await route.fulfill({ ...options, headers });
276
+ const request = markFulfilledRequest(route);
277
+ try {
278
+ await route.fulfill(options);
279
+ }
280
+ catch (error) {
281
+ if (request)
282
+ fulfilledRequests.delete(request);
283
+ throw error;
284
+ }
285
+ }
286
+ function markFulfilledRequest(route) {
287
+ try {
288
+ const request = route.request();
289
+ fulfilledRequests.add(request);
290
+ return request;
291
+ }
292
+ catch {
293
+ // Classification is best-effort; never interfere with Playwright route handling.
294
+ return undefined;
295
+ }
296
+ }
297
+ /**
298
+ * Mark a routed request immediately before Playwright fulfills it.
299
+ *
300
+ * P0: every instrumentation operation is isolated from the original fulfill call. Even if
301
+ * marking fails, the original fulfill is called exactly once with unchanged arguments and its
302
+ * fulfillment or rejection is propagated.
303
+ */
304
+ function instrumentRouteFulfill(route) {
305
+ const fulfillDescriptor = Object.getOwnPropertyDescriptor(route, 'fulfill');
306
+ let fulfillReplaced = false;
307
+ try {
308
+ const augmented = route;
309
+ if (augmented[ROUTE_FULFILL_INSTRUMENTED])
310
+ return;
311
+ const originalFulfill = route.fulfill.bind(route);
312
+ const instrumentedFulfill = (options) => {
313
+ const request = markFulfilledRequest(route);
314
+ try {
315
+ const result = originalFulfill(options);
316
+ if (!request)
317
+ return result;
318
+ return result.catch((error) => {
319
+ fulfilledRequests.delete(request);
320
+ throw error;
321
+ });
322
+ }
323
+ catch (error) {
324
+ if (request)
325
+ fulfilledRequests.delete(request);
326
+ throw error;
327
+ }
328
+ };
329
+ Object.defineProperty(augmented, 'fulfill', {
330
+ configurable: true,
331
+ value: instrumentedFulfill,
332
+ writable: true,
333
+ });
334
+ fulfillReplaced = true;
335
+ Object.defineProperty(augmented, ROUTE_FULFILL_INSTRUMENTED, {
336
+ configurable: true,
337
+ value: true,
338
+ });
339
+ }
340
+ catch {
341
+ // Roll back a partial install; a changed/non-extensible Route remains usable but unclassified.
342
+ try {
343
+ if (fulfillReplaced) {
344
+ if (fulfillDescriptor)
345
+ Object.defineProperty(route, 'fulfill', fulfillDescriptor);
346
+ else
347
+ delete route.fulfill;
348
+ }
349
+ }
350
+ catch {
351
+ // Extremely defensive: standard Playwright Route objects are configurable/extensible.
352
+ }
353
+ }
354
+ }
355
+ /**
356
+ * Wrap subsequently registered route handlers while preserving `unroute(url, handler)` identity.
357
+ * Install failures are deliberately ignored: missing mocked coverage is preferable to test impact.
358
+ */
359
+ function instrumentRoutingTarget(target) {
360
+ const routeDescriptor = Object.getOwnPropertyDescriptor(target, 'route');
361
+ const unrouteDescriptor = Object.getOwnPropertyDescriptor(target, 'unroute');
362
+ let routeReplaced = false;
363
+ let unrouteReplaced = false;
364
+ try {
365
+ if (target[ROUTING_INSTRUMENTED])
366
+ return;
367
+ const originalRoute = target.route.bind(target);
368
+ const originalUnroute = target.unroute.bind(target);
369
+ const wrappedHandlers = new WeakMap();
370
+ const instrumentedRoute = async (url, handler, options) => {
371
+ let wrappedHandler = wrappedHandlers.get(handler);
372
+ if (!wrappedHandler) {
373
+ wrappedHandler = (route, request) => {
374
+ instrumentRouteFulfill(route);
375
+ return handler(route, request);
376
+ };
377
+ wrappedHandlers.set(handler, wrappedHandler);
378
+ }
379
+ return originalRoute(url, wrappedHandler, options);
380
+ };
381
+ const instrumentedUnroute = async (url, handler) => {
382
+ if (!handler)
383
+ return originalUnroute(url);
384
+ return originalUnroute(url, wrappedHandlers.get(handler) ?? handler);
385
+ };
386
+ Object.defineProperty(target, 'route', {
387
+ configurable: true,
388
+ value: instrumentedRoute,
389
+ writable: true,
390
+ });
391
+ routeReplaced = true;
392
+ Object.defineProperty(target, 'unroute', {
393
+ configurable: true,
394
+ value: instrumentedUnroute,
395
+ writable: true,
396
+ });
397
+ unrouteReplaced = true;
398
+ Object.defineProperty(target, ROUTING_INSTRUMENTED, {
399
+ configurable: true,
400
+ value: true,
401
+ });
402
+ }
403
+ catch {
404
+ // Roll back partial installation so route/unroute semantics cannot diverge.
405
+ try {
406
+ if (routeReplaced) {
407
+ if (routeDescriptor)
408
+ Object.defineProperty(target, 'route', routeDescriptor);
409
+ else
410
+ delete target.route;
411
+ }
412
+ if (unrouteReplaced) {
413
+ if (unrouteDescriptor)
414
+ Object.defineProperty(target, 'unroute', unrouteDescriptor);
415
+ else
416
+ delete target.unroute;
417
+ }
418
+ }
419
+ catch {
420
+ // Extremely defensive: standard Playwright objects are configurable/extensible.
421
+ }
422
+ }
423
+ }
424
+ function pushInteraction(page, interaction) {
425
+ const buf = getBuffers(page);
426
+ buf.push(interaction);
427
+ if (buf.length > 500) {
428
+ buf.splice(0, buf.length - 500);
429
+ }
205
430
  }
206
431
  /**
207
432
  * Attach API coverage listeners to a page. Call once per page (idempotent).
@@ -214,6 +439,19 @@ function attachApiCoverageCapture(page, opts) {
214
439
  const starts = new WeakMap();
215
440
  const regex = opts?.urlRegex ?? null;
216
441
  const capturePayloads = opts?.capturePayloads !== false;
442
+ const bodyTimeoutMs = resolveApiCoverageBodyTimeoutMs();
443
+ if (typeof p.route === 'function' && typeof p.unroute === 'function') {
444
+ instrumentRoutingTarget(p);
445
+ }
446
+ try {
447
+ const context = p.context();
448
+ if (typeof context.route === 'function' && typeof context.unroute === 'function') {
449
+ instrumentRoutingTarget(context);
450
+ }
451
+ }
452
+ catch {
453
+ // Fake/closed pages or changed Playwright APIs: response capture still remains usable.
454
+ }
217
455
  page.on('request', (req) => {
218
456
  starts.set(req, Date.now());
219
457
  });
@@ -224,21 +462,17 @@ function attachApiCoverageCapture(page, opts) {
224
462
  const url = req.url();
225
463
  if (regex && !regex.test(url))
226
464
  return;
227
- // Skip binary navigations / assets loosely
228
465
  const resourceType = req.resourceType();
229
- if (resourceType === 'image' ||
230
- resourceType === 'media' ||
231
- resourceType === 'font' ||
232
- resourceType === 'stylesheet' ||
233
- resourceType === 'script') {
466
+ if (shouldSkipResourceType(resourceType)) {
234
467
  return;
235
468
  }
469
+ const status = response.status();
236
470
  const start = starts.get(req) ?? Date.now();
237
471
  const rt = Math.max(0, Date.now() - start);
238
472
  const reqCt = req.headers()['content-type'];
239
473
  const resCt = response.headers()['content-type'];
240
- const mocked = !!req.headers()[exports.TESTCHIMP_MOCKED_HEADER] ||
241
- !!response.headers()[exports.TESTCHIMP_MOCKED_HEADER];
474
+ // Consume the marker: each Playwright Request has at most one response.
475
+ const mocked = fulfilledRequests.delete(req);
242
476
  let requestPayload;
243
477
  if (capturePayloads) {
244
478
  try {
@@ -251,14 +485,17 @@ function attachApiCoverageCapture(page, opts) {
251
485
  /* ignore */
252
486
  }
253
487
  }
254
- const responsePayload = capturePayloads
255
- ? await bodyToApiPayload(resCt, () => response.text())
256
- : undefined;
257
- const buf = getBuffers(page);
258
- buf.push({
488
+ let responsePayload;
489
+ if (capturePayloads && !shouldSkipBodyForStatus(status) && !isSkippableContentType(resCt)) {
490
+ responsePayload = await bodyToApiPayload(resCt, () => response.text(), bodyTimeoutMs);
491
+ }
492
+ else if (capturePayloads && isSkippableContentType(resCt)) {
493
+ responsePayload = { kind: ApiPayloadKind.OMITTED, contentType: resCt };
494
+ }
495
+ pushInteraction(page, {
259
496
  endpoint: stripPath(url),
260
497
  httpMethod: req.method(),
261
- responseCode: response.status(),
498
+ responseCode: status,
262
499
  requestPayload,
263
500
  responsePayload,
264
501
  queryParams: parseQueryParams(url),
@@ -266,12 +503,9 @@ function attachApiCoverageCapture(page, opts) {
266
503
  testMode: ApiOperationTestMode.AUTOMATION,
267
504
  interactionType: mocked ? ApiOperationInteractionType.MOCKED : ApiOperationInteractionType.REAL,
268
505
  });
269
- if (buf.length > 500) {
270
- buf.splice(0, buf.length - 500);
271
- }
272
506
  }
273
507
  catch {
274
- /* ignore */
508
+ /* ignore — capture must never throw into the test */
275
509
  }
276
510
  })();
277
511
  const pending = getPending(page);
@@ -279,11 +513,20 @@ function attachApiCoverageCapture(page, opts) {
279
513
  void work.finally(() => pending.delete(work));
280
514
  });
281
515
  }
282
- /** Wait for in-flight response handlers, then drain the buffer (call from fixture teardown). */
516
+ /**
517
+ * Wait (bounded) for in-flight response handlers, then drain the buffer.
518
+ * On drain timeout, returns whatever is already buffered and abandons remaining pending work.
519
+ */
283
520
  async function drainApiCoverageInteractions(page) {
284
521
  const pending = getPending(page);
285
522
  if (pending.size > 0) {
286
- await Promise.allSettled([...pending]);
523
+ const drainMs = resolveApiCoverageDrainTimeoutMs();
524
+ try {
525
+ await withTimeout(Promise.allSettled([...pending]).then(() => undefined), drainMs);
526
+ }
527
+ catch {
528
+ // Abandon unfinished body reads; do not block page fixture teardown.
529
+ }
287
530
  }
288
531
  const buf = getBuffers(page);
289
532
  const copy = buf.slice();
@@ -1 +1 @@
1
- {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/api-coverage/capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/api-coverage/capture.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -25,6 +25,8 @@
25
25
  * - TESTCHIMP_TESTS_FOLDER (optional): Base folder for relative path calculation
26
26
  * - TESTCHIMP_RELEASE (optional): Release/version identifier
27
27
  * - TESTCHIMP_ENV (optional): Environment name (e.g., staging, prod)
28
+ * - TESTCHIMP_ENABLE_API_CAPTURE (optional): set to 1/true to opt in to API operation
29
+ * capture + payload ingest (default off — no page listeners / no ingest)
28
30
  * Runtime (`@testchimp/playwright/runtime`): use `installTrueCoverage` or `installTestChimp` (same behavior).
29
31
  * Platform is read from Mobilewright `projects[].use.platform` (`ios`/`android`); omitted means web (`page` fixture).
30
32
  * Pass `{ uiFixture: 'screen' }` when wrapping `@mobilewright/test`; default `page` for `@playwright/test`.
@@ -45,10 +47,11 @@ export type * from './explorechimp/agents-explorechimp-json';
45
47
  export { DataSourceEnum } from './explorechimp/agents-explorechimp-json';
46
48
  /**
47
49
  * API operation coverage capture (US-185). Installed automatically for the `page` fixture by
48
- * `installTestChimp` / `installTrueCoverage` (see `./runtime`); `fulfillMocked` is exported here
49
- * for tests that need to mark a stubbed route as MOCKED (vs the default REAL) for coverage.
50
+ * `installTestChimp` / `installTrueCoverage` (see `./runtime`). Native Playwright
51
+ * `route.fulfill(...)` responses are automatically classified as MOCKED. `fulfillMocked` and
52
+ * `TESTCHIMP_MOCKED_HEADER` remain exported only for source compatibility.
50
53
  */
51
- export { API_COVERAGE_ATTACHMENT_NAME, ApiOperationInteractionType, ApiOperationTestMode, ApiPayloadKind, TESTCHIMP_MOCKED_HEADER, attachApiCoverageCapture, apiCoveragePayloadsEnabled, buildApiCoverageUrlRegex, drainApiCoverageInteractions, fulfillMocked, isApiCoverageEnabled, type ApiOperationInteraction, type ApiOperationInteractionPayload, type ApiPayload, } from './api-coverage/capture';
54
+ export { API_COVERAGE_ATTACHMENT_NAME, ApiOperationInteractionType, ApiOperationTestMode, ApiPayloadKind, TESTCHIMP_MOCKED_HEADER, attachApiCoverageCapture, apiCoveragePayloadsEnabled, buildApiCoverageUrlRegex, drainApiCoverageInteractions, fulfillMocked, isApiCoverageEnabled, resolveApiCoverageBodyTimeoutMs, resolveApiCoverageDrainTimeoutMs, shouldSkipBodyForStatus, shouldSkipResourceType, type ApiOperationInteraction, type ApiOperationInteractionPayload, type ApiPayload, } from './api-coverage/capture';
52
55
  import { TestChimpReporter } from './testchimp-reporter';
53
56
  export default TestChimpReporter;
54
57
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjH,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,sCAAsC,EACtC,0BAA0B,EAC1B,8BAA8B,EAC9B,mCAAmC,EACnC,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iCAAiC,EACjC,4BAA4B,GAC7B,MAAM,kCAAkC,CAAC;AAC1C,4DAA4D;AAC5D,mBAAmB,yCAAyC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE;;;;GAIG;AACH,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,aAAa,EACb,oBAAoB,EACpB,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,UAAU,GAChB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjH,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,sCAAsC,EACtC,0BAA0B,EAC1B,8BAA8B,EAC9B,mCAAmC,EACnC,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iCAAiC,EACjC,4BAA4B,GAC7B,MAAM,kCAAkC,CAAC;AAC1C,4DAA4D;AAC5D,mBAAmB,yCAAyC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE;;;;;GAKG;AACH,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,aAAa,EACb,oBAAoB,EACpB,+BAA+B,EAC/B,gCAAgC,EAChC,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,UAAU,GAChB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,eAAe,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -26,6 +26,8 @@
26
26
  * - TESTCHIMP_TESTS_FOLDER (optional): Base folder for relative path calculation
27
27
  * - TESTCHIMP_RELEASE (optional): Release/version identifier
28
28
  * - TESTCHIMP_ENV (optional): Environment name (e.g., staging, prod)
29
+ * - TESTCHIMP_ENABLE_API_CAPTURE (optional): set to 1/true to opt in to API operation
30
+ * capture + payload ingest (default off — no page listeners / no ingest)
29
31
  * Runtime (`@testchimp/playwright/runtime`): use `installTrueCoverage` or `installTestChimp` (same behavior).
30
32
  * Platform is read from Mobilewright `projects[].use.platform` (`ios`/`android`); omitted means web (`page` fixture).
31
33
  * Pass `{ uiFixture: 'screen' }` when wrapping `@mobilewright/test`; default `page` for `@playwright/test`.
@@ -48,7 +50,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
48
50
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
49
51
  };
50
52
  Object.defineProperty(exports, "__esModule", { value: true });
51
- exports.isApiCoverageEnabled = exports.fulfillMocked = exports.drainApiCoverageInteractions = exports.buildApiCoverageUrlRegex = exports.apiCoveragePayloadsEnabled = exports.attachApiCoverageCapture = exports.TESTCHIMP_MOCKED_HEADER = exports.ApiPayloadKind = exports.ApiOperationTestMode = exports.ApiOperationInteractionType = exports.API_COVERAGE_ATTACHMENT_NAME = exports.DataSourceEnum = exports.wrapScreenForTransportResync = exports.attachMobileScreenTransportResync = exports.resolveWebRumFlushTimeoutMs = exports.flushWebRumBuffer = exports.attachWebRumAutomationHooks = exports.transportResyncDisabled = exports.resolvePostSetSettleMs = exports.resyncTrueCoverageSetForCurrentTest = exports.isLikelyMobileTransportFailure = exports.getMobileRumAutomationUrls = exports.extendMobileTestWithTrueCoverageDevice = exports.suiteTeardownClearEnabled = exports.clearBetweenTestsEnabled = exports.buildAutomationSetOpenUrl = exports.attachMobileRumAutomationHooks = exports.buildCiTestInfoObject = exports.buildCiTestInfoJson = exports.TestChimpApiClient = exports.TestChimpReporter = void 0;
53
+ exports.shouldSkipResourceType = exports.shouldSkipBodyForStatus = exports.resolveApiCoverageDrainTimeoutMs = exports.resolveApiCoverageBodyTimeoutMs = exports.isApiCoverageEnabled = exports.fulfillMocked = exports.drainApiCoverageInteractions = exports.buildApiCoverageUrlRegex = exports.apiCoveragePayloadsEnabled = exports.attachApiCoverageCapture = exports.TESTCHIMP_MOCKED_HEADER = exports.ApiPayloadKind = exports.ApiOperationTestMode = exports.ApiOperationInteractionType = exports.API_COVERAGE_ATTACHMENT_NAME = exports.DataSourceEnum = exports.wrapScreenForTransportResync = exports.attachMobileScreenTransportResync = exports.resolveWebRumFlushTimeoutMs = exports.flushWebRumBuffer = exports.attachWebRumAutomationHooks = exports.transportResyncDisabled = exports.resolvePostSetSettleMs = exports.resyncTrueCoverageSetForCurrentTest = exports.isLikelyMobileTransportFailure = exports.getMobileRumAutomationUrls = exports.extendMobileTestWithTrueCoverageDevice = exports.suiteTeardownClearEnabled = exports.clearBetweenTestsEnabled = exports.buildAutomationSetOpenUrl = exports.attachMobileRumAutomationHooks = exports.buildCiTestInfoObject = exports.buildCiTestInfoJson = exports.TestChimpApiClient = exports.TestChimpReporter = void 0;
52
54
  var testchimp_reporter_1 = require("./testchimp-reporter");
53
55
  Object.defineProperty(exports, "TestChimpReporter", { enumerable: true, get: function () { return testchimp_reporter_1.TestChimpReporter; } });
54
56
  var api_client_1 = require("./api-client");
@@ -80,8 +82,9 @@ var agents_explorechimp_json_1 = require("./explorechimp/agents-explorechimp-jso
80
82
  Object.defineProperty(exports, "DataSourceEnum", { enumerable: true, get: function () { return agents_explorechimp_json_1.DataSourceEnum; } });
81
83
  /**
82
84
  * API operation coverage capture (US-185). Installed automatically for the `page` fixture by
83
- * `installTestChimp` / `installTrueCoverage` (see `./runtime`); `fulfillMocked` is exported here
84
- * for tests that need to mark a stubbed route as MOCKED (vs the default REAL) for coverage.
85
+ * `installTestChimp` / `installTrueCoverage` (see `./runtime`). Native Playwright
86
+ * `route.fulfill(...)` responses are automatically classified as MOCKED. `fulfillMocked` and
87
+ * `TESTCHIMP_MOCKED_HEADER` remain exported only for source compatibility.
85
88
  */
86
89
  var capture_1 = require("./api-coverage/capture");
87
90
  Object.defineProperty(exports, "API_COVERAGE_ATTACHMENT_NAME", { enumerable: true, get: function () { return capture_1.API_COVERAGE_ATTACHMENT_NAME; } });
@@ -95,6 +98,10 @@ Object.defineProperty(exports, "buildApiCoverageUrlRegex", { enumerable: true, g
95
98
  Object.defineProperty(exports, "drainApiCoverageInteractions", { enumerable: true, get: function () { return capture_1.drainApiCoverageInteractions; } });
96
99
  Object.defineProperty(exports, "fulfillMocked", { enumerable: true, get: function () { return capture_1.fulfillMocked; } });
97
100
  Object.defineProperty(exports, "isApiCoverageEnabled", { enumerable: true, get: function () { return capture_1.isApiCoverageEnabled; } });
101
+ Object.defineProperty(exports, "resolveApiCoverageBodyTimeoutMs", { enumerable: true, get: function () { return capture_1.resolveApiCoverageBodyTimeoutMs; } });
102
+ Object.defineProperty(exports, "resolveApiCoverageDrainTimeoutMs", { enumerable: true, get: function () { return capture_1.resolveApiCoverageDrainTimeoutMs; } });
103
+ Object.defineProperty(exports, "shouldSkipBodyForStatus", { enumerable: true, get: function () { return capture_1.shouldSkipBodyForStatus; } });
104
+ Object.defineProperty(exports, "shouldSkipResourceType", { enumerable: true, get: function () { return capture_1.shouldSkipResourceType; } });
98
105
  // Default export for Playwright reporter configuration
99
106
  const testchimp_reporter_2 = require("./testchimp-reporter");
100
107
  exports.default = testchimp_reporter_2.TestChimpReporter;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;;;;;;;;;;;;;;;;;AAEH,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAC1B,2CAAkD;AAAzC,gHAAA,kBAAkB,OAAA;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,+CAAiH;AAAxG,mHAAA,mBAAmB,OAAA;AAAE,qHAAA,qBAAqB,OAAA;AACnD,iEAaiC;AAZ/B,uIAAA,8BAA8B,OAAA;AAC9B,kIAAA,yBAAyB,OAAA;AACzB,iIAAA,wBAAwB,OAAA;AACxB,kIAAA,yBAAyB,OAAA;AACzB,+IAAA,sCAAsC,OAAA;AACtC,mIAAA,0BAA0B,OAAA;AAC1B,uIAAA,8BAA8B,OAAA;AAC9B,4IAAA,mCAAmC,OAAA;AACnC,+HAAA,sBAAsB,OAAA;AACtB,gIAAA,uBAAuB,OAAA;AAIzB,2DAI8B;AAH5B,iIAAA,2BAA2B,OAAA;AAC3B,uHAAA,iBAAiB,OAAA;AACjB,iIAAA,2BAA2B,OAAA;AAE7B,mFAG0C;AAFxC,mJAAA,iCAAiC,OAAA;AACjC,8IAAA,4BAA4B,OAAA;AAI9B,oFAAyE;AAAhE,0HAAA,cAAc,OAAA;AACvB;;;;GAIG;AACH,kDAegC;AAd9B,uHAAA,4BAA4B,OAAA;AAC5B,sHAAA,2BAA2B,OAAA;AAC3B,+GAAA,oBAAoB,OAAA;AACpB,yGAAA,cAAc,OAAA;AACd,kHAAA,uBAAuB,OAAA;AACvB,mHAAA,wBAAwB,OAAA;AACxB,qHAAA,0BAA0B,OAAA;AAC1B,mHAAA,wBAAwB,OAAA;AACxB,uHAAA,4BAA4B,OAAA;AAC5B,wGAAA,aAAa,OAAA;AACb,+GAAA,oBAAoB,OAAA;AAMtB,uDAAuD;AACvD,6DAAyD;AACzD,kBAAe,sCAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;;;;;;;;;;;;;;;;;AAEH,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAC1B,2CAAkD;AAAzC,gHAAA,kBAAkB,OAAA;AAC3B,0CAAwB;AACxB,0CAAwB;AACxB,+CAAiH;AAAxG,mHAAA,mBAAmB,OAAA;AAAE,qHAAA,qBAAqB,OAAA;AACnD,iEAaiC;AAZ/B,uIAAA,8BAA8B,OAAA;AAC9B,kIAAA,yBAAyB,OAAA;AACzB,iIAAA,wBAAwB,OAAA;AACxB,kIAAA,yBAAyB,OAAA;AACzB,+IAAA,sCAAsC,OAAA;AACtC,mIAAA,0BAA0B,OAAA;AAC1B,uIAAA,8BAA8B,OAAA;AAC9B,4IAAA,mCAAmC,OAAA;AACnC,+HAAA,sBAAsB,OAAA;AACtB,gIAAA,uBAAuB,OAAA;AAIzB,2DAI8B;AAH5B,iIAAA,2BAA2B,OAAA;AAC3B,uHAAA,iBAAiB,OAAA;AACjB,iIAAA,2BAA2B,OAAA;AAE7B,mFAG0C;AAFxC,mJAAA,iCAAiC,OAAA;AACjC,8IAAA,4BAA4B,OAAA;AAI9B,oFAAyE;AAAhE,0HAAA,cAAc,OAAA;AACvB;;;;;GAKG;AACH,kDAmBgC;AAlB9B,uHAAA,4BAA4B,OAAA;AAC5B,sHAAA,2BAA2B,OAAA;AAC3B,+GAAA,oBAAoB,OAAA;AACpB,yGAAA,cAAc,OAAA;AACd,kHAAA,uBAAuB,OAAA;AACvB,mHAAA,wBAAwB,OAAA;AACxB,qHAAA,0BAA0B,OAAA;AAC1B,mHAAA,wBAAwB,OAAA;AACxB,uHAAA,4BAA4B,OAAA;AAC5B,wGAAA,aAAa,OAAA;AACb,+GAAA,oBAAoB,OAAA;AACpB,0HAAA,+BAA+B,OAAA;AAC/B,2HAAA,gCAAgC,OAAA;AAChC,kHAAA,uBAAuB,OAAA;AACvB,iHAAA,sBAAsB,OAAA;AAMxB,uDAAuD;AACvD,6DAAyD;AACzD,kBAAe,sCAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAGL,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAA0C,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAkBzF,+EAA+E;AAC/E,MAAM,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/F,MAAM,MAAM,uBAAuB,GAAG;IACpC,0FAA0F;IAC1F,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB,CAAC;AAkIF;;;GAGG;AAEH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,GAAE,uBAA4B,GAAG,GAAG,CA6BzF;AAED,+GAA+G;AAC/G,eAAO,MAAM,gBAAgB,4BAAsB,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAGL,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAA0C,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAkBzF,+EAA+E;AAC/E,MAAM,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/F,MAAM,MAAM,uBAAuB,GAAG;IACpC,0FAA0F;IAC1F,SAAS,CAAC,EAAE,UAAU,CAAC;CACxB,CAAC;AAmIF;;;GAGG;AAEH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,GAAE,uBAA4B,GAAG,GAAG,CA6BzF;AAED,+GAA+G;AAC/G,eAAO,MAAM,gBAAgB,4BAAsB,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
package/dist/runtime.js CHANGED
@@ -81,6 +81,7 @@ function extendWebTrueCoveragePage(test) {
81
81
  try {
82
82
  (0, capture_1.attachApiCoverageCapture)(page, {
83
83
  urlRegex: (0, capture_1.buildApiCoverageUrlRegex)(),
84
+ // Same opt-in as isApiCoverageEnabled (TESTCHIMP_ENABLE_API_CAPTURE).
84
85
  capturePayloads: (0, capture_1.apiCoveragePayloadsEnabled)(),
85
86
  });
86
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -82,8 +82,8 @@ export declare class TestChimpReporter implements Reporter {
82
82
  * US-185: read the buffered API operation interactions attached by the `page` fixture
83
83
  * (see runtime.ts `extendWebTrueCoveragePage`) and forward them for ingest, filling in
84
84
  * whatever test/execution identity is available at the call site. Best-effort — never
85
- * throws, and no-ops when the attachment is absent (e.g. TESTCHIMP_API_COVERAGE=0, no page
86
- * fixture used, or no matching traffic observed).
85
+ * throws, and no-ops when the attachment is absent (e.g. TESTCHIMP_ENABLE_API_CAPTURE unset,
86
+ * no page fixture used, or no matching traffic observed).
87
87
  */
88
88
  private ingestApiCoverageIfPresent;
89
89
  private _onTestEndInner;
@@ -392,8 +392,8 @@ class TestChimpReporter {
392
392
  * US-185: read the buffered API operation interactions attached by the `page` fixture
393
393
  * (see runtime.ts `extendWebTrueCoveragePage`) and forward them for ingest, filling in
394
394
  * whatever test/execution identity is available at the call site. Best-effort — never
395
- * throws, and no-ops when the attachment is absent (e.g. TESTCHIMP_API_COVERAGE=0, no page
396
- * fixture used, or no matching traffic observed).
395
+ * throws, and no-ops when the attachment is absent (e.g. TESTCHIMP_ENABLE_API_CAPTURE unset,
396
+ * no page fixture used, or no matching traffic observed).
397
397
  */
398
398
  async ingestApiCoverageIfPresent(result, ids) {
399
399
  if (!this.apiClient)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@testchimp/playwright",
3
- "version": "0.2.13",
3
+ "version": "0.2.15",
4
4
  "description": "Playwright/Mobilewright reporter and runtime for TestChimp tracking and coverage reporting",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",