doc-detective 4.25.1 → 4.26.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.
- package/dist/common/src/schemas/schemas.json +15966 -4090
- package/dist/common/src/types/generated/closeSurface_v3.d.ts +2 -2
- package/dist/common/src/types/generated/dragAndDrop_v3.d.ts +1 -1
- package/dist/common/src/types/generated/goTo_v3.d.ts +1 -1
- package/dist/common/src/types/generated/record_v3.d.ts +1 -1
- package/dist/common/src/types/generated/runBrowserScript_v3.d.ts +1 -1
- package/dist/common/src/types/generated/screenshot_v3.d.ts +1 -1
- package/dist/common/src/types/generated/startSurface_v3.d.ts +317 -3
- package/dist/common/src/types/generated/startSurface_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/step_v3.d.ts +329 -15
- package/dist/common/src/types/generated/step_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/surface_v3.d.ts +1 -1
- package/dist/common/src/types/generated/swipe_v3.d.ts +2 -2
- package/dist/common/src/types/generated/test_v3.d.ts +669 -41
- package/dist/common/src/types/generated/test_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/type_v3.d.ts +1 -1
- package/dist/core/resolveTests.d.ts.map +1 -1
- package/dist/core/resolveTests.js +8 -1
- package/dist/core/resolveTests.js.map +1 -1
- package/dist/core/tests/appGestures.d.ts +7 -1
- package/dist/core/tests/appGestures.d.ts.map +1 -1
- package/dist/core/tests/appGestures.js +24 -4
- package/dist/core/tests/appGestures.js.map +1 -1
- package/dist/core/tests/appSurface.d.ts +13 -1
- package/dist/core/tests/appSurface.d.ts.map +1 -1
- package/dist/core/tests/appSurface.js +42 -10
- package/dist/core/tests/appSurface.js.map +1 -1
- package/dist/core/tests/appWindows.d.ts +45 -0
- package/dist/core/tests/appWindows.d.ts.map +1 -0
- package/dist/core/tests/appWindows.js +638 -0
- package/dist/core/tests/appWindows.js.map +1 -0
- package/dist/core/tests/browserSessions.d.ts +25 -3
- package/dist/core/tests/browserSessions.d.ts.map +1 -1
- package/dist/core/tests/browserSessions.js +63 -27
- package/dist/core/tests/browserSessions.js.map +1 -1
- package/dist/core/tests/browserSurface.d.ts.map +1 -1
- package/dist/core/tests/browserSurface.js +5 -2
- package/dist/core/tests/browserSurface.js.map +1 -1
- package/dist/core/tests/closeSurface.d.ts.map +1 -1
- package/dist/core/tests/closeSurface.js +25 -3
- package/dist/core/tests/closeSurface.js.map +1 -1
- package/dist/core/tests/ffmpegRecorder.d.ts +1 -7
- package/dist/core/tests/ffmpegRecorder.d.ts.map +1 -1
- package/dist/core/tests/ffmpegRecorder.js +5 -22
- package/dist/core/tests/ffmpegRecorder.js.map +1 -1
- package/dist/core/tests/findElement.d.ts.map +1 -1
- package/dist/core/tests/findElement.js +27 -5
- package/dist/core/tests/findElement.js.map +1 -1
- package/dist/core/tests/processSurface.d.ts +22 -0
- package/dist/core/tests/processSurface.d.ts.map +1 -0
- package/dist/core/tests/processSurface.js +105 -0
- package/dist/core/tests/processSurface.js.map +1 -0
- package/dist/core/tests/runShell.d.ts.map +1 -1
- package/dist/core/tests/runShell.js +23 -94
- package/dist/core/tests/runShell.js.map +1 -1
- package/dist/core/tests/saveScreenshot.d.ts.map +1 -1
- package/dist/core/tests/saveScreenshot.js +27 -6
- package/dist/core/tests/saveScreenshot.js.map +1 -1
- package/dist/core/tests/startRecording.d.ts.map +1 -1
- package/dist/core/tests/startRecording.js +29 -14
- package/dist/core/tests/startRecording.js.map +1 -1
- package/dist/core/tests/startSurface.d.ts +17 -0
- package/dist/core/tests/startSurface.d.ts.map +1 -0
- package/dist/core/tests/startSurface.js +275 -0
- package/dist/core/tests/startSurface.js.map +1 -0
- package/dist/core/tests/swipe.d.ts.map +1 -1
- package/dist/core/tests/swipe.js +30 -5
- package/dist/core/tests/swipe.js.map +1 -1
- package/dist/core/tests/typeKeys.d.ts.map +1 -1
- package/dist/core/tests/typeKeys.js +22 -0
- package/dist/core/tests/typeKeys.js.map +1 -1
- package/dist/core/tests.d.ts +1 -0
- package/dist/core/tests.d.ts.map +1 -1
- package/dist/core/tests.js +61 -32
- package/dist/core/tests.js.map +1 -1
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/utils.js +10 -5
- package/dist/core/utils.js.map +1 -1
- package/dist/index.cjs +17493 -4755
- package/dist/runtime/browserStepKeys.d.ts +22 -0
- package/dist/runtime/browserStepKeys.d.ts.map +1 -1
- package/dist/runtime/browserStepKeys.js +31 -0
- package/dist/runtime/browserStepKeys.js.map +1 -1
- package/dist/runtime/inferRuntimeNeeds.d.ts.map +1 -1
- package/dist/runtime/inferRuntimeNeeds.js +23 -3
- package/dist/runtime/inferRuntimeNeeds.js.map +1 -1
- package/package.json +1 -1
package/dist/core/tests.js
CHANGED
|
@@ -11,7 +11,7 @@ import fs from "node:fs";
|
|
|
11
11
|
import { loadHeavyDep, resolveHeavyDepPath } from "../runtime/loader.js";
|
|
12
12
|
import { requiredBrowserAssets, ensureBrowserInstalled, } from "../runtime/browsers.js";
|
|
13
13
|
// Single source of truth for browser/driver-requiring step keys.
|
|
14
|
-
import { BROWSER_STEP_KEYS as driverActions } from "../runtime/browserStepKeys.js";
|
|
14
|
+
import { BROWSER_STEP_KEYS as driverActions, startSurfaceDescriptors, stepOpensBrowserSurface, } from "../runtime/browserStepKeys.js";
|
|
15
15
|
import os from "node:os";
|
|
16
16
|
import { log, replaceEnvs, selectSpecsForRun, findFreePort, runConcurrent, runResourceAware, createResourceRegistry, rollUpResults, createAppiumPool, getRunOutputDir, runArchivesArtifacts, sanitizeFilesystemName, evaluateContextRequirements, isRetryableSessionError, } from "./utils.js";
|
|
17
17
|
import axios from "axios";
|
|
@@ -34,7 +34,8 @@ import { httpRequest } from "./tests/httpRequest.js";
|
|
|
34
34
|
import { clickElement } from "./tests/click.js";
|
|
35
35
|
import { runCode } from "./tests/runCode.js";
|
|
36
36
|
import { closeSurface } from "./tests/closeSurface.js";
|
|
37
|
-
import { createAppSessionState, appSurfacePreflight, isAppDriverRequired, stepTargetsAppSurface,
|
|
37
|
+
import { createAppSessionState, appSurfacePreflight, isAppDriverRequired, stepTargetsAppSurface, teardownAppSession, } from "./tests/appSurface.js";
|
|
38
|
+
import { startSurfaceStep } from "./tests/startSurface.js";
|
|
38
39
|
import { isMobileTargetPlatform } from "./tests/mobilePlatform.js";
|
|
39
40
|
import { mobileBrowserGate, buildMobileBrowserCapabilities, } from "./tests/mobileBrowser.js";
|
|
40
41
|
import { getCacheDir } from "../runtime/cacheDir.js";
|
|
@@ -300,6 +301,10 @@ function isDriverRequired({ test }) {
|
|
|
300
301
|
if (typeof step[action] !== "undefined")
|
|
301
302
|
driverRequired = true;
|
|
302
303
|
});
|
|
304
|
+
// A startSurface browser descriptor opens a WebDriver session (Phase 6);
|
|
305
|
+
// app/process descriptors provision their own runtimes and don't count.
|
|
306
|
+
if (stepOpensBrowserSurface(step))
|
|
307
|
+
driverRequired = true;
|
|
303
308
|
});
|
|
304
309
|
return driverRequired;
|
|
305
310
|
}
|
|
@@ -446,8 +451,11 @@ function isBrowserRequired({ test }) {
|
|
|
446
451
|
if (!Array.isArray(test?.steps))
|
|
447
452
|
return false;
|
|
448
453
|
return test.steps.some((step) => !step?.__autoRecord &&
|
|
449
|
-
driverActions.some((action) => typeof step[action] !== "undefined") &&
|
|
450
|
-
|
|
454
|
+
((driverActions.some((action) => typeof step[action] !== "undefined") &&
|
|
455
|
+
!stepTargetsAppSurface(step)) ||
|
|
456
|
+
// Phase 6: `startSurface: { browser: … }` opens a browser session
|
|
457
|
+
// (the goTo-opener sibling); app/process descriptors don't.
|
|
458
|
+
stepOpensBrowserSurface(step)));
|
|
451
459
|
}
|
|
452
460
|
// Size the browser Appium server pool: the number of concurrent runner jobs
|
|
453
461
|
// that will actually create a BROWSER session. App-only jobs are excluded —
|
|
@@ -478,14 +486,19 @@ function contextRequirementsSkipMessage({ context, deps, }) {
|
|
|
478
486
|
return null;
|
|
479
487
|
return `Skipping context on '${context.platform}': unmet requirements — ${missing.join(", ")}.`;
|
|
480
488
|
}
|
|
481
|
-
// The device descriptors a test needs: each startSurface's
|
|
482
|
-
// when it omits one — the context default / auto device)
|
|
483
|
-
//
|
|
484
|
-
|
|
489
|
+
// The device descriptors a test needs: each APP startSurface descriptor's
|
|
490
|
+
// `device` (undefined when it omits one — the context default / auto device),
|
|
491
|
+
// across both the object form and the Phase 6 parallel array form. Browser /
|
|
492
|
+
// process descriptors boot no device and contribute nothing. At least one
|
|
493
|
+
// entry so a test with no explicit device still validates the default device.
|
|
494
|
+
// Exported for a focused unit test.
|
|
495
|
+
export function collectDeviceDescriptors(context) {
|
|
485
496
|
const out = [];
|
|
486
497
|
for (const step of context?.steps ?? []) {
|
|
487
|
-
|
|
488
|
-
|
|
498
|
+
for (const d of startSurfaceDescriptors(step)) {
|
|
499
|
+
if (d && typeof d === "object" && typeof d.app === "string")
|
|
500
|
+
out.push(d.device);
|
|
501
|
+
}
|
|
489
502
|
}
|
|
490
503
|
return out.length ? out : [undefined];
|
|
491
504
|
}
|
|
@@ -2956,18 +2969,34 @@ async function runContext({ config, spec, test, context, runnerDetails, appiumPo
|
|
|
2956
2969
|
downloadDir: browserDownloadDir(context.contextId),
|
|
2957
2970
|
};
|
|
2958
2971
|
// Start a session for one engine, headed first then (on failure) headless.
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2972
|
+
// `overrides` carries a startSurface browser descriptor's launch knobs
|
|
2973
|
+
// (Phase 6): explicit headless wins over the context setting, `size`
|
|
2974
|
+
// wins over the context window dimensions, and `driverOptions` merges
|
|
2975
|
+
// into the computed capabilities last (the app branch's escape-hatch
|
|
2976
|
+
// precedent).
|
|
2977
|
+
const startDriverForBrowser = async (browserName, overrides) => {
|
|
2978
|
+
const wantHeadless = overrides?.headless !== undefined
|
|
2979
|
+
? overrides.headless
|
|
2980
|
+
: context.browser?.headless !== false;
|
|
2981
|
+
const buildCaps = (headless) => {
|
|
2982
|
+
const caps = getDriverCapabilities({
|
|
2983
|
+
runnerDetails,
|
|
2984
|
+
name: browserName,
|
|
2985
|
+
options: {
|
|
2986
|
+
width: overrides?.size?.width ||
|
|
2987
|
+
context.browser?.window?.width ||
|
|
2988
|
+
1200,
|
|
2989
|
+
height: overrides?.size?.height ||
|
|
2990
|
+
context.browser?.window?.height ||
|
|
2991
|
+
800,
|
|
2992
|
+
headless,
|
|
2993
|
+
...recordOptions,
|
|
2994
|
+
},
|
|
2995
|
+
});
|
|
2996
|
+
if (overrides?.driverOptions)
|
|
2997
|
+
Object.assign(caps, overrides.driverOptions);
|
|
2998
|
+
return caps;
|
|
2999
|
+
};
|
|
2971
3000
|
const startFailure = () => {
|
|
2972
3001
|
let error = `Failed to start context '${browserName}' on '${platform}'.`;
|
|
2973
3002
|
if (browserName === "safari" || browserName === "webkit") {
|
|
@@ -3102,8 +3131,8 @@ async function runContext({ config, spec, test, context, runnerDetails, appiumPo
|
|
|
3102
3131
|
// stamps driver.state.engine and back-links driver.state.sessionRegistry.
|
|
3103
3132
|
if (driver) {
|
|
3104
3133
|
browserSessions = createSessionRegistry({
|
|
3105
|
-
open: async (engine) => {
|
|
3106
|
-
const res = await startDriverForBrowser(engine);
|
|
3134
|
+
open: async (engine, overrides) => {
|
|
3135
|
+
const res = await startDriverForBrowser(engine, overrides);
|
|
3107
3136
|
if (!res.ok)
|
|
3108
3137
|
throw new Error(res.error);
|
|
3109
3138
|
return res.driver;
|
|
@@ -3781,17 +3810,17 @@ async function runStep({ config = {}, context = {}, step, driver, metaValues = {
|
|
|
3781
3810
|
actionResult = await closeSurface({ config: config, step: step, driver, processRegistry, appSession });
|
|
3782
3811
|
}
|
|
3783
3812
|
else if (typeof step.startSurface !== "undefined") {
|
|
3784
|
-
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
else {
|
|
3791
|
-
actionResult = await startAppSurface({
|
|
3813
|
+
{
|
|
3814
|
+
// Multi-surface Phase 6: startSurfaceStep dispatches app / browser /
|
|
3815
|
+
// process descriptors (and the parallel array form). The app lane
|
|
3816
|
+
// FAILs per descriptor when no app session was preflighted; browser
|
|
3817
|
+
// descriptors ride the context's session registry via `driver`.
|
|
3818
|
+
actionResult = await startSurfaceStep({
|
|
3792
3819
|
config: config,
|
|
3793
3820
|
step: step,
|
|
3794
3821
|
appSession,
|
|
3822
|
+
driver,
|
|
3823
|
+
processRegistry,
|
|
3795
3824
|
platform: context?.platform ?? "",
|
|
3796
3825
|
serverDeps: {
|
|
3797
3826
|
startServer: async (appiumEntry, appiumHome) => {
|