@testchimp/playwright 0.1.42 → 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.
Files changed (38) hide show
  1. package/README.md +10 -13
  2. package/dist/api-client.d.ts +2 -0
  3. package/dist/api-client.d.ts.map +1 -1
  4. package/dist/api-client.js +5 -0
  5. package/dist/api-client.js.map +1 -1
  6. package/dist/execution-context.d.ts +28 -0
  7. package/dist/execution-context.d.ts.map +1 -0
  8. package/dist/execution-context.js +109 -0
  9. package/dist/execution-context.js.map +1 -0
  10. package/dist/explorechimp/index.d.ts +6 -2
  11. package/dist/explorechimp/index.d.ts.map +1 -1
  12. package/dist/explorechimp/index.js +20 -15
  13. package/dist/explorechimp/index.js.map +1 -1
  14. package/dist/index.d.ts +3 -3
  15. package/dist/index.js +3 -3
  16. package/dist/mobile-screen-transport-resync.d.ts.map +1 -1
  17. package/dist/mobile-screen-transport-resync.js +5 -0
  18. package/dist/mobile-screen-transport-resync.js.map +1 -1
  19. package/dist/project-type.d.ts +20 -3
  20. package/dist/project-type.d.ts.map +1 -1
  21. package/dist/project-type.js +40 -17
  22. package/dist/project-type.js.map +1 -1
  23. package/dist/rum-automation-mobile.d.ts +2 -2
  24. package/dist/rum-automation-mobile.d.ts.map +1 -1
  25. package/dist/rum-automation-mobile.js +10 -2
  26. package/dist/rum-automation-mobile.js.map +1 -1
  27. package/dist/runtime.d.ts +10 -10
  28. package/dist/runtime.d.ts.map +1 -1
  29. package/dist/runtime.js +69 -55
  30. package/dist/runtime.js.map +1 -1
  31. package/dist/testchimp-reporter.d.ts.map +1 -1
  32. package/dist/testchimp-reporter.js +25 -4
  33. package/dist/testchimp-reporter.js.map +1 -1
  34. package/dist/types.d.ts +9 -0
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/utils.d.ts +1 -0
  37. package/dist/utils.d.ts.map +1 -1
  38. package/package.json +10 -4
@@ -1 +1 @@
1
- {"version":3,"file":"mobile-screen-transport-resync.js","sourceRoot":"","sources":["../src/mobile-screen-transport-resync.ts"],"names":[],"mappings":";;AAiDA,oEAmBC;AAMD,8EAWC;AApFD,mEAKiC;AAOjC,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,CAAC,IAAI,IAAI,IAAI,OAAQ,CAAwB,CAAC,IAAI,KAAK,UAAU,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAI,EAAoB,EAAE,GAAuB;IACpF,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAA,sDAA8B,EAAC,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAyE,CAAC;QAC1F,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAC9C,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAA,2DAAmC,EACvC,GAAwD,EACxD,GAAG,CAAC,QAAQ,CACb,CAAC;YACF,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,2HAA2H,CAC5H,CAAC;QACJ,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7E,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,4BAA4B,CAAC,MAAe,EAAE,GAAuB;IACnF,IAAI,IAAA,+CAAuB,GAAE,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC9E,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,MAAgB,EAAE;QACjC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ;YACzB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAgB,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACxD,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;gBAC5B,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;gBAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAiC,EAAE,MAAgB,EAAE,IAAI,CAAC,CAAC;gBACrF,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpB,OAAO,sBAAsB,CAAC,GAAG,EAAE,CAAC,GAAuB,EAAE,GAAG,CAAC,CAAC;gBACpE,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,8DAA8D;AAC9D,SAAgB,iCAAiC,CAAC,QAAa;IAC7D,IAAI,IAAA,+CAAuB,GAAE,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC;QACrB,8DAA8D;QAC9D,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAyC,EAAE,GAAQ,EAAE,QAAuB,EAAE,EAAE;YAC7G,MAAM,GAAG,GAAuB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YACrD,MAAM,GAAG,CAAC,4BAA4B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACvD,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"mobile-screen-transport-resync.js","sourceRoot":"","sources":["../src/mobile-screen-transport-resync.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,22 @@
1
+ export type RunPlatform = 'web' | 'ios' | 'android';
1
2
  export type FixtureKey = 'page' | 'screen';
2
- export declare function isMobileProjectType(): boolean;
3
- export declare function getFixtureKey(): FixtureKey;
4
- export declare function getTestRuntimeModuleName(): string;
3
+ /** Minimal shape for platform/device resolution (TestInfo in tests, TestCase + suite project in reporter). */
4
+ export type TestInfoWithPlatformHints = {
5
+ project?: {
6
+ use?: unknown;
7
+ name?: string;
8
+ };
9
+ annotations?: Array<{
10
+ type?: string;
11
+ description?: string;
12
+ }>;
13
+ };
14
+ /**
15
+ * Read run platform for TrueCoverage / ExploreChimp branching.
16
+ * Primary: Mobilewright `projects[].use.platform`. Fallback: `testInfo.annotations` (`device.platform`).
17
+ * Omitted / unknown => web.
18
+ */
19
+ export declare function platformFromTestInfo(testInfo: TestInfoWithPlatformHints): RunPlatform;
20
+ export declare function isMobilePlatform(platform: RunPlatform): boolean;
21
+ export declare function getFixtureKeyForPlatform(platform: RunPlatform): FixtureKey;
5
22
  //# sourceMappingURL=project-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-type.d.ts","sourceRoot":"","sources":["../src/project-type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAa3C,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,wBAAgB,aAAa,IAAI,UAAU,CAE1C;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAIjD"}
1
+ {"version":3,"file":"project-type.d.ts","sourceRoot":"","sources":["../src/project-type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AACpD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE3C,8GAA8G;AAC9G,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9D,CAAC;AAyBF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,WAAW,CAYrF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE/D;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,GAAG,UAAU,CAE1E"}
@@ -1,26 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isMobileProjectType = isMobileProjectType;
4
- exports.getFixtureKey = getFixtureKey;
5
- exports.getTestRuntimeModuleName = getTestRuntimeModuleName;
6
- const MOBILE_TYPES = new Set(['ios', 'android']);
7
- const DEFAULT_WEB_RUNTIME_MODULE = '@playwright/test';
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
- function isMobileProjectType() {
16
- return MOBILE_TYPES.has(normalizedProjectType());
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
- function getFixtureKey() {
19
- return isMobileProjectType() ? 'screen' : 'page';
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 getTestRuntimeModuleName() {
22
- return isMobileProjectType()
23
- ? DEFAULT_MOBILE_RUNTIME_MODULE
24
- : DEFAULT_WEB_RUNTIME_MODULE;
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
@@ -1 +1 @@
1
- {"version":3,"file":"project-type.js","sourceRoot":"","sources":["../src/project-type.ts"],"names":[],"mappings":";;AAaA,kDAEC;AAED,sCAEC;AAED,4DAIC;AAvBD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AACjD,MAAM,0BAA0B,GAAG,kBAAkB,CAAC;AACtD,4GAA4G;AAC5G,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAE3D,SAAS,qBAAqB;IAC5B,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;SACpD,IAAI,EAAE;SACN,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,YAAY,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAgB,aAAa;IAC3B,OAAO,mBAAmB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC;AAED,SAAgB,wBAAwB;IACtC,OAAO,mBAAmB,EAAE;QAC1B,CAAC,CAAC,6BAA6B;QAC/B,CAAC,CAAC,0BAA0B,CAAC;AACjC,CAAC"}
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 `TESTCHIMP_PROJECT_TYPE` is ios/android — not required for direct import by consumers.
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 `TESTCHIMP_PROJECT_TYPE` is ios/android).
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;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
+ {"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 `TESTCHIMP_PROJECT_TYPE` is ios/android — not required for direct import by consumers.
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 `TESTCHIMP_PROJECT_TYPE` is ios/android).
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":";;AA8DA,0DAEC;AAOD,4DAGC;AAQD,8DAGC;AAMD,wEAeC;AASD,gEAMC;AAED,8DASC;AAoED,wFAwBC;AAMD,kFAUC;AAYD,wEAsBC;AAlRD,iDAAyE;AAEzE,MAAM,kBAAkB,GAAG,wCAAwC,CAAC;AACpE,MAAM,iBAAiB,GAAG,uCAAuC,CAAC;AAClE,MAAM,iBAAiB,GAAG,uCAAuC,CAAC;AAElE,qEAAqE;AACrE,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AACpC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAExC,uHAAuH;AACvH,SAAS,sBAAsB;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC;IACpE,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IAChD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5B,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IAChC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,sHAAsH;AACtH,SAAS,uBAAuB;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC;IACrE,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,KAAM,CAAC;IACnD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5B,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,KAAM,CAAC;IACnC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,WAAW,CAAI,OAAmB,EAAE,EAAU,EAAE,SAAiB;IAC9E,IAAI,KAAgD,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,OAAO;YACP,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC/B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,SAAS,oBAAoB,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1F,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAmBD,0HAA0H;AAC1H,SAAgB,uBAAuB;IACrC,OAAO,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,SAAgB,wBAAwB;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3F,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5F,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,SAAgB,8BAA8B,CAAC,GAAY;IACzD,IAAI,uBAAuB,EAAE;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3E,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACjC,MAAM,OAAO,GAAG;QACd,MAAM;QACN,WAAW;QACX,mBAAmB;QACnB,YAAY;QACZ,gBAAgB;QAChB,yBAAyB;QACzB,KAAK;QACL,WAAW;KACZ,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,0BAA0B;IACxC,OAAO;QACL,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,IAAI,EAAE,IAAI,kBAAkB;QAC3F,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,EAAE,IAAI,iBAAiB;QACrF,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,EAAE,IAAI,iBAAiB;KACtF,CAAC;AACJ,CAAC;AAED,SAAgB,yBAAyB,CAAC,YAAoB,EAAE,MAAc;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,OAAO,EAAE,CAAC;IACxC,IAAI,GAAG,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,mDAAmD,kBAAkB,WAAW,GAAG,CAAC,MAAM,gEAAgE;SAClK,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,EAAU;IAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,MAA2B,EAAE,GAAW;IACjE,MAAM,EAAE,GAAG,uBAAuB,EAAE,CAAC;IACrC,MAAM,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,6BAA6B,CAAC,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,MAA2B,EAAE,GAAW;IAClF,IAAI,OAAgB,CAAC;IACrB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,yBAAyB,EAAE,OAAO,EAAE,EAAE,CAAC;QACrE,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,GAAG,GAAG,CAAC;YACd,IAAI,OAAO,GAAG,yBAAyB,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzE,sCAAsC;IACtC,OAAO,CAAC,IAAI,CACV,wDAAwD,yBAAyB,0BAA0B,GAAG,EAAE,CACjH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,MAA2B,EAAE,GAAW,EAAE,OAAe;IACxF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,4BAA4B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,IAAI,0BAA0B,GAAG,KAAK,CAAC;AAEvC,KAAK,UAAU,iCAAiC,CAC9C,MAA2B,EAC3B,QAAuB,EACvB,YAAoB,EACpB,WAAmB;IAEnB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAA2C,CAAC;IACrE,MAAM,cAAc,GAAG,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzD,MAAM,MAAM,GAAG,IAAA,kCAAmB,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,yBAAyB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QAClD,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAChC,0BAA0B,GAAG,IAAI,CAAC;YAClC,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,8DAA8D;AAC9D,SAAgB,sCAAsC,CAAC,IAAS;IAC9D,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,0BAA0B,EAAE,CAAC;IAEhE,OAAO,IAAI,CAAC,MAAM,CAAC;QACjB,8DAA8D;QAC9D,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAmB,EAAE,GAAQ,EAAE,QAAuB,EAAE,EAAE;YAC/E,MAAM,CAAC,GAAG,MAAyC,CAAC;YACpD,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC1C,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;gBAClB,OAAO;YACT,CAAC;YACD,IAAI,wBAAwB,EAAE,EAAE,CAAC;gBAC/B,MAAM,4BAA4B,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAClD,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,iCAAiC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YACjF,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;gBACxC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;oBACf,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,mCAAmC,CACvD,MAA4C,EAC5C,QAAuB;IAEvB,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,GAAG,MAA6B,CAAC;IACxC,MAAM,EAAE,YAAY,EAAE,GAAG,0BAA0B,EAAE,CAAC;IACtD,OAAO,iCAAiC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;GAQG;AACH,8DAA8D;AAC9D,SAAgB,8BAA8B,CAAC,QAAa;IAC1D,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,0BAA0B,EAAE,CAAC;IAE5D,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,EAA8B,EAAE,QAAuB,EAAE,EAAE;QAC3F,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACpD,OAAO;QACT,CAAC;QACD,MAAM,mCAAmC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5D,MAAM,4BAA4B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU,IAAI,yBAAyB,EAAE,EAAE,CAAC;QAC3E,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAA8B,EAAE,EAAE;YACjE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACpD,OAAO;YACT,CAAC;YACD,MAAM,4BAA4B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACrD,MAAM,4BAA4B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
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
- * Prefer `installTrueCoverage(mergedTest)` (or `installTestChimp`) on the same `test` object your specs use.
6
- * Screen/state markers: `test('…', async ({ markScreenState }) => { await markScreenState('Screen', 'state'); })`.
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 page wiring.
18
+ * (including `mergeTests(...)` output). When `EXPLORECHIMP_ENABLED`, also applies ExploreChimp wiring.
19
19
  */
20
- export declare function installTrueCoverage(test: any): any;
21
- /** Same behavior as {@link installTrueCoverage} — umbrella name for TrueCoverage + ExploreChimp (via env). */
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
@@ -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;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"}
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
- * Prefer `installTrueCoverage(mergedTest)` (or `installTestChimp`) on the same `test` object your specs use.
7
- * Screen/state markers: `test('…', async ({ markScreenState }) => { await markScreenState('Screen', 'state'); })`.
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 addMarkScreenStateFixture(test) {
65
- // Playwright 1.59+ requires the fixture worker's first parameter to use object destructuring
66
- // (e.g. `{ page }`), not a single positional `fixtures` object.
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 (fixtureKey === 'screen') {
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 page wiring.
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 withCi = mobileProject
112
- ? (0, rum_automation_mobile_1.extendMobileTestWithTrueCoverageDevice)(test)
113
- : test.extend({
114
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
115
- page: async ({ page }, use, testInfo) => {
116
- const project = testInfo.project;
117
- const projectRootDir = project.rootDir ?? process.cwd();
118
- const jsonString = (0, ci_test_info_1.buildCiTestInfoJson)(testInfo, projectRootDir);
119
- await page.addInitScript((info) => {
120
- globalThis.__TC_CI_TEST_INFO = info;
121
- }, jsonString);
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
- chain = (0, explorechimp_1.applyExploreChimpFixture)(withMark);
155
+ result = (0, explorechimp_1.applyExploreChimpFixture)(withMark, uiFixture);
137
156
  }
138
- if (mobileProject) {
139
- chain = (0, rum_automation_mobile_1.attachMobileRumAutomationHooks)(chain);
140
- if (fixtureKey === 'screen') {
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 chain;
161
+ return result;
145
162
  }
146
- /** Same behavior as {@link installTrueCoverage} — umbrella name for TrueCoverage + ExploreChimp (via env). */
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(runtimeModuleName);
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
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"testchimp-reporter.d.ts","sourceRoot":"","sources":["../src/testchimp-reporter.ts"],"names":[],"mappings":"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"}
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;AAoCjB;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAoB;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAW;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAK;IACzD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,iBAAiB,CAAc;IACvC,0EAA0E;IAC1E,OAAO,CAAC,8BAA8B,CAAuB;IAC7D,OAAO,CAAC,+BAA+B,CAAkB;IACzD,OAAO,CAAC,WAAW,CAAc;IAIjC,OAAO,CAAC,cAAc,CAA8C;IAGpE,OAAO,CAAC,aAAa,CAAqC;IAG1D,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,sBAAsB,CAAkB;IAGhD,OAAO,CAAC,SAAS,CAAkB;IACnC;;;;OAIG;IACH,OAAO,CAAC,wBAAwB,CAA0C;IAC1E,6FAA6F;IAC7F,OAAO,CAAC,6BAA6B,CAAiC;IACtE,kHAAkH;IAClH,OAAO,CAAC,6BAA6B,CAAqB;gBAE9C,OAAO,GAAE,wBAA6B;IA0BlD,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IA2E/C,OAAO,CAAC,eAAe;IAqBvB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,0BAA0B;IAalC;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IAiClC,sGAAsG;IACtG,OAAO,CAAC,gCAAgC;IAIxC,oFAAoF;IACpF,OAAO,CAAC,8BAA8B;IAetC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IA+BrD,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI;IAwH7D,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAgBpD,eAAe;IAoIvB,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAyE9C,2HAA2H;IAC3H,OAAO,CAAC,4CAA4C;IAepD,OAAO,CAAC,uCAAuC;IAY/C,OAAO,CAAC,UAAU;YAIJ,uBAAuB;IA2DrC;;;OAGG;IACH,OAAO,CAAC,iCAAiC;IAsBzC;;;OAGG;YACW,qCAAqC;IAgDnD,OAAO,CAAC,iBAAiB;IAWzB;;;OAGG;YACW,kBAAkB;IAgBhC,OAAO,CAAC,2BAA2B;IAQnC,8FAA8F;YAChF,sBAAsB;IAOpC,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,WAAW;IAgDnB,OAAO,CAAC,SAAS;IAqBjB;;OAEG;YACW,+BAA+B;IAiH7C,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,iBAAiB;YAWX,8BAA8B;IAsD5C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CA8C3C;IAEF,OAAO,CAAC,mBAAmB;IAI3B,yHAAyH;IACzH,wGAAwG;IACxG,OAAO,CAAC,gCAAgC;IAUxC;;;;OAIG;IACH,OAAO,CAAC,mCAAmC;IAI3C,mFAAmF;IACnF,OAAO,CAAC,kCAAkC;IAW1C,6HAA6H;IAC7H,OAAO,CAAC,uCAAuC;IAW/C,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,iBAAiB;CAsB1B"}
@@ -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");
@@ -89,9 +90,10 @@ class TestChimpReporter {
89
90
  this.testsFolder = (0, utils_1.getEnvVar)('TESTCHIMP_TESTS_FOLDER', this.options.testsFolder) || 'tests';
90
91
  // In platform/repair mode reporter calls scriptservice (step_end/test_end or repair_* endpoints)
91
92
  // via TESTCHIMP_PLATFORM_BACKEND_URL; TESTCHIMP_BACKEND_URL stays as featureservice for ai-wright etc.
92
- const backendUrl = this.options.executionMode === 'platform' || this.options.executionMode === 'repair'
93
+ const backendUrlRaw = this.options.executionMode === 'platform' || this.options.executionMode === 'repair'
93
94
  ? (0, utils_1.getEnvVar)('TESTCHIMP_PLATFORM_BACKEND_URL', this.options.platformBackendUrl) || (0, utils_1.getEnvVar)('TESTCHIMP_BACKEND_URL', this.options.backendUrl) || 'https://featureservice.testchimp.io'
94
95
  : (0, utils_1.getEnvVar)('TESTCHIMP_BACKEND_URL', this.options.backendUrl) || 'https://featureservice.testchimp.io';
96
+ const backendUrl = String(backendUrlRaw || '').trim() || 'https://featureservice.testchimp.io';
95
97
  // Update options with env var values for release/environment
96
98
  this.options.release = (0, utils_1.getEnvVar)('TESTCHIMP_RELEASE', this.options.release) || '';
97
99
  this.options.environment = (0, utils_1.getEnvVar)('TESTCHIMP_ENV', this.options.environment) || '';
@@ -104,6 +106,15 @@ class TestChimpReporter {
104
106
  }
105
107
  this.apiClient = new api_client_1.TestChimpApiClient(backendUrl, apiKey || 'local-repair', projectId || '', this.options.verbose);
106
108
  this.isEnabled = true;
109
+ const envTcBackend = process.env.TESTCHIMP_BACKEND_URL;
110
+ const envEc = process.env.EXPLORECHIMP_ENABLED;
111
+ console.log(`[TestChimp] ingest_diag onBegin pid=${process.pid} executionMode=${this.options.executionMode} ` +
112
+ `env_TESTCHIMP_BACKEND_URL=${envTcBackend === undefined ? '(undefined)' : JSON.stringify(envTcBackend)} ` +
113
+ `resolvedReporterBackendUrl=${JSON.stringify(backendUrl)} ` +
114
+ `axiosBaseURL=${JSON.stringify(this.apiClient.getBaseUrl())} ` +
115
+ `EXPLORECHIMP_ENABLED=${envEc === undefined ? '(undefined)' : JSON.stringify(envEc)} ` +
116
+ `isExploreChimpEnabled=${(0, index_1.isExploreChimpEnabled)()} ` +
117
+ `apiKeySet=${Boolean(apiKey?.trim())}`);
107
118
  if (this.options.executionMode === 'platform') {
108
119
  this.jobManifest = this.loadJobManifest();
109
120
  this.platformStepEndEnabled =
@@ -416,10 +427,12 @@ class TestChimpReporter {
416
427
  this.inFlightPlatformFinalizations.delete(finalizePromise);
417
428
  }
418
429
  }
430
+ console.log(`[TestChimp] ingest_diag skip_ingest reason=platform_mode test=${JSON.stringify(test.title)} isFinalAttempt=${isFinalAttempt}`);
419
431
  return;
420
432
  }
421
433
  // CI mode: skip non-final attempts if configured (journey_execution_end runs in onTestEnd finally).
422
434
  if (this.options.reportOnlyFinalAttempt && !isFinalAttempt) {
435
+ console.log(`[TestChimp] ingest_diag skip_ingest reason=non_final_attempt test=${JSON.stringify(test.title)} retry=${result.retry}`);
423
436
  console.log(`[TestChimp] Skipping non-final attempt ${result.retry + 1} for: ${test.title}`);
424
437
  this.testExecutions.delete(testKey);
425
438
  return;
@@ -442,8 +455,13 @@ class TestChimpReporter {
442
455
  if (stepsWithScreenshots.length > 0) {
443
456
  console.log(`[TestChimp] Steps with screenshots: ${stepsWithScreenshots.length}`);
444
457
  }
458
+ console.log(`[TestChimp] ingest_diag before_ingest pid=${process.pid} test=${JSON.stringify(test.title)} ` +
459
+ `executionMode=${this.options.executionMode} axiosBaseURL=${JSON.stringify(this.apiClient.getBaseUrl())} ` +
460
+ `isExploreChimpEnabled=${(0, index_1.isExploreChimpEnabled)()} env_EXPLORECHIMP=${process.env.EXPLORECHIMP_ENABLED === undefined ? '(undefined)' : JSON.stringify(process.env.EXPLORECHIMP_ENABLED)}`);
445
461
  try {
446
462
  const response = await this.apiClient.ingestExecutionReport(report);
463
+ console.log(`[TestChimp] ingest_diag after_ingest_ok jobId=${response.jobId} testFound=${response.testFound} ` +
464
+ `baseUrl=${JSON.stringify(this.apiClient.getBaseUrl())}`);
447
465
  if (this.options.verbose) {
448
466
  console.log(`[TestChimp] Reported: ${test.title} (jobId: ${response.jobId}, testFound: ${response.testFound})`);
449
467
  if (response.scenariosPopulated && response.scenariosPopulated > 0) {
@@ -452,7 +470,7 @@ class TestChimpReporter {
452
470
  }
453
471
  }
454
472
  catch (error) {
455
- console.error(`[TestChimp] Failed to report test: ${test.title}`, error);
473
+ console.error(`[TestChimp] ingest_diag after_ingest_error baseUrl=${JSON.stringify(this.apiClient.getBaseUrl())} test=${JSON.stringify(test.title)}`, error);
456
474
  }
457
475
  // Cleanup (ExploreChimp journey_execution_end is invoked from onTestEnd finally).
458
476
  this.testExecutions.delete(testKey);
@@ -756,6 +774,7 @@ class TestChimpReporter {
756
774
  const branchIdValid = branchId !== undefined && !Number.isNaN(branchId) ? branchId : undefined;
757
775
  // Map Playwright status to SmartTestExecutionStatus
758
776
  const status = this.mapStatus(result.status);
777
+ const executionContext = (0, execution_context_1.buildExecutionDeviceContext)(test);
759
778
  const report = {
760
779
  folderPath: paths.folderPath,
761
780
  fileName: paths.fileName,
@@ -770,12 +789,14 @@ class TestChimpReporter {
770
789
  status,
771
790
  error: result.error?.message,
772
791
  pwError: this.toPlaywrightError(result.error),
773
- scenarioCoverageResults: [] // Backend will populate if empty
792
+ scenarioCoverageResults: [], // Backend will populate if empty
793
+ executionContext,
774
794
  },
775
795
  startedAtMillis: execution.startedAt,
776
796
  completedAtMillis: Date.now(),
777
797
  branchName,
778
- branchId: branchIdValid
798
+ branchId: branchIdValid,
799
+ executionContext,
779
800
  };
780
801
  const exploreChimpJobId = this.exploreChimpJourneyExecutionJobId(test, result, paths);
781
802
  if (exploreChimpJobId) {