@validate.qa/runner 1.0.22 → 1.0.23

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/dist/cli.js CHANGED
@@ -328483,7 +328483,7 @@ var require_package4 = __commonJS({
328483
328483
  "package.json"(exports2, module2) {
328484
328484
  module2.exports = {
328485
328485
  name: "@validate.qa/runner",
328486
- version: "1.0.22",
328486
+ version: "1.0.23",
328487
328487
  description: "validate local test runner - execute Playwright tests on your machine, connected to validate.qa cloud.",
328488
328488
  bin: {
328489
328489
  "validate-runner": "dist/cli.js"
@@ -330256,6 +330256,7 @@ var MOBILE_NEW_COMMAND_TIMEOUT_SECONDS = (() => {
330256
330256
  const raw = Number(process.env.VALIDATEQA_MOBILE_NEW_COMMAND_TIMEOUT);
330257
330257
  return Number.isFinite(raw) && raw > 0 ? Math.floor(raw) : 600;
330258
330258
  })();
330259
+ var COLD_BOOT_ENTRY_TIMEOUT_MS = 3e4;
330259
330260
  var VERIFICATION_ACTIONS = /* @__PURE__ */ new Set(["assertVisible", "assertText", "waitForElement"]);
330260
330261
  var WD_SESSION_CREATE_TIMEOUT_MS = 12e4;
330261
330262
  var WD_ACTION_TIMEOUT_MS = 3e4;
@@ -330490,18 +330491,24 @@ async function freshLaunchTargetApp(sessionId, platform3, appId, log2) {
330490
330491
  }
330491
330492
  async function waitForColdBootContent(sessionId, log2, timeoutMs = 2e4) {
330492
330493
  const deadline = Date.now() + timeoutMs;
330493
- const MIN_ELEMENTS = 3;
330494
+ const MIN_ELEMENTS = 12;
330494
330495
  let lastCount = 0;
330496
+ let stableFrames = 0;
330495
330497
  while (Date.now() < deadline) {
330496
330498
  try {
330497
330499
  const res = await wdRequest(`/session/${sessionId}/source`);
330498
330500
  const xml = typeof res?.value === "string" ? res.value : "";
330499
330501
  const count = (xml.match(/<(android\.|XCUIElementType)/g) ?? []).length;
330500
- lastCount = count;
330501
- if (count >= MIN_ELEMENTS) {
330502
- log2(` Cold-boot ready: UI tree has ${count} node(s).`);
330503
- return;
330502
+ if (count >= MIN_ELEMENTS && count === lastCount) {
330503
+ stableFrames++;
330504
+ if (stableFrames >= 2) {
330505
+ log2(` Cold-boot ready: UI tree settled at ${count} node(s).`);
330506
+ return;
330507
+ }
330508
+ } else {
330509
+ stableFrames = 0;
330504
330510
  }
330511
+ lastCount = count;
330505
330512
  } catch {
330506
330513
  }
330507
330514
  await new Promise((r) => setTimeout(r, 750));
@@ -331186,7 +331193,8 @@ async function executeMobileTest(options) {
331186
331193
  );
331187
331194
  if (entryStep) {
331188
331195
  try {
331189
- await findElement(sessionId, entryStep.target, DEFAULT_STEP_TIMEOUT_MS, { identityOnly: true, platform: runPlatform });
331196
+ const entryTimeout = recordedFromClearedState ? Math.max(DEFAULT_STEP_TIMEOUT_MS, COLD_BOOT_ENTRY_TIMEOUT_MS) : DEFAULT_STEP_TIMEOUT_MS;
331197
+ await findElement(sessionId, entryStep.target, entryTimeout, { identityOnly: true, platform: runPlatform });
331190
331198
  } catch (err) {
331191
331199
  if (isTransportError(err)) throw err;
331192
331200
  entryDrift = true;
package/dist/cli.mjs CHANGED
@@ -328488,7 +328488,7 @@ var require_package4 = __commonJS({
328488
328488
  "package.json"(exports, module) {
328489
328489
  module.exports = {
328490
328490
  name: "@validate.qa/runner",
328491
- version: "1.0.22",
328491
+ version: "1.0.23",
328492
328492
  description: "validate local test runner - execute Playwright tests on your machine, connected to validate.qa cloud.",
328493
328493
  bin: {
328494
328494
  "validate-runner": "dist/cli.js"
@@ -330264,6 +330264,7 @@ var MOBILE_NEW_COMMAND_TIMEOUT_SECONDS = (() => {
330264
330264
  const raw = Number(process.env.VALIDATEQA_MOBILE_NEW_COMMAND_TIMEOUT);
330265
330265
  return Number.isFinite(raw) && raw > 0 ? Math.floor(raw) : 600;
330266
330266
  })();
330267
+ var COLD_BOOT_ENTRY_TIMEOUT_MS = 3e4;
330267
330268
  var VERIFICATION_ACTIONS = /* @__PURE__ */ new Set(["assertVisible", "assertText", "waitForElement"]);
330268
330269
  var WD_SESSION_CREATE_TIMEOUT_MS = 12e4;
330269
330270
  var WD_ACTION_TIMEOUT_MS = 3e4;
@@ -330498,18 +330499,24 @@ async function freshLaunchTargetApp(sessionId, platform3, appId, log2) {
330498
330499
  }
330499
330500
  async function waitForColdBootContent(sessionId, log2, timeoutMs = 2e4) {
330500
330501
  const deadline = Date.now() + timeoutMs;
330501
- const MIN_ELEMENTS = 3;
330502
+ const MIN_ELEMENTS = 12;
330502
330503
  let lastCount = 0;
330504
+ let stableFrames = 0;
330503
330505
  while (Date.now() < deadline) {
330504
330506
  try {
330505
330507
  const res = await wdRequest(`/session/${sessionId}/source`);
330506
330508
  const xml = typeof res?.value === "string" ? res.value : "";
330507
330509
  const count = (xml.match(/<(android\.|XCUIElementType)/g) ?? []).length;
330508
- lastCount = count;
330509
- if (count >= MIN_ELEMENTS) {
330510
- log2(` Cold-boot ready: UI tree has ${count} node(s).`);
330511
- return;
330510
+ if (count >= MIN_ELEMENTS && count === lastCount) {
330511
+ stableFrames++;
330512
+ if (stableFrames >= 2) {
330513
+ log2(` Cold-boot ready: UI tree settled at ${count} node(s).`);
330514
+ return;
330515
+ }
330516
+ } else {
330517
+ stableFrames = 0;
330512
330518
  }
330519
+ lastCount = count;
330513
330520
  } catch {
330514
330521
  }
330515
330522
  await new Promise((r) => setTimeout(r, 750));
@@ -331194,7 +331201,8 @@ async function executeMobileTest(options) {
331194
331201
  );
331195
331202
  if (entryStep) {
331196
331203
  try {
331197
- await findElement(sessionId, entryStep.target, DEFAULT_STEP_TIMEOUT_MS, { identityOnly: true, platform: runPlatform });
331204
+ const entryTimeout = recordedFromClearedState ? Math.max(DEFAULT_STEP_TIMEOUT_MS, COLD_BOOT_ENTRY_TIMEOUT_MS) : DEFAULT_STEP_TIMEOUT_MS;
331205
+ await findElement(sessionId, entryStep.target, entryTimeout, { identityOnly: true, platform: runPlatform });
331198
331206
  } catch (err) {
331199
331207
  if (isTransportError(err)) throw err;
331200
331208
  entryDrift = true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@validate.qa/runner",
3
- "version": "1.0.22",
3
+ "version": "1.0.23",
4
4
  "description": "validate local test runner - execute Playwright tests on your machine, connected to validate.qa cloud.",
5
5
  "bin": {
6
6
  "validate-runner": "dist/cli.js"