@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 +18 -0
- package/dist/api-coverage/capture.d.ts +34 -10
- package/dist/api-coverage/capture.d.ts.map +1 -1
- package/dist/api-coverage/capture.js +272 -29
- package/dist/api-coverage/capture.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +1 -0
- package/dist/runtime.js.map +1 -1
- package/dist/testchimp-reporter.d.ts +2 -2
- package/dist/testchimp-reporter.js +2 -2
- package/package.json +1 -1
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
|
-
*
|
|
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
|
-
*
|
|
8
|
-
*
|
|
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:
|
|
11
|
-
*
|
|
12
|
-
*
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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
|
-
*
|
|
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
|
-
/**
|
|
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
|
|
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
|
-
|
|
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('
|
|
61
|
+
return envFlag('TESTCHIMP_ENABLE_API_CAPTURE', false);
|
|
44
62
|
}
|
|
45
|
-
/**
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
|
204
|
-
|
|
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
|
|
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
|
-
|
|
241
|
-
|
|
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
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
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:
|
|
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
|
-
/**
|
|
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
|
-
|
|
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`)
|
|
49
|
-
*
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
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`)
|
|
84
|
-
*
|
|
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
|
|
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"}
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
}
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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.
|
|
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.
|
|
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