@testchimp/playwright 0.1.43 → 0.2.0
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 +10 -13
- package/dist/execution-context.d.ts +28 -0
- package/dist/execution-context.d.ts.map +1 -0
- package/dist/execution-context.js +109 -0
- package/dist/execution-context.js.map +1 -0
- package/dist/explorechimp/index.d.ts +6 -2
- package/dist/explorechimp/index.d.ts.map +1 -1
- package/dist/explorechimp/index.js +20 -15
- package/dist/explorechimp/index.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/mobile-screen-transport-resync.d.ts.map +1 -1
- package/dist/mobile-screen-transport-resync.js +5 -0
- package/dist/mobile-screen-transport-resync.js.map +1 -1
- package/dist/project-type.d.ts +20 -3
- package/dist/project-type.d.ts.map +1 -1
- package/dist/project-type.js +40 -17
- package/dist/project-type.js.map +1 -1
- package/dist/rum-automation-mobile.d.ts +2 -2
- package/dist/rum-automation-mobile.d.ts.map +1 -1
- package/dist/rum-automation-mobile.js +10 -2
- package/dist/rum-automation-mobile.js.map +1 -1
- package/dist/runtime.d.ts +10 -10
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +69 -55
- package/dist/runtime.js.map +1 -1
- package/dist/testchimp-reporter.d.ts.map +1 -1
- package/dist/testchimp-reporter.js +6 -2
- package/dist/testchimp-reporter.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/package.json +10 -4
package/dist/project-type.js
CHANGED
|
@@ -1,26 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
/** Mobilewright exposes `test` / `expect` from `@mobilewright/test`, not the `mobilewright` CLI package. */
|
|
9
|
-
const DEFAULT_MOBILE_RUNTIME_MODULE = '@mobilewright/test';
|
|
10
|
-
function normalizedProjectType() {
|
|
11
|
-
return String(process.env.TESTCHIMP_PROJECT_TYPE ?? '')
|
|
3
|
+
exports.platformFromTestInfo = platformFromTestInfo;
|
|
4
|
+
exports.isMobilePlatform = isMobilePlatform;
|
|
5
|
+
exports.getFixtureKeyForPlatform = getFixtureKeyForPlatform;
|
|
6
|
+
function parsePlatformValue(raw) {
|
|
7
|
+
const p = String(raw ?? '')
|
|
12
8
|
.trim()
|
|
13
9
|
.toLowerCase();
|
|
10
|
+
if (p === 'ios' || p === 'android') {
|
|
11
|
+
return p;
|
|
12
|
+
}
|
|
13
|
+
return null;
|
|
14
14
|
}
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
/** Mobilewright 0.0.36+ pushes `device.platform` on testInfo after device allocation. */
|
|
16
|
+
function platformFromAnnotations(testInfo) {
|
|
17
|
+
for (const a of testInfo.annotations ?? []) {
|
|
18
|
+
if (a.type === 'device.platform') {
|
|
19
|
+
const parsed = parsePlatformValue(a.description ?? '');
|
|
20
|
+
if (parsed) {
|
|
21
|
+
return parsed;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
17
26
|
}
|
|
18
|
-
|
|
19
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Read run platform for TrueCoverage / ExploreChimp branching.
|
|
29
|
+
* Primary: Mobilewright `projects[].use.platform`. Fallback: `testInfo.annotations` (`device.platform`).
|
|
30
|
+
* Omitted / unknown => web.
|
|
31
|
+
*/
|
|
32
|
+
function platformFromTestInfo(testInfo) {
|
|
33
|
+
const fromUse = parsePlatformValue(String(testInfo.project?.use?.platform ?? ''));
|
|
34
|
+
if (fromUse) {
|
|
35
|
+
return fromUse;
|
|
36
|
+
}
|
|
37
|
+
const fromAnnotations = platformFromAnnotations(testInfo);
|
|
38
|
+
if (fromAnnotations) {
|
|
39
|
+
return fromAnnotations;
|
|
40
|
+
}
|
|
41
|
+
return 'web';
|
|
20
42
|
}
|
|
21
|
-
function
|
|
22
|
-
return
|
|
23
|
-
|
|
24
|
-
|
|
43
|
+
function isMobilePlatform(platform) {
|
|
44
|
+
return platform === 'ios' || platform === 'android';
|
|
45
|
+
}
|
|
46
|
+
function getFixtureKeyForPlatform(platform) {
|
|
47
|
+
return isMobilePlatform(platform) ? 'screen' : 'page';
|
|
25
48
|
}
|
|
26
49
|
//# sourceMappingURL=project-type.js.map
|
package/dist/project-type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-type.js","sourceRoot":"","sources":["../src/project-type.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"project-type.js","sourceRoot":"","sources":["../src/project-type.ts"],"names":[],"mappings":";;AAqCA,oDAYC;AAED,4CAEC;AAED,4DAEC;AAhDD,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;SACxB,IAAI,EAAE;SACN,WAAW,EAAE,CAAC;IACjB,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yFAAyF;AACzF,SAAS,uBAAuB,CAAC,QAAmC;IAClE,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;YACvD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,QAAmC;IACtE,MAAM,OAAO,GAAG,kBAAkB,CAChC,MAAM,CAAE,QAAQ,CAAC,OAAO,EAAE,GAAyC,EAAE,QAAQ,IAAI,EAAE,CAAC,CACrF,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,eAAe,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAqB;IACpD,OAAO,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,SAAS,CAAC;AACtD,CAAC;AAED,SAAgB,wBAAwB,CAAC,QAAqB;IAC5D,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;AACxD,CAAC"}
|
|
@@ -46,7 +46,7 @@ export declare function buildAutomationSetOpenUrl(setUrlPrefix: string, ciJson:
|
|
|
46
46
|
/**
|
|
47
47
|
* Wrap Mobilewright `test` so TrueCoverage SET runs in the `device` fixture immediately after
|
|
48
48
|
* Mobilewright's own `launchApp`, before fixtures that depend on `device` (e.g. `screen`).
|
|
49
|
-
* Used from {@link installTrueCoverage} when `
|
|
49
|
+
* Used from {@link installTrueCoverage} when `testInfo.project.use.platform` is ios/android.
|
|
50
50
|
*/
|
|
51
51
|
export declare function extendMobileTestWithTrueCoverageDevice(test: any): any;
|
|
52
52
|
/**
|
|
@@ -57,7 +57,7 @@ export declare function resyncTrueCoverageSetForCurrentTest(device: MobileDevice
|
|
|
57
57
|
/**
|
|
58
58
|
* Register `afterEach` (and optionally `afterAll`) on the given Playwright `TestType` for mobile TrueCoverage.
|
|
59
59
|
* **SET + settle + optional `/v1/clear`** run in the extended `device` fixture from {@link extendMobileTestWithTrueCoverageDevice}
|
|
60
|
-
* (wired by `installTrueCoverage` when `
|
|
60
|
+
* (wired by `installTrueCoverage` when `testInfo.project.use.platform` is ios/android).
|
|
61
61
|
*
|
|
62
62
|
* By default, **`/v1/clear` is not sent** between tests unless `TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS=1`
|
|
63
63
|
* (handled in the device fixture). **`afterEach`:** trailing `SET` then `/v1/flush`. **`afterAll`:** only when
|
|
@@ -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;AA6CzE,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,CA4BrE;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,CAyBjE"}
|
|
@@ -10,6 +10,7 @@ exports.extendMobileTestWithTrueCoverageDevice = extendMobileTestWithTrueCoverag
|
|
|
10
10
|
exports.resyncTrueCoverageSetForCurrentTest = resyncTrueCoverageSetForCurrentTest;
|
|
11
11
|
exports.attachMobileRumAutomationHooks = attachMobileRumAutomationHooks;
|
|
12
12
|
const ci_test_info_1 = require("./ci-test-info");
|
|
13
|
+
const project_type_1 = require("./project-type");
|
|
13
14
|
const DEFAULT_SET_PREFIX = 'testchimp-rum://truecoverage/v1/set?p=';
|
|
14
15
|
const DEFAULT_CLEAR_URL = 'testchimp-rum://truecoverage/v1/clear';
|
|
15
16
|
const DEFAULT_FLUSH_URL = 'testchimp-rum://truecoverage/v1/flush';
|
|
@@ -172,7 +173,7 @@ async function pushTrueCoverageSetForCurrentTest(device, testInfo, setUrlPrefix,
|
|
|
172
173
|
/**
|
|
173
174
|
* Wrap Mobilewright `test` so TrueCoverage SET runs in the `device` fixture immediately after
|
|
174
175
|
* Mobilewright's own `launchApp`, before fixtures that depend on `device` (e.g. `screen`).
|
|
175
|
-
* Used from {@link installTrueCoverage} when `
|
|
176
|
+
* Used from {@link installTrueCoverage} when `testInfo.project.use.platform` is ios/android.
|
|
176
177
|
*/
|
|
177
178
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
178
179
|
function extendMobileTestWithTrueCoverageDevice(test) {
|
|
@@ -180,6 +181,10 @@ function extendMobileTestWithTrueCoverageDevice(test) {
|
|
|
180
181
|
return test.extend({
|
|
181
182
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
182
183
|
device: async ({ device }, use, testInfo) => {
|
|
184
|
+
if (!(0, project_type_1.isMobilePlatform)((0, project_type_1.platformFromTestInfo)(testInfo))) {
|
|
185
|
+
await use(device);
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
183
188
|
const d = device;
|
|
184
189
|
if (!d || typeof d.openUrl !== 'function') {
|
|
185
190
|
await use(device);
|
|
@@ -214,7 +219,7 @@ async function resyncTrueCoverageSetForCurrentTest(device, testInfo) {
|
|
|
214
219
|
/**
|
|
215
220
|
* Register `afterEach` (and optionally `afterAll`) on the given Playwright `TestType` for mobile TrueCoverage.
|
|
216
221
|
* **SET + settle + optional `/v1/clear`** run in the extended `device` fixture from {@link extendMobileTestWithTrueCoverageDevice}
|
|
217
|
-
* (wired by `installTrueCoverage` when `
|
|
222
|
+
* (wired by `installTrueCoverage` when `testInfo.project.use.platform` is ios/android).
|
|
218
223
|
*
|
|
219
224
|
* By default, **`/v1/clear` is not sent** between tests unless `TESTCHIMP_RUM_AUTOMATION_CLEAR_BETWEEN_TESTS=1`
|
|
220
225
|
* (handled in the device fixture). **`afterEach`:** trailing `SET` then `/v1/flush`. **`afterAll`:** only when
|
|
@@ -224,6 +229,9 @@ async function resyncTrueCoverageSetForCurrentTest(device, testInfo) {
|
|
|
224
229
|
function attachMobileRumAutomationHooks(testType) {
|
|
225
230
|
const { flushUrl, clearUrl } = getMobileRumAutomationUrls();
|
|
226
231
|
testType.afterEach(async ({ device }, testInfo) => {
|
|
232
|
+
if (!(0, project_type_1.isMobilePlatform)((0, project_type_1.platformFromTestInfo)(testInfo))) {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
227
235
|
if (!device || typeof device.openUrl !== 'function') {
|
|
228
236
|
return;
|
|
229
237
|
}
|
|
@@ -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
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
* TestChimp Playwright runtime: TrueCoverage CI metadata (`installTrueCoverage` / `installTestChimp`) and,
|
|
3
3
|
* when `EXPLORECHIMP_ENABLED`, ExploreChimp local analytics (same installs — no separate ExploreChimp install).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* The same `markScreenState` fixture records a runner `test.step` when ExploreChimp is off, and runs ExploreChimp analytics when it is on.
|
|
8
|
-
* Side-effect `import '@testchimp/playwright/runtime'` registers on the active test runtime:
|
|
9
|
-
* default `@playwright/test`, or `@mobilewright/test` when `TESTCHIMP_PROJECT_TYPE=ios|android`.
|
|
10
|
-
*
|
|
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).
|
|
5
|
+
* Platform branching uses Mobilewright `projects[].use.platform` (ios/android). When omitted, web behaviour applies.
|
|
6
|
+
* Pass `{ uiFixture: 'screen' }` when wrapping `@mobilewright/test`; default `page` for `@playwright/test`.
|
|
12
7
|
*/
|
|
13
8
|
import { isExploreChimpEnabled } from './explorechimp';
|
|
9
|
+
import { type FixtureKey } from './project-type';
|
|
14
10
|
/** Bound screen/state marker from the `markScreenState` Playwright fixture. */
|
|
15
11
|
export type MarkScreenStateFixture = (screenName: string, stateName?: string) => Promise<void>;
|
|
12
|
+
export type InstallTestChimpOptions = {
|
|
13
|
+
/** `screen` for `@mobilewright/test` barrels; `page` for `@playwright/test` (default). */
|
|
14
|
+
uiFixture?: FixtureKey;
|
|
15
|
+
};
|
|
16
16
|
/**
|
|
17
17
|
* Register TrueCoverage CI metadata injection on the given Playwright `test` object
|
|
18
|
-
* (including `mergeTests(...)` output). When `EXPLORECHIMP_ENABLED`, also applies ExploreChimp
|
|
18
|
+
* (including `mergeTests(...)` output). When `EXPLORECHIMP_ENABLED`, also applies ExploreChimp wiring.
|
|
19
19
|
*/
|
|
20
|
-
export declare function installTrueCoverage(test: any): any;
|
|
21
|
-
/** Same
|
|
20
|
+
export declare function installTrueCoverage(test: any, options?: InstallTestChimpOptions): any;
|
|
21
|
+
/** Same behaviour as {@link installTrueCoverage} — umbrella name for TrueCoverage + ExploreChimp (via env). */
|
|
22
22
|
export declare const installTestChimp: typeof installTrueCoverage;
|
|
23
23
|
export { isExploreChimpEnabled };
|
|
24
24
|
//# sourceMappingURL=runtime.d.ts.map
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA
|
|
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;AASzF,+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;AAgGF;;;GAGG;AAEH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,GAAE,uBAA4B,GAAG,GAAG,CAyBzF;AAED,+GAA+G;AAC/G,eAAO,MAAM,gBAAgB,4BAAsB,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
package/dist/runtime.js
CHANGED
|
@@ -3,13 +3,8 @@
|
|
|
3
3
|
* TestChimp Playwright runtime: TrueCoverage CI metadata (`installTrueCoverage` / `installTestChimp`) and,
|
|
4
4
|
* when `EXPLORECHIMP_ENABLED`, ExploreChimp local analytics (same installs — no separate ExploreChimp install).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* The same `markScreenState` fixture records a runner `test.step` when ExploreChimp is off, and runs ExploreChimp analytics when it is on.
|
|
9
|
-
* Side-effect `import '@testchimp/playwright/runtime'` registers on the active test runtime:
|
|
10
|
-
* default `@playwright/test`, or `@mobilewright/test` when `TESTCHIMP_PROJECT_TYPE=ios|android`.
|
|
11
|
-
*
|
|
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).
|
|
6
|
+
* Platform branching uses Mobilewright `projects[].use.platform` (ios/android). When omitted, web behaviour applies.
|
|
7
|
+
* Pass `{ uiFixture: 'screen' }` when wrapping `@mobilewright/test`; default `page` for `@playwright/test`.
|
|
13
8
|
*/
|
|
14
9
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
10
|
if (k2 === undefined) k2 = k;
|
|
@@ -55,15 +50,36 @@ Object.defineProperty(exports, "isExploreChimpEnabled", { enumerable: true, get:
|
|
|
55
50
|
const project_type_1 = require("./project-type");
|
|
56
51
|
const mobile_screen_transport_resync_1 = require("./mobile-screen-transport-resync");
|
|
57
52
|
const rum_automation_mobile_1 = require("./rum-automation-mobile");
|
|
58
|
-
/** Resolve test runtime module from the consumer project (web: Playwright, mobile: Mobilewright). */
|
|
59
53
|
const pwRequire = (0, module_1.createRequire)(path.join(process.cwd(), 'package.json'));
|
|
60
|
-
const fixtureKey = (0, project_type_1.getFixtureKey)();
|
|
61
|
-
const mobileProject = (0, project_type_1.isMobileProjectType)();
|
|
62
|
-
const runtimeModuleName = (0, project_type_1.getTestRuntimeModuleName)();
|
|
63
54
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
64
|
-
function
|
|
65
|
-
|
|
66
|
-
|
|
55
|
+
function extendWebTrueCoveragePage(test) {
|
|
56
|
+
return test.extend({
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
+
page: async ({ page }, use, testInfo) => {
|
|
59
|
+
if ((0, project_type_1.isMobilePlatform)((0, project_type_1.platformFromTestInfo)(testInfo))) {
|
|
60
|
+
await use(page);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const project = testInfo.project;
|
|
64
|
+
const projectRootDir = project.rootDir ?? process.cwd();
|
|
65
|
+
const jsonString = (0, ci_test_info_1.buildCiTestInfoJson)(testInfo, projectRootDir);
|
|
66
|
+
await page.addInitScript((info) => {
|
|
67
|
+
globalThis.__TC_CI_TEST_INFO = info;
|
|
68
|
+
}, jsonString);
|
|
69
|
+
try {
|
|
70
|
+
await page.evaluate((info) => {
|
|
71
|
+
globalThis.__TC_CI_TEST_INFO = info;
|
|
72
|
+
}, jsonString);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// Ignore: page may be closed or not ready yet.
|
|
76
|
+
}
|
|
77
|
+
await use(page);
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
82
|
+
function addMarkScreenStateFixture(test, uiFixture) {
|
|
67
83
|
const buildMarkFn = (fixtureTarget) => {
|
|
68
84
|
return async (screenName, stateName) => {
|
|
69
85
|
if ((0, explorechimp_1.isExploreChimpEnabled)()) {
|
|
@@ -87,63 +103,64 @@ function addMarkScreenStateFixture(test) {
|
|
|
87
103
|
}
|
|
88
104
|
};
|
|
89
105
|
};
|
|
90
|
-
if (
|
|
106
|
+
if (uiFixture === 'screen') {
|
|
91
107
|
return test.extend({
|
|
92
108
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
93
|
-
markScreenState: async ({ screen }, use) => {
|
|
109
|
+
markScreenState: async ({ screen }, use, testInfo) => {
|
|
110
|
+
const platform = (0, project_type_1.platformFromTestInfo)(testInfo);
|
|
111
|
+
if (!(0, project_type_1.isMobilePlatform)(platform)) {
|
|
112
|
+
await use(buildMarkFn(undefined));
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (screen === undefined) {
|
|
116
|
+
throw new Error('[TestChimp] Missing "screen" fixture. Use @mobilewright/test in fixtures/index.js and set projects[].use.platform to ios or android on mobile UI projects.');
|
|
117
|
+
}
|
|
94
118
|
await use(buildMarkFn(screen));
|
|
95
119
|
},
|
|
96
120
|
});
|
|
97
121
|
}
|
|
98
122
|
return test.extend({
|
|
99
123
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
100
|
-
markScreenState: async ({ page }, use) => {
|
|
124
|
+
markScreenState: async ({ page }, use, testInfo) => {
|
|
125
|
+
const platform = (0, project_type_1.platformFromTestInfo)(testInfo);
|
|
126
|
+
if ((0, project_type_1.isMobilePlatform)(platform)) {
|
|
127
|
+
await use(buildMarkFn(undefined));
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (page === undefined) {
|
|
131
|
+
throw new Error('[TestChimp] Missing "page" fixture. Use @playwright/test in fixtures/index.js for web and API specs.');
|
|
132
|
+
}
|
|
101
133
|
await use(buildMarkFn(page));
|
|
102
134
|
},
|
|
103
135
|
});
|
|
104
136
|
}
|
|
105
137
|
/**
|
|
106
138
|
* Register TrueCoverage CI metadata injection on the given Playwright `test` object
|
|
107
|
-
* (including `mergeTests(...)` output). When `EXPLORECHIMP_ENABLED`, also applies ExploreChimp
|
|
139
|
+
* (including `mergeTests(...)` output). When `EXPLORECHIMP_ENABLED`, also applies ExploreChimp wiring.
|
|
108
140
|
*/
|
|
109
141
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
110
|
-
function installTrueCoverage(test) {
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
try {
|
|
123
|
-
await page.evaluate((info) => {
|
|
124
|
-
globalThis.__TC_CI_TEST_INFO = info;
|
|
125
|
-
}, jsonString);
|
|
126
|
-
}
|
|
127
|
-
catch {
|
|
128
|
-
// Ignore: page may be closed or not ready yet.
|
|
129
|
-
}
|
|
130
|
-
await use(page);
|
|
131
|
-
},
|
|
132
|
-
});
|
|
133
|
-
const withMark = addMarkScreenStateFixture(withCi);
|
|
134
|
-
let chain = withMark;
|
|
142
|
+
function installTrueCoverage(test, options = {}) {
|
|
143
|
+
const uiFixture = options.uiFixture ?? 'page';
|
|
144
|
+
// Web (@playwright/test): only extend `page` + optional ExploreChimp — never touch `device` / mobile hooks.
|
|
145
|
+
let chain = test;
|
|
146
|
+
if (uiFixture === 'screen') {
|
|
147
|
+
chain = (0, rum_automation_mobile_1.extendMobileTestWithTrueCoverageDevice)(chain);
|
|
148
|
+
}
|
|
149
|
+
if (uiFixture === 'page') {
|
|
150
|
+
chain = extendWebTrueCoveragePage(chain);
|
|
151
|
+
}
|
|
152
|
+
const withMark = addMarkScreenStateFixture(chain, uiFixture);
|
|
153
|
+
let result = withMark;
|
|
135
154
|
if ((0, explorechimp_1.isExploreChimpEnabled)()) {
|
|
136
|
-
|
|
155
|
+
result = (0, explorechimp_1.applyExploreChimpFixture)(withMark, uiFixture);
|
|
137
156
|
}
|
|
138
|
-
if (
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
chain = (0, mobile_screen_transport_resync_1.attachMobileScreenTransportResync)(chain);
|
|
142
|
-
}
|
|
157
|
+
if (uiFixture === 'screen') {
|
|
158
|
+
result = (0, rum_automation_mobile_1.attachMobileRumAutomationHooks)(result);
|
|
159
|
+
result = (0, mobile_screen_transport_resync_1.attachMobileScreenTransportResync)(result);
|
|
143
160
|
}
|
|
144
|
-
return
|
|
161
|
+
return result;
|
|
145
162
|
}
|
|
146
|
-
/** Same
|
|
163
|
+
/** Same behaviour as {@link installTrueCoverage} — umbrella name for TrueCoverage + ExploreChimp (via env). */
|
|
147
164
|
exports.installTestChimp = installTrueCoverage;
|
|
148
165
|
const DEFAULT_SCREEN_STATE = 'default';
|
|
149
166
|
/** Trace-only marker: Playwright `test.step` + console (ExploreChimp-off path for the fixture). */
|
|
@@ -157,13 +174,10 @@ async function runTraceOnlyMarkScreenState(screenName, stateName) {
|
|
|
157
174
|
: DEFAULT_SCREEN_STATE;
|
|
158
175
|
const title = `ScreenState: ${screen} | ${state}`;
|
|
159
176
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
160
|
-
const { test } = pwRequire(
|
|
177
|
+
const { test } = pwRequire('@playwright/test');
|
|
161
178
|
await test.step(title, async () => {
|
|
162
179
|
// eslint-disable-next-line no-console
|
|
163
180
|
console.log(`reached ${screen} | ${state}`);
|
|
164
181
|
});
|
|
165
182
|
}
|
|
166
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
167
|
-
const { test: rootTest } = pwRequire(runtimeModuleName);
|
|
168
|
-
installTrueCoverage(rootTest);
|
|
169
183
|
//# sourceMappingURL=runtime.js.map
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testchimp-reporter.d.ts","sourceRoot":"","sources":["../src/testchimp-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,KAAK,EACL,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,UAAU,EAEX,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EACL,wBAAwB,EAQzB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"testchimp-reporter.d.ts","sourceRoot":"","sources":["../src/testchimp-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
8
8
|
const sharp_1 = __importDefault(require("sharp"));
|
|
9
9
|
const api_client_1 = require("./api-client");
|
|
10
10
|
const types_1 = require("./types");
|
|
11
|
+
const execution_context_1 = require("./execution-context");
|
|
11
12
|
const utils_1 = require("./utils");
|
|
12
13
|
const index_1 = require("./explorechimp/index");
|
|
13
14
|
const analytics_step_screen_state_registry_1 = require("./explorechimp/analytics-step-screen-state-registry");
|
|
@@ -773,6 +774,7 @@ class TestChimpReporter {
|
|
|
773
774
|
const branchIdValid = branchId !== undefined && !Number.isNaN(branchId) ? branchId : undefined;
|
|
774
775
|
// Map Playwright status to SmartTestExecutionStatus
|
|
775
776
|
const status = this.mapStatus(result.status);
|
|
777
|
+
const executionContext = (0, execution_context_1.buildExecutionDeviceContext)(test);
|
|
776
778
|
const report = {
|
|
777
779
|
folderPath: paths.folderPath,
|
|
778
780
|
fileName: paths.fileName,
|
|
@@ -787,12 +789,14 @@ class TestChimpReporter {
|
|
|
787
789
|
status,
|
|
788
790
|
error: result.error?.message,
|
|
789
791
|
pwError: this.toPlaywrightError(result.error),
|
|
790
|
-
scenarioCoverageResults: [] // Backend will populate if empty
|
|
792
|
+
scenarioCoverageResults: [], // Backend will populate if empty
|
|
793
|
+
executionContext,
|
|
791
794
|
},
|
|
792
795
|
startedAtMillis: execution.startedAt,
|
|
793
796
|
completedAtMillis: Date.now(),
|
|
794
797
|
branchName,
|
|
795
|
-
branchId: branchIdValid
|
|
798
|
+
branchId: branchIdValid,
|
|
799
|
+
executionContext,
|
|
796
800
|
};
|
|
797
801
|
const exploreChimpJobId = this.exploreChimpJourneyExecutionJobId(test, result, paths);
|
|
798
802
|
if (exploreChimpJobId) {
|