@validate.qa/runner 1.0.25 → 1.0.26

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
@@ -66590,6 +66590,7 @@ var require_mobile_generator = __commonJS({
66590
66590
  ## Rules
66591
66591
  - Re-snapshot before every assertion so the ref is fresh.
66592
66592
  - Assert the OUTCOME of the flow (the new screen / new content), not the control you just tapped.
66593
+ - Assert only DURABLE elements \u2014 screen chrome that exists on every visit (tab labels, headers, nav bars, the entity you just created). NEVER assert one-time / data-dependent UI: empty-state CTAs ("Add Your First \u2026", "Get Started", "No items yet"), onboarding banners, or counters \u2014 they vanish as soon as the account has data, and the test then fails forever on a healthy app.
66593
66594
  - Do NOT trigger irreversible side effects (real payments, sending messages to others) \u2014 note them and assert what you safely can.
66594
66595
  - Stay inside this app.${targetLine} Do not open or use app stores, browsers, email apps, settings, or any other app. If an action leaves the target app, the runner will relaunch the target app and reject that action.
66595
66596
  - Do ONLY the actions this scenario needs. Do NOT re-open a menu you already opened, re-select an option that is already selected, toggle a setting back and forth, or repeat a step that already succeeded \u2014 EVERY action you take is baked into the generated test verbatim, so each extra action becomes a permanent junk step.
@@ -67980,6 +67981,7 @@ Reason over steps + error + tree + registry and return working healed steps. Do
67980
67981
  1. ERROR: which step failed, on what locator/assertion? "element not found"/"no such element" almost always means a WRONG LOCATOR on a screen that DOES exist \u2014 pick a stronger IDENTITY locator that is actually present in the captured tree: a resource-id, an accessibility-id/content-desc, or an EXACT @text= predicate (never a loose contains()). Do NOT declare a feature absent from one failed locator.
67981
67982
  2. STEP RESULTS: which steps passed before the failure.
67982
67983
  3. TREE: does the current screen match what the failed step expects?
67984
+ 3b. STALE EMPTY-STATE ASSERT: a failing assert on one-time / data-dependent UI (empty-state CTAs like "Add Your First \u2026", "No items yet", onboarding banners) is NOT a locator problem \u2014 the element is gone because the account now has data. REPLACE the assertion with a durable landing-screen anchor (tab label, header, nav bar) that proves the same outcome (verdict fix).
67983
67985
  4. ENTRY-SCREEN DRIFT ("unexpected screen"/"screen drift"): the app started on a DIFFERENT screen than recorded; the fix is usually a MISSING NAVIGATION step (e.g. tap "Get Started" before the recorded first step). Author it from the tree if you can (verdict fix); if a single static tree is insufficient, return needs_device.
67984
67986
  ## Response \u2014 STRICT JSON, exactly one verdict:
67985
67987
  {"verdict":"fix","steps":[<FULL healed MobileTestStep array, all steps, your changes applied, order/metadata preserved>],"reason":"what changed and why","confidence":0.0-1.0}
@@ -68488,6 +68490,7 @@ The recorded flow may have expected a DIFFERENT starting screen than the one sho
68488
68490
  1. Compare the recorded first step's expected screen to the LIVE tree.
68489
68491
  2. If they differ, PREPEND the missing navigation step(s), authored from IDENTITY locators (resource-id, accessibility-id, or EXACT @text=) that are PRESENT in the LIVE tree \u2014 never a loose contains().
68490
68492
  3. If a locator is simply wrong, swap it for a stronger identity locator present in the LIVE tree.
68493
+ 3b. If the failing step ASSERTS one-time / data-dependent UI (an empty-state CTA like "Add Your First \u2026") that is absent from the LIVE tree while the screen is otherwise correct, the assert is STALE \u2014 replace it with a durable element of the same screen (tab label, header, nav bar) and keep the rest.
68491
68494
  4. If you cannot yet SEE the screen you need, use "observe" to advance ONE step, then you will be re-shown the new live screen.
68492
68495
  ## Response \u2014 STRICT JSON, exactly one verdict:
68493
68496
  {"verdict":"fix","steps":[<FULL healed MobileTestStep array, all steps incl. any prepended navigation, order/metadata coherent>],"reason":"what changed and why","confidence":0.0-1.0}
@@ -329509,7 +329512,7 @@ var require_package4 = __commonJS({
329509
329512
  "package.json"(exports2, module2) {
329510
329513
  module2.exports = {
329511
329514
  name: "@validate.qa/runner",
329512
- version: "1.0.25",
329515
+ version: "1.0.26",
329513
329516
  description: "validate local test runner - execute Playwright tests on your machine, connected to validate.qa cloud.",
329514
329517
  bin: {
329515
329518
  "validate-runner": "dist/cli.js"
package/dist/cli.mjs CHANGED
@@ -66595,6 +66595,7 @@ var require_mobile_generator = __commonJS({
66595
66595
  ## Rules
66596
66596
  - Re-snapshot before every assertion so the ref is fresh.
66597
66597
  - Assert the OUTCOME of the flow (the new screen / new content), not the control you just tapped.
66598
+ - Assert only DURABLE elements \u2014 screen chrome that exists on every visit (tab labels, headers, nav bars, the entity you just created). NEVER assert one-time / data-dependent UI: empty-state CTAs ("Add Your First \u2026", "Get Started", "No items yet"), onboarding banners, or counters \u2014 they vanish as soon as the account has data, and the test then fails forever on a healthy app.
66598
66599
  - Do NOT trigger irreversible side effects (real payments, sending messages to others) \u2014 note them and assert what you safely can.
66599
66600
  - Stay inside this app.${targetLine} Do not open or use app stores, browsers, email apps, settings, or any other app. If an action leaves the target app, the runner will relaunch the target app and reject that action.
66600
66601
  - Do ONLY the actions this scenario needs. Do NOT re-open a menu you already opened, re-select an option that is already selected, toggle a setting back and forth, or repeat a step that already succeeded \u2014 EVERY action you take is baked into the generated test verbatim, so each extra action becomes a permanent junk step.
@@ -67985,6 +67986,7 @@ Reason over steps + error + tree + registry and return working healed steps. Do
67985
67986
  1. ERROR: which step failed, on what locator/assertion? "element not found"/"no such element" almost always means a WRONG LOCATOR on a screen that DOES exist \u2014 pick a stronger IDENTITY locator that is actually present in the captured tree: a resource-id, an accessibility-id/content-desc, or an EXACT @text= predicate (never a loose contains()). Do NOT declare a feature absent from one failed locator.
67986
67987
  2. STEP RESULTS: which steps passed before the failure.
67987
67988
  3. TREE: does the current screen match what the failed step expects?
67989
+ 3b. STALE EMPTY-STATE ASSERT: a failing assert on one-time / data-dependent UI (empty-state CTAs like "Add Your First \u2026", "No items yet", onboarding banners) is NOT a locator problem \u2014 the element is gone because the account now has data. REPLACE the assertion with a durable landing-screen anchor (tab label, header, nav bar) that proves the same outcome (verdict fix).
67988
67990
  4. ENTRY-SCREEN DRIFT ("unexpected screen"/"screen drift"): the app started on a DIFFERENT screen than recorded; the fix is usually a MISSING NAVIGATION step (e.g. tap "Get Started" before the recorded first step). Author it from the tree if you can (verdict fix); if a single static tree is insufficient, return needs_device.
67989
67991
  ## Response \u2014 STRICT JSON, exactly one verdict:
67990
67992
  {"verdict":"fix","steps":[<FULL healed MobileTestStep array, all steps, your changes applied, order/metadata preserved>],"reason":"what changed and why","confidence":0.0-1.0}
@@ -68493,6 +68495,7 @@ The recorded flow may have expected a DIFFERENT starting screen than the one sho
68493
68495
  1. Compare the recorded first step's expected screen to the LIVE tree.
68494
68496
  2. If they differ, PREPEND the missing navigation step(s), authored from IDENTITY locators (resource-id, accessibility-id, or EXACT @text=) that are PRESENT in the LIVE tree \u2014 never a loose contains().
68495
68497
  3. If a locator is simply wrong, swap it for a stronger identity locator present in the LIVE tree.
68498
+ 3b. If the failing step ASSERTS one-time / data-dependent UI (an empty-state CTA like "Add Your First \u2026") that is absent from the LIVE tree while the screen is otherwise correct, the assert is STALE \u2014 replace it with a durable element of the same screen (tab label, header, nav bar) and keep the rest.
68496
68499
  4. If you cannot yet SEE the screen you need, use "observe" to advance ONE step, then you will be re-shown the new live screen.
68497
68500
  ## Response \u2014 STRICT JSON, exactly one verdict:
68498
68501
  {"verdict":"fix","steps":[<FULL healed MobileTestStep array, all steps incl. any prepended navigation, order/metadata coherent>],"reason":"what changed and why","confidence":0.0-1.0}
@@ -329514,7 +329517,7 @@ var require_package4 = __commonJS({
329514
329517
  "package.json"(exports, module) {
329515
329518
  module.exports = {
329516
329519
  name: "@validate.qa/runner",
329517
- version: "1.0.25",
329520
+ version: "1.0.26",
329518
329521
  description: "validate local test runner - execute Playwright tests on your machine, connected to validate.qa cloud.",
329519
329522
  bin: {
329520
329523
  "validate-runner": "dist/cli.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@validate.qa/runner",
3
- "version": "1.0.25",
3
+ "version": "1.0.26",
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"