@testchimp/playwright 0.1.36 → 0.1.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -183,8 +183,8 @@ Retries are tracked; with `reportOnlyFinalAttempt: true` only the last attempt i
183
183
 
184
184
  - **RUM events not linked to tests / missing `ci_test_info` (mobile)**
185
185
  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).
186
- **Android SDK:** use **testchimp-rum-android ≥ 0.1.6** (automation **`/v1/set`** updates CI on the **caller thread** so `device.openUrl` returns after CI is in memory).
187
- **Runner:** **`@testchimp/playwright` ≥ 0.1.36** sends multiple `set` bursts after `launchApp`, an optional settle delay, and one **`afterEach` `set`** to tighten timing around early emits and async tails. Tune **`TESTCHIMP_RUM_AUTOMATION_POST_SET_SETTLE_MS`** (0–500, default **100** ms) on slow devices.
186
+ **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).
187
+ **Runner:** **`@testchimp/playwright` ≥ 0.1.38** sends `set` bursts after `launchApp`, settle delay, **`afterEach` `set` + `v1/flush`** so short tests still upload RUM before the next test’s `clear`. Tune **`TESTCHIMP_RUM_AUTOMATION_POST_SET_SETTLE_MS`** (0–500, default **100** ms) on slow devices. 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**) so hooks fail fast instead of consuming the full test timeout.
188
188
 
189
189
  - **RUM events not linked to tests (web)**
190
190
  Same `installTestChimp` barrel; web uses `__TC_CI_TEST_INFO` on `page` for `@testchimp/rum-js`.
package/dist/index.d.ts CHANGED
@@ -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, } from './rum-automation-mobile';
40
+ export { attachMobileRumAutomationHooks, buildAutomationSetOpenUrl, getMobileRumAutomationUrls, type MobileRumAutomationUrls, } from './rum-automation-mobile';
41
41
  /** ExploreChimp / agents.proto JSON mirrors (camelCase). */
42
42
  export type * from './explorechimp/agents-explorechimp-json';
43
43
  export { DataSourceEnum } from './explorechimp/agents-explorechimp-json';
@@ -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,GAC3B,MAAM,yBAAyB,CAAC;AACjC,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,0BAA0B,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,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.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,iEAIiC;AAH/B,uIAAA,8BAA8B,OAAA;AAC9B,kIAAA,yBAAyB,OAAA;AACzB,mIAAA,0BAA0B,OAAA;AAI5B,oFAAyE;AAAhE,0HAAA,cAAc,OAAA;AAEvB,uDAAuD;AACvD,6DAAyD;AACzD,kBAAe,sCAAiB,CAAC"}
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,iEAKiC;AAJ/B,uIAAA,8BAA8B,OAAA;AAC9B,kIAAA,yBAAyB,OAAA;AACzB,mIAAA,0BAA0B,OAAA;AAK5B,oFAAyE;AAAhE,0HAAA,cAAc,OAAA;AAEvB,uDAAuD;AACvD,6DAAyD;AACzD,kBAAe,sCAAiB,CAAC"}
@@ -1,10 +1,12 @@
1
1
  export interface MobileRumAutomationUrls {
2
2
  setUrlPrefix: string;
3
3
  clearUrl: string;
4
+ flushUrl: string;
4
5
  }
5
6
  /**
6
7
  * URL prefix and clear URL for Mobilewright TrueCoverage (`device.openUrl`).
7
- * Optional overrides: `TESTCHIMP_RUM_AUTOMATION_SET_PREFIX`, `TESTCHIMP_RUM_AUTOMATION_CLEAR_URL`.
8
+ * Optional overrides: `TESTCHIMP_RUM_AUTOMATION_SET_PREFIX`, `TESTCHIMP_RUM_AUTOMATION_CLEAR_URL`,
9
+ * `TESTCHIMP_RUM_AUTOMATION_FLUSH_URL`, `TESTCHIMP_RUM_AUTOMATION_OPEN_URL_TIMEOUT_MS` (per `openUrl`/`launchApp` call, default 25000, clamp 100–120000).
8
10
  */
9
11
  export declare function getMobileRumAutomationUrls(): MobileRumAutomationUrls;
10
12
  export declare function buildAutomationSetOpenUrl(setUrlPrefix: string, ciJson: string): string | {
@@ -16,7 +18,8 @@ export declare function buildAutomationSetOpenUrl(setUrlPrefix: string, ciJson:
16
18
  *
17
19
  * Each test's `beforeEach` clears prior CI, optionally `launchApp`, then sends one or more `set` URLs and
18
20
  * a short settle delay so the app can apply CI before steps run. `afterEach` sends one more `set` for the
19
- * same test (helps late emits / async tails before the next test's `clear`).
21
+ * same test (helps late emits / async tails), then `testchimp-rum://truecoverage/v1/flush` so buffered RUM
22
+ * uploads before the next test's `clear` (short runs vs the SDK timer flush).
20
23
  */
21
24
  export declare function attachMobileRumAutomationHooks(testType: any): any;
22
25
  //# 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":"AAuBA,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAaD;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,uBAAuB,CAKpE;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAS1G;AAgED;;;;;;;GAOG;AAEH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,CA4CjE"}
1
+ {"version":3,"file":"rum-automation-mobile.d.ts","sourceRoot":"","sources":["../src/rum-automation-mobile.ts"],"names":[],"mappings":"AA+CA,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAaD;;;;GAIG;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;AAqED;;;;;;;;GAQG;AAEH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,CAwCjE"}
@@ -6,6 +6,7 @@ exports.attachMobileRumAutomationHooks = attachMobileRumAutomationHooks;
6
6
  const ci_test_info_1 = require("./ci-test-info");
7
7
  const DEFAULT_SET_PREFIX = 'testchimp-rum://truecoverage/v1/set?p=';
8
8
  const DEFAULT_CLEAR_URL = 'testchimp-rum://truecoverage/v1/clear';
9
+ const DEFAULT_FLUSH_URL = 'testchimp-rum://truecoverage/v1/flush';
9
10
  /** Max length for the full openUrl string (conservative for iOS). */
10
11
  const MAX_OPEN_URL_CHARS = 8000;
11
12
  const SET_OPEN_URL_MAX_ATTEMPTS = 3;
@@ -23,14 +24,41 @@ function resolvePostSetSettleMs() {
23
24
  return 100;
24
25
  return Math.max(0, Math.min(500, n));
25
26
  }
27
+ /** Per-call cap for `device.openUrl` / `device.launchApp` so a wedged driver does not burn the whole test timeout. */
28
+ function resolveOpenUrlTimeoutMs() {
29
+ const raw = process.env.TESTCHIMP_RUM_AUTOMATION_OPEN_URL_TIMEOUT_MS;
30
+ if (raw === undefined || raw === '')
31
+ return 25000;
32
+ const n = parseInt(raw, 10);
33
+ if (Number.isNaN(n))
34
+ return 25000;
35
+ return Math.max(100, Math.min(120000, n));
36
+ }
37
+ async function withTimeout(promise, ms, operation) {
38
+ let timer;
39
+ try {
40
+ return await Promise.race([
41
+ promise,
42
+ new Promise((_, reject) => {
43
+ timer = setTimeout(() => reject(new Error(`${operation} timed out after ${ms}ms`)), ms);
44
+ }),
45
+ ]);
46
+ }
47
+ finally {
48
+ if (timer !== undefined)
49
+ clearTimeout(timer);
50
+ }
51
+ }
26
52
  /**
27
53
  * URL prefix and clear URL for Mobilewright TrueCoverage (`device.openUrl`).
28
- * Optional overrides: `TESTCHIMP_RUM_AUTOMATION_SET_PREFIX`, `TESTCHIMP_RUM_AUTOMATION_CLEAR_URL`.
54
+ * Optional overrides: `TESTCHIMP_RUM_AUTOMATION_SET_PREFIX`, `TESTCHIMP_RUM_AUTOMATION_CLEAR_URL`,
55
+ * `TESTCHIMP_RUM_AUTOMATION_FLUSH_URL`, `TESTCHIMP_RUM_AUTOMATION_OPEN_URL_TIMEOUT_MS` (per `openUrl`/`launchApp` call, default 25000, clamp 100–120000).
29
56
  */
30
57
  function getMobileRumAutomationUrls() {
31
58
  return {
32
59
  setUrlPrefix: process.env.TESTCHIMP_RUM_AUTOMATION_SET_PREFIX?.trim() || DEFAULT_SET_PREFIX,
33
60
  clearUrl: process.env.TESTCHIMP_RUM_AUTOMATION_CLEAR_URL?.trim() || DEFAULT_CLEAR_URL,
61
+ flushUrl: process.env.TESTCHIMP_RUM_AUTOMATION_FLUSH_URL?.trim() || DEFAULT_FLUSH_URL,
34
62
  };
35
63
  }
36
64
  function buildAutomationSetOpenUrl(setUrlPrefix, ciJson) {
@@ -46,11 +74,15 @@ function buildAutomationSetOpenUrl(setUrlPrefix, ciJson) {
46
74
  async function sleep(ms) {
47
75
  await new Promise((r) => setTimeout(r, ms));
48
76
  }
49
- async function openUrlSetWithRetries(device, url) {
77
+ async function openUrlOnce(device, url) {
78
+ const ms = resolveOpenUrlTimeoutMs();
79
+ await withTimeout(device.openUrl(url), ms, 'TrueCoverage device.openUrl');
80
+ }
81
+ async function openUrlAutomationWithRetries(device, url) {
50
82
  let lastErr;
51
83
  for (let attempt = 0; attempt < SET_OPEN_URL_MAX_ATTEMPTS; attempt++) {
52
84
  try {
53
- await device.openUrl(url);
85
+ await openUrlOnce(device, url);
54
86
  return;
55
87
  }
56
88
  catch (err) {
@@ -62,12 +94,12 @@ async function openUrlSetWithRetries(device, url) {
62
94
  }
63
95
  const msg = lastErr instanceof Error ? lastErr.message : String(lastErr);
64
96
  // eslint-disable-next-line no-console
65
- console.warn(`[TestChimp] TrueCoverage device.openUrl(set) failed after ${SET_OPEN_URL_MAX_ATTEMPTS} attempts (non-fatal): ${msg}`);
97
+ console.warn(`[TestChimp] TrueCoverage device.openUrl failed after ${SET_OPEN_URL_MAX_ATTEMPTS} attempts (non-fatal): ${msg}`);
66
98
  }
67
99
  async function pushSetUrlWithPostLaunchRepeat(device, url, repeats) {
68
100
  const total = Math.max(1, repeats);
69
101
  for (let i = 0; i < total; i++) {
70
- await openUrlSetWithRetries(device, url);
102
+ await openUrlAutomationWithRetries(device, url);
71
103
  if (i < total - 1) {
72
104
  await sleep(SET_AFTER_LAUNCH_REPEAT_DELAY_MS);
73
105
  }
@@ -96,28 +128,23 @@ async function pushTrueCoverageSetForCurrentTest(device, testInfo, setUrlPrefix,
96
128
  *
97
129
  * Each test's `beforeEach` clears prior CI, optionally `launchApp`, then sends one or more `set` URLs and
98
130
  * a short settle delay so the app can apply CI before steps run. `afterEach` sends one more `set` for the
99
- * same test (helps late emits / async tails before the next test's `clear`).
131
+ * same test (helps late emits / async tails), then `testchimp-rum://truecoverage/v1/flush` so buffered RUM
132
+ * uploads before the next test's `clear` (short runs vs the SDK timer flush).
100
133
  */
101
134
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
135
  function attachMobileRumAutomationHooks(testType) {
103
- const { setUrlPrefix, clearUrl } = getMobileRumAutomationUrls();
136
+ const { setUrlPrefix, clearUrl, flushUrl } = getMobileRumAutomationUrls();
104
137
  testType.beforeEach(async ({ device, bundleId }, testInfo) => {
105
138
  if (!device || typeof device.openUrl !== 'function') {
106
139
  return;
107
140
  }
108
- try {
109
- await device.openUrl(clearUrl);
110
- }
111
- catch (err) {
112
- const msg = err instanceof Error ? err.message : String(err);
113
- // eslint-disable-next-line no-console
114
- console.warn(`[TestChimp] TrueCoverage device.openUrl(clear-before-set) failed (non-fatal): ${msg}`);
115
- }
141
+ await openUrlAutomationWithRetries(device, clearUrl);
116
142
  let launchedApp = false;
117
143
  const bid = typeof bundleId === 'string' && bundleId.trim() !== '' ? bundleId.trim() : undefined;
118
144
  if (bid != null && typeof device.launchApp === 'function') {
119
145
  try {
120
- await device.launchApp(bid);
146
+ const ms = resolveOpenUrlTimeoutMs();
147
+ await withTimeout(device.launchApp(bid), ms, 'TrueCoverage device.launchApp');
121
148
  launchedApp = true;
122
149
  }
123
150
  catch (err) {
@@ -140,6 +167,7 @@ function attachMobileRumAutomationHooks(testType) {
140
167
  return;
141
168
  }
142
169
  await pushTrueCoverageSetForCurrentTest(device, testInfo, setUrlPrefix, 1);
170
+ await openUrlAutomationWithRetries(device, flushUrl);
143
171
  });
144
172
  return testType;
145
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rum-automation-mobile.js","sourceRoot":"","sources":["../src/rum-automation-mobile.ts"],"names":[],"mappings":"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"}
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`, hooks call `device.openUrl` to push CI JSON; integrate TestChimpRum (iOS/Android) URL handling in the app.
11
+ * Mobile TrueCoverage: when `TESTCHIMP_PROJECT_TYPE` is `ios`/`android`, hooks call `device.openUrl` to push CI JSON; integrate TestChimpRum (iOS/Android) URL handling in the app. End-of-test `v1/flush` uploads buffered RUM before the next test's `clear`.
12
12
  */
13
13
  import { isExploreChimpEnabled } from './explorechimp';
14
14
  /** Bound screen/state marker from the `markScreenState` Playwright fixture. */
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`, hooks call `device.openUrl` to push CI JSON; integrate TestChimpRum (iOS/Android) URL handling in the app.
12
+ * Mobile TrueCoverage: when `TESTCHIMP_PROJECT_TYPE` is `ios`/`android`, hooks call `device.openUrl` to push CI JSON; integrate TestChimpRum (iOS/Android) URL handling in the app. End-of-test `v1/flush` uploads buffered RUM before the next test's `clear`.
13
13
  */
14
14
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
15
  if (k2 === undefined) k2 = k;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@testchimp/playwright",
3
- "version": "0.1.36",
3
+ "version": "0.1.38",
4
4
  "description": "Playwright/Mobilewright reporter and runtime for TestChimp tracking and coverage reporting",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",