doc-detective 4.13.0 → 4.14.1

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/dist/common/src/schemas/schemas.json +4559 -605
  2. package/dist/common/src/types/generated/runBrowserScript_v3.d.ts +48 -0
  3. package/dist/common/src/types/generated/runBrowserScript_v3.d.ts.map +1 -0
  4. package/dist/common/src/types/generated/runBrowserScript_v3.js +7 -0
  5. package/dist/common/src/types/generated/runBrowserScript_v3.js.map +1 -0
  6. package/dist/common/src/types/generated/step_v3.d.ts +191 -73
  7. package/dist/common/src/types/generated/step_v3.d.ts.map +1 -1
  8. package/dist/common/src/types/generated/test_v3.d.ts +454 -218
  9. package/dist/common/src/types/generated/test_v3.d.ts.map +1 -1
  10. package/dist/core/detectTests.d.ts.map +1 -1
  11. package/dist/core/detectTests.js +106 -21
  12. package/dist/core/detectTests.js.map +1 -1
  13. package/dist/core/resolveTests.d.ts.map +1 -1
  14. package/dist/core/resolveTests.js +2 -13
  15. package/dist/core/resolveTests.js.map +1 -1
  16. package/dist/core/tests/runBrowserScript.d.ts +7 -0
  17. package/dist/core/tests/runBrowserScript.d.ts.map +1 -0
  18. package/dist/core/tests/runBrowserScript.js +133 -0
  19. package/dist/core/tests/runBrowserScript.js.map +1 -0
  20. package/dist/core/tests.d.ts.map +1 -1
  21. package/dist/core/tests.js +51 -20
  22. package/dist/core/tests.js.map +1 -1
  23. package/dist/core/utils.d.ts +25 -1
  24. package/dist/core/utils.d.ts.map +1 -1
  25. package/dist/core/utils.js +55 -1
  26. package/dist/core/utils.js.map +1 -1
  27. package/dist/hints/hints.d.ts.map +1 -1
  28. package/dist/hints/hints.js +21 -0
  29. package/dist/hints/hints.js.map +1 -1
  30. package/dist/index.cjs +4968 -834
  31. package/dist/runtime/browserStepKeys.d.ts +19 -0
  32. package/dist/runtime/browserStepKeys.d.ts.map +1 -0
  33. package/dist/runtime/browserStepKeys.js +33 -0
  34. package/dist/runtime/browserStepKeys.js.map +1 -0
  35. package/dist/runtime/inferRuntimeNeeds.d.ts.map +1 -1
  36. package/dist/runtime/inferRuntimeNeeds.js +4 -19
  37. package/dist/runtime/inferRuntimeNeeds.js.map +1 -1
  38. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"resolveTests.js","sourceRoot":"","sources":["../../src/core/resolveTests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveTests.js","sourceRoot":"","sources":["../../src/core/resolveTests.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { runBrowserScript };
2
+ declare function runBrowserScript({ config, step, driver, }: {
3
+ config: any;
4
+ step: any;
5
+ driver: any;
6
+ }): Promise<any>;
7
+ //# sourceMappingURL=runBrowserScript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runBrowserScript.d.ts","sourceRoot":"","sources":["../../../src/core/tests/runBrowserScript.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAM5B,iBAAe,gBAAgB,CAAC,EAC9B,MAAM,EACN,IAAI,EACJ,MAAM,GACP,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,EAAE,GAAG,CAAC;CACb,gBA6IA"}
@@ -0,0 +1,133 @@
1
+ import { validate } from "../../common/src/validate.js";
2
+ import { log, calculateFractionalDifference, serializeBrowserResult, matchesExpectedOutput, } from "../utils.js";
3
+ import fs from "node:fs";
4
+ import path from "node:path";
5
+ export { runBrowserScript };
6
+ // Execute arbitrary JavaScript in the browser page context via the WebDriver
7
+ // `executeScript` endpoint. The script's return value is captured into
8
+ // `outputs.result`; non-string values are serialized for the optional
9
+ // `output` assertion and `path` snapshot. Mirrors the runShell/runCode shape.
10
+ async function runBrowserScript({ config, step, driver, }) {
11
+ const result = {
12
+ status: "PASS",
13
+ description: "Executed browser script.",
14
+ outputs: {
15
+ result: undefined,
16
+ },
17
+ };
18
+ // Validate step object
19
+ const isValidStep = validate({ schemaKey: "step_v3", object: step });
20
+ if (!isValidStep.valid) {
21
+ result.status = "FAIL";
22
+ result.description = `Invalid step definition: ${isValidStep.errors}`;
23
+ return result;
24
+ }
25
+ // Accept coerced and defaulted values
26
+ step = isValidStep.object;
27
+ // Resolve to object
28
+ if (typeof step.runBrowserScript === "string") {
29
+ step.runBrowserScript = { script: step.runBrowserScript };
30
+ }
31
+ // Set default values
32
+ step.runBrowserScript = {
33
+ ...step.runBrowserScript,
34
+ args: step.runBrowserScript.args || [],
35
+ maxVariation: step.runBrowserScript.maxVariation || 0,
36
+ overwrite: step.runBrowserScript.overwrite || "aboveVariation",
37
+ timeout: step.runBrowserScript.timeout || 60000,
38
+ };
39
+ // A browser script is meaningless without a live page.
40
+ if (!driver || typeof driver.execute !== "function") {
41
+ result.status = "FAIL";
42
+ result.description =
43
+ "No browser available. runBrowserScript requires a browser context.";
44
+ return result;
45
+ }
46
+ // Execute script in the page, racing against a timeout.
47
+ const timeout = step.runBrowserScript.timeout;
48
+ // WebdriverIO accepts a string script body run via executeScript; args are
49
+ // exposed to the script via the `arguments` object.
50
+ const scriptPromise = driver.execute(step.runBrowserScript.script, ...step.runBrowserScript.args);
51
+ // If the timeout wins the race, `scriptPromise` is left without a consumer.
52
+ // Attach a no-op catch so a later rejection (JS error, closed session) is
53
+ // handled instead of surfacing as an unhandled promise rejection. This extra
54
+ // handler doesn't affect the race: a pre-timeout rejection still propagates
55
+ // to `Promise.race` and is reported as a FAIL below.
56
+ scriptPromise.catch(() => { });
57
+ let timeoutId;
58
+ const timeoutPromise = new Promise((resolve, reject) => {
59
+ timeoutId = setTimeout(() => {
60
+ reject(new Error(`Script timed out after ${timeout} milliseconds`));
61
+ }, timeout);
62
+ });
63
+ let returnValue;
64
+ try {
65
+ returnValue = await Promise.race([scriptPromise, timeoutPromise]);
66
+ clearTimeout(timeoutId);
67
+ }
68
+ catch (error) {
69
+ clearTimeout(timeoutId);
70
+ result.status = "FAIL";
71
+ result.description = `Script execution failed: ${error.message}`;
72
+ return result;
73
+ }
74
+ result.outputs.result = returnValue;
75
+ const serialized = serializeBrowserResult(returnValue);
76
+ // Evaluate expected output (substring or /regex/) against the serialized value.
77
+ if (step.runBrowserScript.output) {
78
+ if (!matchesExpectedOutput(serialized, step.runBrowserScript.output)) {
79
+ result.status = "FAIL";
80
+ result.description = `Couldn't find expected output (${step.runBrowserScript.output}) in the script's return value.`;
81
+ return result;
82
+ }
83
+ }
84
+ // Check if the return value is saved to a file. Wrap the filesystem work so a
85
+ // permissions error, bad path, full disk, or a file deleted mid-run returns a
86
+ // deterministic FAIL instead of throwing out of the runner.
87
+ if (step.runBrowserScript.path) {
88
+ try {
89
+ const dir = path.dirname(step.runBrowserScript.path);
90
+ // If `dir` doesn't exist, create it
91
+ if (!fs.existsSync(dir)) {
92
+ fs.mkdirSync(dir, { recursive: true });
93
+ }
94
+ const filePath = step.runBrowserScript.path;
95
+ log(config, "debug", `Saving script result to file: ${filePath}`);
96
+ if (!fs.existsSync(filePath)) {
97
+ // Doesn't exist, save output to file
98
+ fs.writeFileSync(filePath, serialized);
99
+ }
100
+ else {
101
+ const existingFile = fs.readFileSync(filePath, "utf8");
102
+ const fractionalDiff = calculateFractionalDifference(existingFile, serialized);
103
+ log(config, "debug", `Fractional difference: ${fractionalDiff}`);
104
+ if (fractionalDiff > step.runBrowserScript.maxVariation) {
105
+ if (step.runBrowserScript.overwrite == "aboveVariation" ||
106
+ step.runBrowserScript.overwrite == "true") {
107
+ fs.writeFileSync(filePath, serialized);
108
+ result.description += ` Saved output to file.`;
109
+ }
110
+ else {
111
+ result.description += ` Didn't overwrite the existing file.`;
112
+ }
113
+ result.status = "WARNING";
114
+ result.description += ` The difference between the existing output and the new output (${fractionalDiff.toFixed(2)}) is greater than the max accepted variation (${step.runBrowserScript.maxVariation}).`;
115
+ return result;
116
+ }
117
+ // Within variation: only "true" forces a rewrite; otherwise the
118
+ // existing file is left as-is and the step passes without a note.
119
+ if (step.runBrowserScript.overwrite == "true") {
120
+ fs.writeFileSync(filePath, serialized);
121
+ result.description += ` Saved output to file.`;
122
+ }
123
+ }
124
+ }
125
+ catch (error) {
126
+ result.status = "FAIL";
127
+ result.description = `Couldn't persist script output at ${step.runBrowserScript.path}: ${error.message}`;
128
+ return result;
129
+ }
130
+ }
131
+ return result;
132
+ }
133
+ //# sourceMappingURL=runBrowserScript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runBrowserScript.js","sourceRoot":"","sources":["../../../src/core/tests/runBrowserScript.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../src/core/tests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../src/core/tests.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAoEhC,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,qBAAqB,EACrB,6BAA6B,EAC7B,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,GACpB,CAAC;AASF;;;;;;;;GAQG;AACH,iBAAS,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAI5C;AAED;;;;;;GAMG;AACH,iBAAS,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAE7E;AAGD,iBAAS,qBAAqB,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAAE,aAAa,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,GAAG,GAAG,CA2HrH;AAiBD,iBAAS,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IAAE,OAAO,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,WAwBpG;AAED,iBAAS,iBAAiB,CAAC,EAAE,aAAa,EAAE,EAAE;IAAE,aAAa,EAAE,GAAG,CAAA;CAAE,OAUnE;AA8CD,iBAAe,SAAS,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,MAAW,EAAE,EAAE;IAAE,aAAa,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAwIhI;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAe,QAAQ,CAAC,EAAE,aAAa,EAAE,EAAE;IAAE,aAAa,EAAE,GAAG,CAAA;CAAE,gBAygBhE;AAED;;;;;;;;;GASG;AACH,iBAAS,mBAAmB,CAC1B,IAAI,EAAE,GAAG,EAAE,EACX,aAAa,EAAE,GAAG,GACjB,KAAK,CAAC;IAAE,OAAO,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAyBxC;AA8ID,iBAAS,qBAAqB,CAAC,EAC7B,MAAM,EACN,IAAI,EACJ,IAAI,GACL,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,GAAG,CAAC;CACX,GAAG,OAAO,CAIV;AAID,iBAAS,iBAAiB,CAAC,EACzB,MAAM,EACN,IAAI,EACJ,IAAI,GACL,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,GAAG,CAAC;CACX,GAAG,OAAO,CAEV;AASD,iBAAS,mBAAmB,CAAC,EAC3B,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,GACR,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,GAAG,CAAC;CACd,GAAG,GAAG,GAAG,IAAI,CA0Bb;AA2nBD,iBAAe,OAAO,CAAC,EACrB,MAAW,EACX,OAAY,EACZ,IAAI,EACJ,MAAM,EACN,UAAe,EACf,OAAY,GACb,EAAE;IACD,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf,GAAG,OAAO,CAAC,GAAG,CAAC,CAuHf;AA+KD;;;;;;;;;;;GAWG;AACH,iBAAe,qBAAqB,CAClC,MAAM,EAAE,GAAG,EACX,IAAI,EAAE;IACJ,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxC,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD,GACA,OAAO,CAAC,GAAG,EAAE,CAAC,CAmChB;AAED;;;;;;;;;;;GAWG;AACH,iBAAe,6BAA6B,CAAC,EAC3C,WAAW,EACX,MAAM,EACN,eAAe,EACf,IAAI,GACL,EAAE;IACD,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC;IACZ,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,gBAAgB,CAAC,CAAC;IACxE,IAAI,EAAE;QACJ,aAAa,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;QACvE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;KACzD,CAAC;CACH,GAAG,OAAO,CAAC,WAAW,GAAG,QAAQ,GAAG,gBAAgB,CAAC,CAsCrD;AAED,iBAAe,SAAS,CAAC,OAAO,GAAE,GAAQ;;;;;GAoHzC"}
@@ -7,6 +7,8 @@ import kill from "tree-kill";
7
7
  // to a non-runtime identifier.
8
8
  import { loadHeavyDep, resolveHeavyDepPath } from "../runtime/loader.js";
9
9
  import { requiredBrowserAssets, ensureBrowserInstalled, } from "../runtime/browsers.js";
10
+ // Single source of truth for browser/driver-requiring step keys.
11
+ import { BROWSER_STEP_KEYS as driverActions } from "../runtime/browserStepKeys.js";
10
12
  import os from "node:os";
11
13
  import { log, replaceEnvs, selectSpecsForRun, findFreePort, runConcurrent, rollUpResults, createAppiumPool, getRunOutputDir, runArchivesArtifacts, sanitizeFilesystemName, } from "./utils.js";
12
14
  import axios from "axios";
@@ -27,6 +29,7 @@ import { loadCookie } from "./tests/loadCookie.js";
27
29
  import { httpRequest } from "./tests/httpRequest.js";
28
30
  import { clickElement } from "./tests/click.js";
29
31
  import { runCode } from "./tests/runCode.js";
32
+ import { runBrowserScript } from "./tests/runBrowserScript.js";
30
33
  import { dragAndDropElement } from "./tests/dragAndDrop.js";
31
34
  import path from "node:path";
32
35
  import { spawn } from "node:child_process";
@@ -44,19 +47,6 @@ export { runSpecs, runViaApi, getRunner, ensureChromeAvailable, ensureContextBro
44
47
  // exports.appiumStart = appiumStart;
45
48
  // exports.appiumIsReady = appiumIsReady;
46
49
  // exports.driverStart = driverStart;
47
- // Doc Detective actions that require a driver.
48
- const driverActions = [
49
- "click",
50
- "dragAndDrop",
51
- "stopRecord",
52
- "find",
53
- "goTo",
54
- "loadCookie",
55
- "record",
56
- "saveCookie",
57
- "screenshot",
58
- "type",
59
- ];
60
50
  // Browser names getDriverCapabilities knows how to build caps for. `safari` is
61
51
  // rewritten to `webkit` during context resolution, so both appear here.
62
52
  const KNOWN_BROWSERS = ["firefox", "chrome", "safari", "webkit"];
@@ -771,9 +761,15 @@ async function runSpecs({ resolvedTests }) {
771
761
  warmUpResults,
772
762
  });
773
763
  }
774
- // Phase 2: run every context job through one flat worker pool. A limit of 1
775
- // (the default) is strictly sequential in input order.
776
- await runConcurrent(jobs, limit, async (job) => {
764
+ // Phase 2: run context jobs through the worker pool, gated into three
765
+ // sequential phases. Config-level `beforeAny` specs all finish before any
766
+ // `main` test starts, and `afterAll` specs run only after every `main` test
767
+ // finishes. Within a phase, jobs still run concurrently up to `limit`.
768
+ // Warm-up / recording-concurrency / Appium-pool sizing above intentionally
769
+ // stay computed over the full `jobs[]`. Untagged jobs (programmatic callers
770
+ // that bypass detection) default to "main". With limit===1 this is identical
771
+ // ordering to a single pool over input-ordered jobs.
772
+ const runJob = async (job) => {
777
773
  try {
778
774
  job.contexts[job.slot] = await runContext({
779
775
  config,
@@ -804,7 +800,25 @@ async function runSpecs({ resolvedTests }) {
804
800
  steps: [],
805
801
  };
806
802
  }
807
- });
803
+ };
804
+ const PHASES = ["beforeAny", "main", "afterAll"];
805
+ const jobsByPhase = {
806
+ beforeAny: [],
807
+ main: [],
808
+ afterAll: [],
809
+ };
810
+ for (const job of jobs) {
811
+ // Constrain to the known set before indexing: a programmatic caller could
812
+ // set `_phase` to a prototype key (e.g. "__proto__" / "toString") where
813
+ // jobsByPhase[phase] is truthy-but-not-an-array and .push would throw.
814
+ const phase = PHASES.includes(job.spec?._phase)
815
+ ? job.spec._phase
816
+ : "main";
817
+ jobsByPhase[phase].push(job);
818
+ }
819
+ for (const phase of PHASES) {
820
+ await runConcurrent(jobsByPhase[phase], limit, runJob);
821
+ }
808
822
  // Phase 3: roll results up the tree and count the summary in one
809
823
  // deterministic pass after all contexts have finished.
810
824
  for (const specReport of report.specs) {
@@ -1380,16 +1394,21 @@ async function runContext({ config, spec, test, context, runnerDetails, appiumPo
1380
1394
  result: "SKIPPED",
1381
1395
  resultDescription: "Skipped because unsafe steps aren't allowed.",
1382
1396
  };
1397
+ delete stepReport._fromAfter;
1383
1398
  contextReport.steps.push(stepReport);
1384
1399
  continue;
1385
1400
  }
1386
- if (stepExecutionFailed) {
1401
+ // Skip remaining steps after a failure — but NOT cleanup (`_fromAfter`)
1402
+ // steps. Cleanup is hard-routed: it runs after the test no matter what
1403
+ // routing (here, skip-on-failure) happened during execution.
1404
+ if (stepExecutionFailed && !step._fromAfter) {
1387
1405
  // Mark as skipped
1388
1406
  const stepReport = {
1389
1407
  ...step,
1390
1408
  result: "SKIPPED",
1391
1409
  resultDescription: "Skipped due to previous failure in context.",
1392
1410
  };
1411
+ delete stepReport._fromAfter;
1393
1412
  contextReport.steps.push(stepReport);
1394
1413
  continue;
1395
1414
  }
@@ -1416,6 +1435,8 @@ async function runContext({ config, spec, test, context, runnerDetails, appiumPo
1416
1435
  ...step,
1417
1436
  ...stepResult,
1418
1437
  };
1438
+ // Internal cleanup marker never leaks into the report.
1439
+ delete stepReport._fromAfter;
1419
1440
  // Capture a post-step screenshot for autoScreenshot runs. Applies to
1420
1441
  // browser steps (explicit `screenshot` steps already produce an image);
1421
1442
  // failed steps are captured too — the failure frame is often the most
@@ -1438,8 +1459,11 @@ async function runContext({ config, spec, test, context, runnerDetails, appiumPo
1438
1459
  stepReport.autoScreenshot = capturedPath;
1439
1460
  }
1440
1461
  contextReport.steps.push(stepReport);
1441
- // If this step failed, set flag to skip remaining steps
1442
- if (stepReport.result === "FAIL") {
1462
+ // If this step failed, set flag to skip remaining steps — but a failing
1463
+ // cleanup (`_fromAfter`) step must NOT cascade: it can't skip later
1464
+ // cleanup steps (cleanup is best-effort and must complete). The FAIL still
1465
+ // counts in the rollup so cleanup failures surface.
1466
+ if (stepReport.result === "FAIL" && !step._fromAfter) {
1443
1467
  stepExecutionFailed = true;
1444
1468
  }
1445
1469
  }
@@ -1612,6 +1636,13 @@ async function runStep({ config = {}, context = {}, step, driver, metaValues = {
1612
1636
  else if (typeof step.runCode !== "undefined") {
1613
1637
  actionResult = await runCode({ config: config, step: step });
1614
1638
  }
1639
+ else if (typeof step.runBrowserScript !== "undefined") {
1640
+ actionResult = await runBrowserScript({
1641
+ config: config,
1642
+ step: step,
1643
+ driver: driver,
1644
+ });
1645
+ }
1615
1646
  else if (typeof step.runShell !== "undefined") {
1616
1647
  actionResult = await runShell({ config: config, step: step });
1617
1648
  }