@testchimp/playwright 0.1.39 → 0.1.41
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 +7 -5
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/rum-automation-mobile.d.ts +28 -7
- package/dist/rum-automation-mobile.d.ts.map +1 -1
- package/dist/rum-automation-mobile.js +73 -44
- package/dist/rum-automation-mobile.js.map +1 -1
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +2 -2
- package/dist/runtime.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -84,13 +84,13 @@ A side-effect-only `import '@testchimp/playwright/runtime'` does not apply exten
|
|
|
84
84
|
|
|
85
85
|
**Web:** the runtime injects `__TC_CI_TEST_INFO` on the `page` fixture for `@testchimp/rum-js`.
|
|
86
86
|
|
|
87
|
-
**Mobile (iOS/Android):** set `TESTCHIMP_PROJECT_TYPE=ios` or `android`. The runtime
|
|
87
|
+
**Mobile (iOS/Android):** set `TESTCHIMP_PROJECT_TYPE=ios` or `android`. The runtime extends the Mobilewright **`device`** fixture so **`SET`** runs right after Mobilewright’s **`launchApp`** (via `device.openUrl`), before **`screen`** and the test body; **`afterEach`** still sends a trailing **`SET`** + **`v1/flush`**. By default **no** `/v1/clear` between tests—each test **`SET`s** new CI so RUM avoids a clear→set gap with missing `ci_test_info`. Integrate **TestChimpRum** for that platform (see `testchimp-rum-ios` / `testchimp-rum-android` READMEs): URL scheme / intent filter for `testchimp-rum://truecoverage/...`.
|
|
88
88
|
|
|
89
89
|
```bash
|
|
90
90
|
export TESTCHIMP_PROJECT_TYPE=ios # or android
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
-
Optional URL overrides: `TESTCHIMP_RUM_AUTOMATION_SET_PREFIX`, `TESTCHIMP_RUM_AUTOMATION_CLEAR_URL` (defaults match the native SDKs).
|
|
93
|
+
Optional URL overrides: `TESTCHIMP_RUM_AUTOMATION_SET_PREFIX`, `TESTCHIMP_RUM_AUTOMATION_CLEAR_URL`, `TESTCHIMP_RUM_AUTOMATION_FLUSH_URL` (defaults match the native SDKs). Legacy: set **`TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS=1`** to send `/v1/clear` before each test’s `SET` again.
|
|
94
94
|
|
|
95
95
|
### 2. Environment variables
|
|
96
96
|
|
|
@@ -106,6 +106,8 @@ Set these so the reporter can talk to TestChimp (env vars override programmatic
|
|
|
106
106
|
| `TESTCHIMP_PROJECT_TYPE` | No | Fixture/runtime switch: `web` (default) or mobile (`ios`/`android`). Mobile mode always pushes CI JSON via `device.openUrl` (TrueCoverage). |
|
|
107
107
|
| `TESTCHIMP_RUM_AUTOMATION_SET_PREFIX` | No | Override set-URL prefix (default `testchimp-rum://truecoverage/v1/set?p=` + base64url JSON). |
|
|
108
108
|
| `TESTCHIMP_RUM_AUTOMATION_CLEAR_URL` | No | Override clear URL (default `testchimp-rum://truecoverage/v1/clear`). |
|
|
109
|
+
| `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
|
+
| `TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR` | No | When `1`/`true`/`yes`, registers `afterAll` to send `/v1/clear` then `/v1/flush` after the spec file. **Default off** (avoids clearing CI between spec files before the next file’s `SET`). |
|
|
109
111
|
| `TESTCHIMP_RUM_TRANSPORT_RESYNC` | No | Mobile `screen` fixture: set to `0` to disable automatic TrueCoverage `v1/set` after likely WebSocket/mobilecli transport failures (default: enabled). |
|
|
110
112
|
|
|
111
113
|
If `TESTCHIMP_API_KEY` is missing, the reporter logs a warning and disables reporting (no request is sent).
|
|
@@ -166,8 +168,8 @@ Retries are tracked; with `reportOnlyFinalAttempt: true` only the last attempt i
|
|
|
166
168
|
- **Named**: `TestChimpReporter`, `TestChimpApiClient`, and types/utilities from `./types` and `./utils`.
|
|
167
169
|
- **Subpath**: `@testchimp/playwright/runtime` — use `installTestChimp(test)` on your runner’s `test` object (see Quick start).
|
|
168
170
|
- **Web:** extends `page` to set `__TC_CI_TEST_INFO` for `@testchimp/rum-js`.
|
|
169
|
-
- **Mobile:** when `TESTCHIMP_PROJECT_TYPE` is `ios`/`android`, registers hooks that call `device.openUrl` for the iOS Swift SDK and Android Kotlin SDK (same URL contract).
|
|
170
|
-
- **Named**: `buildCiTestInfoJson`, `attachMobileRumAutomationHooks`, `resyncTrueCoverageSetForCurrentTest`, `isLikelyMobileTransportFailure`, etc., for advanced wiring.
|
|
171
|
+
- **Mobile:** when `TESTCHIMP_PROJECT_TYPE` is `ios`/`android`, registers hooks that call `device.openUrl` for the iOS Swift SDK and Android Kotlin SDK (same URL contract). Default: **SET-only** between tests; **no** automatic `afterAll` clear (CI clears on SDK TTL or opt-in `TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR=1`).
|
|
172
|
+
- **Named**: `buildCiTestInfoJson`, `attachMobileRumAutomationHooks`, `extendMobileTestWithTrueCoverageDevice`, `clearBetweenTestsEnabled`, `suiteTeardownClearEnabled`, `resyncTrueCoverageSetForCurrentTest`, `isLikelyMobileTransportFailure`, etc., for advanced wiring.
|
|
171
173
|
|
|
172
174
|
---
|
|
173
175
|
|
|
@@ -185,7 +187,7 @@ Retries are tracked; with `reportOnlyFinalAttempt: true` only the last attempt i
|
|
|
185
187
|
- **RUM events not linked to tests / missing `ci_test_info` (mobile)**
|
|
186
188
|
Use `export const test = installTestChimp(...)` from a fixtures barrel and import `test` from there. Set `TESTCHIMP_PROJECT_TYPE=android|ios` and handle `testchimp-rum://truecoverage/...` in the app (`TestChimpRum.handleAutomationURL` on iOS, `TestChimpRum.handleAutomationUri` on Android).
|
|
187
189
|
**Android SDK:** use **testchimp-rum-android ≥ 0.1.7** (automation **`/v1/set`** on caller thread; **`/v1/flush`** drains buffered events when the runner opens that URL).
|
|
188
|
-
**Runner:**
|
|
190
|
+
**Runner:** `installTestChimp` extends the **`device`** fixture so **`SET`** runs in the same scope as Mobilewright’s **`launchApp`** (before **`screen`**), then settle; **`afterEach`** sends a trailing **`set` + `v1/flush`**. **Does not** send `/v1/clear` between tests by default (avoids null `ci-test-info`). Opt in to legacy clear-first with **`TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS=1`**, or **`TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR=1`** for `afterAll` `clear`+`flush` after each spec file. **Re-sends `set` after likely transport failures** on `screen` API calls. Disable resync with **`TESTCHIMP_RUM_TRANSPORT_RESYNC=0`**. Tune **`TESTCHIMP_RUM_AUTOMATION_POST_SET_SETTLE_MS`** (0–500, default **100** ms). Optional URL overrides: **`TESTCHIMP_RUM_AUTOMATION_FLUSH_URL`**. If **`device.openUrl`** wedges (mobilecli), set **`TESTCHIMP_RUM_AUTOMATION_OPEN_URL_TIMEOUT_MS`** (default **25000**, clamp **100–120000**).
|
|
189
191
|
|
|
190
192
|
- **RUM events not linked to tests (web)**
|
|
191
193
|
Same `installTestChimp` barrel; web uses `__TC_CI_TEST_INFO` on `page` for `@testchimp/rum-js`.
|
package/dist/index.d.ts
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* Runtime (`@testchimp/playwright/runtime`): use `installTrueCoverage` or `installTestChimp` (same behavior).
|
|
29
29
|
* Fixture/runtime switching: default web mode uses `page`; set `TESTCHIMP_PROJECT_TYPE=ios|android`
|
|
30
30
|
* (case-insensitive) to switch runtime fixture wiring to `screen`.
|
|
31
|
-
* Mobile TrueCoverage: `TESTCHIMP_PROJECT_TYPE=ios|android` + TestChimpRum URL handler; see README. Optional **`TESTCHIMP_RUM_TRANSPORT_RESYNC=0`** disables automatic `v1/set` after likely transport failures on mobile `screen` calls.
|
|
31
|
+
* Mobile TrueCoverage: `TESTCHIMP_PROJECT_TYPE=ios|android` + TestChimpRum URL handler; see README. `installTestChimp` extends **`device`** so **`SET`** runs after Mobilewright **`launchApp`**. Optional **`TESTCHIMP_RUM_TRANSPORT_RESYNC=0`** disables automatic `v1/set` after likely transport failures on mobile `screen` calls. **`TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS=1`** opts in to legacy `/v1/clear` before each test `SET` in the **`device`** fixture (default off). **`TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR=1`** opts in to `afterAll` `clear`+`flush` after each spec file (default off).
|
|
32
32
|
* ExploreChimp: set `EXPLORECHIMP_ENABLED=true`, use `test('…', async ({ markScreenState }) => …)`; `TESTCHIMP_BATCH_INVOCATION_ID`, sources/regex envs as documented in the runtime module. Set **`TESTCHIMP_BRANCH_NAME`** (or `TESTCHIMP_BRANCH`) locally so analyze requests send `branchName` and the server can persist `branch_id`.
|
|
33
33
|
* Suite batch id: the reporter writes `.testchimp-batch-invocation-id` under the Playwright project root at run start (when unset, generates a UUID) and removes it at run end so ExploreChimp fixtures and CI stay aligned.
|
|
34
34
|
*/
|
|
@@ -37,7 +37,7 @@ export { TestChimpApiClient } from './api-client';
|
|
|
37
37
|
export * from './types';
|
|
38
38
|
export * from './utils';
|
|
39
39
|
export { buildCiTestInfoJson, buildCiTestInfoObject, type CiTestInfo, type TestInfoForCi } from './ci-test-info';
|
|
40
|
-
export { attachMobileRumAutomationHooks, buildAutomationSetOpenUrl, getMobileRumAutomationUrls, isLikelyMobileTransportFailure, resyncTrueCoverageSetForCurrentTest, transportResyncDisabled, type MobileDeviceWorkerFixtures, type MobileRumAutomationUrls, } from './rum-automation-mobile';
|
|
40
|
+
export { attachMobileRumAutomationHooks, buildAutomationSetOpenUrl, clearBetweenTestsEnabled, suiteTeardownClearEnabled, extendMobileTestWithTrueCoverageDevice, getMobileRumAutomationUrls, isLikelyMobileTransportFailure, resyncTrueCoverageSetForCurrentTest, transportResyncDisabled, type MobileDeviceWorkerFixtures, type MobileRumAutomationUrls, } from './rum-automation-mobile';
|
|
41
41
|
export { attachMobileScreenTransportResync, wrapScreenForTransportResync, } from './mobile-screen-transport-resync';
|
|
42
42
|
/** ExploreChimp / agents.proto JSON mirrors (camelCase). */
|
|
43
43
|
export type * from './explorechimp/agents-explorechimp-json';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,0BAA0B,EAC1B,8BAA8B,EAC9B,mCAAmC,EACnC,uBAAuB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iCAAiC,EACjC,4BAA4B,GAC7B,MAAM,kCAAkC,CAAC;AAC1C,4DAA4D;AAC5D,mBAAmB,yCAAyC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAGzE,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,uBAAuB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iCAAiC,EACjC,4BAA4B,GAC7B,MAAM,kCAAkC,CAAC;AAC1C,4DAA4D;AAC5D,mBAAmB,yCAAyC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,eAAe,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* Runtime (`@testchimp/playwright/runtime`): use `installTrueCoverage` or `installTestChimp` (same behavior).
|
|
30
30
|
* Fixture/runtime switching: default web mode uses `page`; set `TESTCHIMP_PROJECT_TYPE=ios|android`
|
|
31
31
|
* (case-insensitive) to switch runtime fixture wiring to `screen`.
|
|
32
|
-
* Mobile TrueCoverage: `TESTCHIMP_PROJECT_TYPE=ios|android` + TestChimpRum URL handler; see README. Optional **`TESTCHIMP_RUM_TRANSPORT_RESYNC=0`** disables automatic `v1/set` after likely transport failures on mobile `screen` calls.
|
|
32
|
+
* Mobile TrueCoverage: `TESTCHIMP_PROJECT_TYPE=ios|android` + TestChimpRum URL handler; see README. `installTestChimp` extends **`device`** so **`SET`** runs after Mobilewright **`launchApp`**. Optional **`TESTCHIMP_RUM_TRANSPORT_RESYNC=0`** disables automatic `v1/set` after likely transport failures on mobile `screen` calls. **`TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS=1`** opts in to legacy `/v1/clear` before each test `SET` in the **`device`** fixture (default off). **`TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR=1`** opts in to `afterAll` `clear`+`flush` after each spec file (default off).
|
|
33
33
|
* ExploreChimp: set `EXPLORECHIMP_ENABLED=true`, use `test('…', async ({ markScreenState }) => …)`; `TESTCHIMP_BATCH_INVOCATION_ID`, sources/regex envs as documented in the runtime module. Set **`TESTCHIMP_BRANCH_NAME`** (or `TESTCHIMP_BRANCH`) locally so analyze requests send `branchName` and the server can persist `branch_id`.
|
|
34
34
|
* Suite batch id: the reporter writes `.testchimp-batch-invocation-id` under the Playwright project root at run start (when unset, generates a UUID) and removes it at run end so ExploreChimp fixtures and CI stay aligned.
|
|
35
35
|
*/
|
|
@@ -48,7 +48,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
48
48
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
49
49
|
};
|
|
50
50
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
-
exports.DataSourceEnum = exports.wrapScreenForTransportResync = exports.attachMobileScreenTransportResync = exports.transportResyncDisabled = exports.resyncTrueCoverageSetForCurrentTest = exports.isLikelyMobileTransportFailure = exports.getMobileRumAutomationUrls = exports.buildAutomationSetOpenUrl = exports.attachMobileRumAutomationHooks = exports.buildCiTestInfoObject = exports.buildCiTestInfoJson = exports.TestChimpApiClient = exports.TestChimpReporter = void 0;
|
|
51
|
+
exports.DataSourceEnum = exports.wrapScreenForTransportResync = exports.attachMobileScreenTransportResync = exports.transportResyncDisabled = 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
52
|
var testchimp_reporter_1 = require("./testchimp-reporter");
|
|
53
53
|
Object.defineProperty(exports, "TestChimpReporter", { enumerable: true, get: function () { return testchimp_reporter_1.TestChimpReporter; } });
|
|
54
54
|
var api_client_1 = require("./api-client");
|
|
@@ -61,6 +61,9 @@ Object.defineProperty(exports, "buildCiTestInfoObject", { enumerable: true, get:
|
|
|
61
61
|
var rum_automation_mobile_1 = require("./rum-automation-mobile");
|
|
62
62
|
Object.defineProperty(exports, "attachMobileRumAutomationHooks", { enumerable: true, get: function () { return rum_automation_mobile_1.attachMobileRumAutomationHooks; } });
|
|
63
63
|
Object.defineProperty(exports, "buildAutomationSetOpenUrl", { enumerable: true, get: function () { return rum_automation_mobile_1.buildAutomationSetOpenUrl; } });
|
|
64
|
+
Object.defineProperty(exports, "clearBetweenTestsEnabled", { enumerable: true, get: function () { return rum_automation_mobile_1.clearBetweenTestsEnabled; } });
|
|
65
|
+
Object.defineProperty(exports, "suiteTeardownClearEnabled", { enumerable: true, get: function () { return rum_automation_mobile_1.suiteTeardownClearEnabled; } });
|
|
66
|
+
Object.defineProperty(exports, "extendMobileTestWithTrueCoverageDevice", { enumerable: true, get: function () { return rum_automation_mobile_1.extendMobileTestWithTrueCoverageDevice; } });
|
|
64
67
|
Object.defineProperty(exports, "getMobileRumAutomationUrls", { enumerable: true, get: function () { return rum_automation_mobile_1.getMobileRumAutomationUrls; } });
|
|
65
68
|
Object.defineProperty(exports, "isLikelyMobileTransportFailure", { enumerable: true, get: function () { return rum_automation_mobile_1.isLikelyMobileTransportFailure; } });
|
|
66
69
|
Object.defineProperty(exports, "resyncTrueCoverageSetForCurrentTest", { enumerable: true, get: function () { return rum_automation_mobile_1.resyncTrueCoverageSetForCurrentTest; } });
|
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,
|
|
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,iEAYiC;AAX/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,gIAAA,uBAAuB,OAAA;AAIzB,mFAG0C;AAFxC,mJAAA,iCAAiC,OAAA;AACjC,8IAAA,4BAA4B,OAAA;AAI9B,oFAAyE;AAAhE,0HAAA,cAAc,OAAA;AAEvB,uDAAuD;AACvD,6DAAyD;AACzD,kBAAe,sCAAiB,CAAC"}
|
|
@@ -14,6 +14,19 @@ export type MobileDeviceWorkerFixtures = {
|
|
|
14
14
|
};
|
|
15
15
|
/** Disable automatic TrueCoverage SET after mobilecli/WebSocket transport errors (`TESTCHIMP_RUM_TRANSPORT_RESYNC=0`). */
|
|
16
16
|
export declare function transportResyncDisabled(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* When true, each test's `beforeEach` sends `/v1/clear` before `SET` (legacy).
|
|
19
|
+
* Default false: skip clear between tests so the app keeps CI until overwritten by `SET`,
|
|
20
|
+
* avoiding a clear→set gap where RUM emits snapshot nil. Opt in with `TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS=1`.
|
|
21
|
+
*/
|
|
22
|
+
export declare function clearBetweenTestsEnabled(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* When true, register `afterAll` to send `/v1/clear` then `/v1/flush` after the spec file finishes.
|
|
25
|
+
* Default false: no automatic clear at file end (avoids clearing CI before the next spec file's `SET`,
|
|
26
|
+
* and matches "no clear during suite" unless explicitly opted in).
|
|
27
|
+
* Opt in with `TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR=1`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function suiteTeardownClearEnabled(): boolean;
|
|
17
30
|
/**
|
|
18
31
|
* Heuristic: mobilecli / WebSocket abnormal close or connection drop (e.g. code 1006).
|
|
19
32
|
* Used to re-send TrueCoverage `SET` so the next RUM emit can carry `ci_test_info` again.
|
|
@@ -22,25 +35,33 @@ export declare function isLikelyMobileTransportFailure(err: unknown): boolean;
|
|
|
22
35
|
/**
|
|
23
36
|
* URL prefix and clear URL for Mobilewright TrueCoverage (`device.openUrl`).
|
|
24
37
|
* Optional overrides: `TESTCHIMP_RUM_AUTOMATION_SET_PREFIX`, `TESTCHIMP_RUM_AUTOMATION_CLEAR_URL`,
|
|
25
|
-
* `TESTCHIMP_RUM_AUTOMATION_FLUSH_URL`, `TESTCHIMP_RUM_AUTOMATION_OPEN_URL_TIMEOUT_MS` (per `openUrl`/`launchApp` call, default 25000, clamp 100–120000)
|
|
38
|
+
* `TESTCHIMP_RUM_AUTOMATION_FLUSH_URL`, `TESTCHIMP_RUM_AUTOMATION_OPEN_URL_TIMEOUT_MS` (per `openUrl`/`launchApp` call, default 25000, clamp 100–120000),
|
|
39
|
+
* `TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS` (default off: no `/v1/clear` before each test; see {@link clearBetweenTestsEnabled}),
|
|
40
|
+
* `TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR` (default off: no `afterAll` clear+flush; see {@link suiteTeardownClearEnabled}).
|
|
26
41
|
*/
|
|
27
42
|
export declare function getMobileRumAutomationUrls(): MobileRumAutomationUrls;
|
|
28
43
|
export declare function buildAutomationSetOpenUrl(setUrlPrefix: string, ciJson: string): string | {
|
|
29
44
|
error: string;
|
|
30
45
|
};
|
|
46
|
+
/**
|
|
47
|
+
* Wrap Mobilewright `test` so TrueCoverage SET runs in the `device` fixture immediately after
|
|
48
|
+
* Mobilewright's own `launchApp`, before fixtures that depend on `device` (e.g. `screen`).
|
|
49
|
+
* Used from {@link installTrueCoverage} when `TESTCHIMP_PROJECT_TYPE` is ios/android — not required for direct import by consumers.
|
|
50
|
+
*/
|
|
51
|
+
export declare function extendMobileTestWithTrueCoverageDevice(test: any): any;
|
|
31
52
|
/**
|
|
32
53
|
* Re-send a single TrueCoverage `v1/set` for the current test (e.g. after a mobilecli/WebSocket transport drop)
|
|
33
54
|
* so the next RUM emit can attach `ci_test_info` again.
|
|
34
55
|
*/
|
|
35
56
|
export declare function resyncTrueCoverageSetForCurrentTest(device: MobileDeviceWorkerFixtures['device'], testInfo: TestInfoForCi): Promise<boolean>;
|
|
36
57
|
/**
|
|
37
|
-
* Register `
|
|
38
|
-
*
|
|
58
|
+
* Register `afterEach` (and optionally `afterAll`) on the given Playwright `TestType` for mobile TrueCoverage.
|
|
59
|
+
* **SET + settle + optional `/v1/clear`** run in the extended `device` fixture from {@link extendMobileTestWithTrueCoverageDevice}
|
|
60
|
+
* (wired by `installTrueCoverage` when `TESTCHIMP_PROJECT_TYPE` is ios/android).
|
|
39
61
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* uploads before the next test's `clear` (short runs vs the SDK timer flush).
|
|
62
|
+
* By default, **`/v1/clear` is not sent** between tests unless `TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS=1`
|
|
63
|
+
* (handled in the device fixture). **`afterEach`:** trailing `SET` then `/v1/flush`. **`afterAll`:** only when
|
|
64
|
+
* `TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR=1`: `clear` + `flush` after the file's tests.
|
|
44
65
|
*/
|
|
45
66
|
export declare function attachMobileRumAutomationHooks(testType: any): any;
|
|
46
67
|
//# sourceMappingURL=rum-automation-mobile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rum-automation-mobile.d.ts","sourceRoot":"","sources":["../src/rum-automation-mobile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"rum-automation-mobile.d.ts","sourceRoot":"","sources":["../src/rum-automation-mobile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA4CzE,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oHAAoH;AACpH,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACjD,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAIF,0HAA0H;AAC1H,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAGlD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAGnD;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAepE;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,IAAI,uBAAuB,CAMpE;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAS1G;AA8DD;;;;GAIG;AAEH,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAwBrE;AAED;;;GAGG;AACH,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC,EAC5C,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED;;;;;;;;GAQG;AAEH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,CAsBjE"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.transportResyncDisabled = transportResyncDisabled;
|
|
4
|
+
exports.clearBetweenTestsEnabled = clearBetweenTestsEnabled;
|
|
5
|
+
exports.suiteTeardownClearEnabled = suiteTeardownClearEnabled;
|
|
4
6
|
exports.isLikelyMobileTransportFailure = isLikelyMobileTransportFailure;
|
|
5
7
|
exports.getMobileRumAutomationUrls = getMobileRumAutomationUrls;
|
|
6
8
|
exports.buildAutomationSetOpenUrl = buildAutomationSetOpenUrl;
|
|
9
|
+
exports.extendMobileTestWithTrueCoverageDevice = extendMobileTestWithTrueCoverageDevice;
|
|
7
10
|
exports.resyncTrueCoverageSetForCurrentTest = resyncTrueCoverageSetForCurrentTest;
|
|
8
11
|
exports.attachMobileRumAutomationHooks = attachMobileRumAutomationHooks;
|
|
9
12
|
const ci_test_info_1 = require("./ci-test-info");
|
|
@@ -14,9 +17,6 @@ const DEFAULT_FLUSH_URL = 'testchimp-rum://truecoverage/v1/flush';
|
|
|
14
17
|
const MAX_OPEN_URL_CHARS = 8000;
|
|
15
18
|
const SET_OPEN_URL_MAX_ATTEMPTS = 3;
|
|
16
19
|
const SET_OPEN_URL_RETRY_DELAY_MS = 400;
|
|
17
|
-
/** Extra `set` bursts after `launchApp` so CI is applied before UI steps (reduces null ci_test_info from early emits). */
|
|
18
|
-
const SET_AFTER_LAUNCH_REPEAT_COUNT = 4;
|
|
19
|
-
const SET_AFTER_LAUNCH_REPEAT_DELAY_MS = 120;
|
|
20
20
|
/** Optional pause (ms) after the last `set` so the app can process the VIEW intent before the next Playwright step. */
|
|
21
21
|
function resolvePostSetSettleMs() {
|
|
22
22
|
const raw = process.env.TESTCHIMP_RUM_AUTOMATION_POST_SET_SETTLE_MS;
|
|
@@ -56,6 +56,25 @@ async function withTimeout(promise, ms, operation) {
|
|
|
56
56
|
function transportResyncDisabled() {
|
|
57
57
|
return process.env.TESTCHIMP_RUM_TRANSPORT_RESYNC?.trim() === '0';
|
|
58
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* When true, each test's `beforeEach` sends `/v1/clear` before `SET` (legacy).
|
|
61
|
+
* Default false: skip clear between tests so the app keeps CI until overwritten by `SET`,
|
|
62
|
+
* avoiding a clear→set gap where RUM emits snapshot nil. Opt in with `TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS=1`.
|
|
63
|
+
*/
|
|
64
|
+
function clearBetweenTestsEnabled() {
|
|
65
|
+
const raw = process.env.TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS?.trim().toLowerCase();
|
|
66
|
+
return raw === '1' || raw === 'true' || raw === 'yes';
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* When true, register `afterAll` to send `/v1/clear` then `/v1/flush` after the spec file finishes.
|
|
70
|
+
* Default false: no automatic clear at file end (avoids clearing CI before the next spec file's `SET`,
|
|
71
|
+
* and matches "no clear during suite" unless explicitly opted in).
|
|
72
|
+
* Opt in with `TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR=1`.
|
|
73
|
+
*/
|
|
74
|
+
function suiteTeardownClearEnabled() {
|
|
75
|
+
const raw = process.env.TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR?.trim().toLowerCase();
|
|
76
|
+
return raw === '1' || raw === 'true' || raw === 'yes';
|
|
77
|
+
}
|
|
59
78
|
/**
|
|
60
79
|
* Heuristic: mobilecli / WebSocket abnormal close or connection drop (e.g. code 1006).
|
|
61
80
|
* Used to re-send TrueCoverage `SET` so the next RUM emit can carry `ci_test_info` again.
|
|
@@ -81,7 +100,9 @@ function isLikelyMobileTransportFailure(err) {
|
|
|
81
100
|
/**
|
|
82
101
|
* URL prefix and clear URL for Mobilewright TrueCoverage (`device.openUrl`).
|
|
83
102
|
* Optional overrides: `TESTCHIMP_RUM_AUTOMATION_SET_PREFIX`, `TESTCHIMP_RUM_AUTOMATION_CLEAR_URL`,
|
|
84
|
-
* `TESTCHIMP_RUM_AUTOMATION_FLUSH_URL`, `TESTCHIMP_RUM_AUTOMATION_OPEN_URL_TIMEOUT_MS` (per `openUrl`/`launchApp` call, default 25000, clamp 100–120000)
|
|
103
|
+
* `TESTCHIMP_RUM_AUTOMATION_FLUSH_URL`, `TESTCHIMP_RUM_AUTOMATION_OPEN_URL_TIMEOUT_MS` (per `openUrl`/`launchApp` call, default 25000, clamp 100–120000),
|
|
104
|
+
* `TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS` (default off: no `/v1/clear` before each test; see {@link clearBetweenTestsEnabled}),
|
|
105
|
+
* `TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR` (default off: no `afterAll` clear+flush; see {@link suiteTeardownClearEnabled}).
|
|
85
106
|
*/
|
|
86
107
|
function getMobileRumAutomationUrls() {
|
|
87
108
|
return {
|
|
@@ -125,13 +146,10 @@ async function openUrlAutomationWithRetries(device, url) {
|
|
|
125
146
|
// eslint-disable-next-line no-console
|
|
126
147
|
console.warn(`[TestChimp] TrueCoverage device.openUrl failed after ${SET_OPEN_URL_MAX_ATTEMPTS} attempts (non-fatal): ${msg}`);
|
|
127
148
|
}
|
|
128
|
-
async function
|
|
149
|
+
async function pushSetUrlRepeats(device, url, repeats) {
|
|
129
150
|
const total = Math.max(1, repeats);
|
|
130
151
|
for (let i = 0; i < total; i++) {
|
|
131
152
|
await openUrlAutomationWithRetries(device, url);
|
|
132
|
-
if (i < total - 1) {
|
|
133
|
-
await sleep(SET_AFTER_LAUNCH_REPEAT_DELAY_MS);
|
|
134
|
-
}
|
|
135
153
|
}
|
|
136
154
|
}
|
|
137
155
|
let warnedMobileAutomationOnce = false;
|
|
@@ -148,9 +166,39 @@ async function pushTrueCoverageSetForCurrentTest(device, testInfo, setUrlPrefix,
|
|
|
148
166
|
}
|
|
149
167
|
return false;
|
|
150
168
|
}
|
|
151
|
-
await
|
|
169
|
+
await pushSetUrlRepeats(device, built, Math.max(1, repeatBurst));
|
|
152
170
|
return true;
|
|
153
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Wrap Mobilewright `test` so TrueCoverage SET runs in the `device` fixture immediately after
|
|
174
|
+
* Mobilewright's own `launchApp`, before fixtures that depend on `device` (e.g. `screen`).
|
|
175
|
+
* Used from {@link installTrueCoverage} when `TESTCHIMP_PROJECT_TYPE` is ios/android — not required for direct import by consumers.
|
|
176
|
+
*/
|
|
177
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
178
|
+
function extendMobileTestWithTrueCoverageDevice(test) {
|
|
179
|
+
const { setUrlPrefix, clearUrl } = getMobileRumAutomationUrls();
|
|
180
|
+
return test.extend({
|
|
181
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
182
|
+
device: async ({ device }, use, testInfo) => {
|
|
183
|
+
const d = device;
|
|
184
|
+
if (!d || typeof d.openUrl !== 'function') {
|
|
185
|
+
await use(device);
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
if (clearBetweenTestsEnabled()) {
|
|
189
|
+
await openUrlAutomationWithRetries(d, clearUrl);
|
|
190
|
+
}
|
|
191
|
+
const ok = await pushTrueCoverageSetForCurrentTest(d, testInfo, setUrlPrefix, 1);
|
|
192
|
+
if (ok) {
|
|
193
|
+
const settle = resolvePostSetSettleMs();
|
|
194
|
+
if (settle > 0) {
|
|
195
|
+
await sleep(settle);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
await use(device);
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
}
|
|
154
202
|
/**
|
|
155
203
|
* Re-send a single TrueCoverage `v1/set` for the current test (e.g. after a mobilecli/WebSocket transport drop)
|
|
156
204
|
* so the next RUM emit can attach `ci_test_info` again.
|
|
@@ -164,45 +212,17 @@ async function resyncTrueCoverageSetForCurrentTest(device, testInfo) {
|
|
|
164
212
|
return pushTrueCoverageSetForCurrentTest(d, testInfo, setUrlPrefix, 1);
|
|
165
213
|
}
|
|
166
214
|
/**
|
|
167
|
-
* Register `
|
|
168
|
-
*
|
|
215
|
+
* Register `afterEach` (and optionally `afterAll`) on the given Playwright `TestType` for mobile TrueCoverage.
|
|
216
|
+
* **SET + settle + optional `/v1/clear`** run in the extended `device` fixture from {@link extendMobileTestWithTrueCoverageDevice}
|
|
217
|
+
* (wired by `installTrueCoverage` when `TESTCHIMP_PROJECT_TYPE` is ios/android).
|
|
169
218
|
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
* uploads before the next test's `clear` (short runs vs the SDK timer flush).
|
|
219
|
+
* By default, **`/v1/clear` is not sent** between tests unless `TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS=1`
|
|
220
|
+
* (handled in the device fixture). **`afterEach`:** trailing `SET` then `/v1/flush`. **`afterAll`:** only when
|
|
221
|
+
* `TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR=1`: `clear` + `flush` after the file's tests.
|
|
174
222
|
*/
|
|
175
223
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
176
224
|
function attachMobileRumAutomationHooks(testType) {
|
|
177
|
-
const {
|
|
178
|
-
testType.beforeEach(async ({ device, bundleId }, testInfo) => {
|
|
179
|
-
if (!device || typeof device.openUrl !== 'function') {
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
await openUrlAutomationWithRetries(device, clearUrl);
|
|
183
|
-
let launchedApp = false;
|
|
184
|
-
const bid = typeof bundleId === 'string' && bundleId.trim() !== '' ? bundleId.trim() : undefined;
|
|
185
|
-
if (bid != null && typeof device.launchApp === 'function') {
|
|
186
|
-
try {
|
|
187
|
-
const ms = resolveOpenUrlTimeoutMs();
|
|
188
|
-
await withTimeout(device.launchApp(bid), ms, 'TrueCoverage device.launchApp');
|
|
189
|
-
launchedApp = true;
|
|
190
|
-
}
|
|
191
|
-
catch (err) {
|
|
192
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
193
|
-
// eslint-disable-next-line no-console
|
|
194
|
-
console.warn(`[TestChimp] TrueCoverage device.launchApp failed (non-fatal): ${msg}`);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
const repeatBurst = launchedApp ? SET_AFTER_LAUNCH_REPEAT_COUNT : 1;
|
|
198
|
-
const ok = await pushTrueCoverageSetForCurrentTest(device, testInfo, setUrlPrefix, repeatBurst);
|
|
199
|
-
if (!ok)
|
|
200
|
-
return;
|
|
201
|
-
const settle = resolvePostSetSettleMs();
|
|
202
|
-
if (settle > 0) {
|
|
203
|
-
await sleep(settle);
|
|
204
|
-
}
|
|
205
|
-
});
|
|
225
|
+
const { flushUrl, clearUrl } = getMobileRumAutomationUrls();
|
|
206
226
|
testType.afterEach(async ({ device }, testInfo) => {
|
|
207
227
|
if (!device || typeof device.openUrl !== 'function') {
|
|
208
228
|
return;
|
|
@@ -210,6 +230,15 @@ function attachMobileRumAutomationHooks(testType) {
|
|
|
210
230
|
await resyncTrueCoverageSetForCurrentTest(device, testInfo);
|
|
211
231
|
await openUrlAutomationWithRetries(device, flushUrl);
|
|
212
232
|
});
|
|
233
|
+
if (typeof testType.afterAll === 'function' && suiteTeardownClearEnabled()) {
|
|
234
|
+
testType.afterAll(async ({ device }) => {
|
|
235
|
+
if (!device || typeof device.openUrl !== 'function') {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
await openUrlAutomationWithRetries(device, clearUrl);
|
|
239
|
+
await openUrlAutomationWithRetries(device, flushUrl);
|
|
240
|
+
});
|
|
241
|
+
}
|
|
213
242
|
return testType;
|
|
214
243
|
}
|
|
215
244
|
//# sourceMappingURL=rum-automation-mobile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rum-automation-mobile.js","sourceRoot":"","sources":["../src/rum-automation-mobile.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"rum-automation-mobile.js","sourceRoot":"","sources":["../src/rum-automation-mobile.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Side-effect `import '@testchimp/playwright/runtime'` registers on the active test runtime:
|
|
9
9
|
* default `@playwright/test`, or `@mobilewright/test` when `TESTCHIMP_PROJECT_TYPE=ios|android`.
|
|
10
10
|
*
|
|
11
|
-
* Mobile TrueCoverage: when `TESTCHIMP_PROJECT_TYPE` is `ios`/`android`,
|
|
11
|
+
* Mobile TrueCoverage: when `TESTCHIMP_PROJECT_TYPE` is `ios`/`android`, `installTrueCoverage` extends the Mobilewright **`device`** fixture so **`SET`** runs right after Mobilewright’s `launchApp`, before `screen` (see `extendMobileTestWithTrueCoverageDevice`). **`afterEach`** still sends a trailing `SET` + `v1/flush`. Integrate TestChimpRum URL handling in the app. By default, **`/v1/clear` is not sent** between tests (opt in with `TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS=1`, handled in the `device` fixture). Optional **`TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR=1`** registers `afterAll` `clear`+`flush`. When the fixture key is `screen`, `screen` is proxied for transport-failure `SET` resync (`TESTCHIMP_RUM_TRANSPORT_RESYNC=0` to disable).
|
|
12
12
|
*/
|
|
13
13
|
import { isExploreChimpEnabled } from './explorechimp';
|
|
14
14
|
/** Bound screen/state marker from the `markScreenState` Playwright fixture. */
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAGL,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAGL,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AAcxB,+EAA+E;AAC/E,MAAM,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AA4C/F;;;GAGG;AAEH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAyClD;AAED,8GAA8G;AAC9G,eAAO,MAAM,gBAAgB,4BAAsB,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
package/dist/runtime.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* Side-effect `import '@testchimp/playwright/runtime'` registers on the active test runtime:
|
|
10
10
|
* default `@playwright/test`, or `@mobilewright/test` when `TESTCHIMP_PROJECT_TYPE=ios|android`.
|
|
11
11
|
*
|
|
12
|
-
* Mobile TrueCoverage: when `TESTCHIMP_PROJECT_TYPE` is `ios`/`android`,
|
|
12
|
+
* Mobile TrueCoverage: when `TESTCHIMP_PROJECT_TYPE` is `ios`/`android`, `installTrueCoverage` extends the Mobilewright **`device`** fixture so **`SET`** runs right after Mobilewright’s `launchApp`, before `screen` (see `extendMobileTestWithTrueCoverageDevice`). **`afterEach`** still sends a trailing `SET` + `v1/flush`. Integrate TestChimpRum URL handling in the app. By default, **`/v1/clear` is not sent** between tests (opt in with `TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS=1`, handled in the `device` fixture). Optional **`TESTCHIMP_RUM_AUTOMATION_SUITE_TEARDOWN_CLEAR=1`** registers `afterAll` `clear`+`flush`. When the fixture key is `screen`, `screen` is proxied for transport-failure `SET` resync (`TESTCHIMP_RUM_TRANSPORT_RESYNC=0` to disable).
|
|
13
13
|
*/
|
|
14
14
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
15
|
if (k2 === undefined) k2 = k;
|
|
@@ -109,7 +109,7 @@ function addMarkScreenStateFixture(test) {
|
|
|
109
109
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
110
110
|
function installTrueCoverage(test) {
|
|
111
111
|
const withCi = mobileProject
|
|
112
|
-
? test
|
|
112
|
+
? (0, rum_automation_mobile_1.extendMobileTestWithTrueCoverageDevice)(test)
|
|
113
113
|
: test.extend({
|
|
114
114
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
115
115
|
page: async ({ page }, use, testInfo) => {
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED