doc-detective 4.6.0-next.1 → 4.6.0-next.11
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 +3 -9
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +7 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/tests/typeKeys.d.ts.map +1 -1
- package/dist/core/tests/typeKeys.js +95 -67
- package/dist/core/tests/typeKeys.js.map +1 -1
- package/dist/core/tests.d.ts +29 -23
- package/dist/core/tests.d.ts.map +1 -1
- package/dist/core/tests.js +116 -16
- package/dist/core/tests.js.map +1 -1
- package/dist/index.cjs +405 -249
- package/dist/runtime/heavyDeps.d.ts +31 -3
- package/dist/runtime/heavyDeps.d.ts.map +1 -1
- package/dist/runtime/heavyDeps.js +49 -12
- package/dist/runtime/heavyDeps.js.map +1 -1
- package/dist/runtime/inferRuntimeNeeds.js +5 -1
- package/dist/runtime/inferRuntimeNeeds.js.map +1 -1
- package/dist/runtime/installOutput.d.ts +3 -0
- package/dist/runtime/installOutput.d.ts.map +1 -0
- package/dist/runtime/installOutput.js +22 -0
- package/dist/runtime/installOutput.js.map +1 -0
- package/dist/runtime/loader.d.ts.map +1 -1
- package/dist/runtime/loader.js +123 -31
- package/dist/runtime/loader.js.map +1 -1
- package/package.json +32 -62
- package/scripts/postinstall.js +144 -9
package/README.md
CHANGED
|
@@ -37,17 +37,11 @@ Doc Detective has multiple components to integrate with your workflows as you ne
|
|
|
37
37
|
|
|
38
38
|
### Lazy-installed runtime
|
|
39
39
|
|
|
40
|
-
`npm i doc-detective` installs the CLI and
|
|
40
|
+
`npm i doc-detective` installs the CLI and then, at postinstall, pre-installs the heavy runtime assets — browsers (Chrome, Firefox), drivers (ChromeDriver, Geckodriver), ffmpeg, and the npm packages that drive them (webdriverio, appium, sharp, etc.) — into `<os.tmpdir()>/doc-detective/` (or `DOC_DETECTIVE_CACHE_DIR`). This keeps a fresh install — and any Docker image built `FROM` it — ready to run without a separate step. The pre-install runs in a child process whose output is captured, so npm's deprecation warnings from the heavy transitive trees never reach your terminal.
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
**Opt out of the heavy pre-install** by setting `DOC_DETECTIVE_AUTOINSTALL=0` (also accepts `false`/`no`/`off`). The CLI install then stays small — no browser download, no heavy npm packages — and the heavy assets install lazily the first time a test needs them instead, or up front via `doc-detective install all`.
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
npm i doc-detective --omit=optional
|
|
46
|
-
# or for CI
|
|
47
|
-
npm ci --omit=optional
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
With `--omit=optional`, the lazy resolver fetches each heavy dep into the cache on first use; without it you still get the speed-of-startup benefits of lazy loading (no `postinstall` browser download) but pay the on-disk cost up front.
|
|
44
|
+
Either way, the heavy packages are never declared in `dependencies` or `optionalDependencies`, so npm itself never fetches them as part of the dependency tree. Their version constraints live in a custom `ddRuntimeDependencies` field that the resolver reads when it installs each dep into the cache — whether at postinstall or on first use.
|
|
51
45
|
|
|
52
46
|
- **Pre-install everything up front:**
|
|
53
47
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,wBAAwB,EAAE,aAAa,EAAE,CAAC;AA2ThG;;;;;;GAMG;AACH,iBAAe,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,wBAAwB,EAAE,aAAa,EAAE,CAAC;AA2ThG;;;;;;GAMG;AACH,iBAAe,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,gBA8LvC;AAED;;;;;;GAMG;AACH,iBAAS,wBAAwB,CAAC,MAAM,EAAE,GAAG,OAO5C;AAyCD,iBAAS,cAAc,QAOtB;AAoBD,iBAAS,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,QAMlC;AAGD,iBAAe,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,kBAyJ9C"}
|
package/dist/core/config.js
CHANGED
|
@@ -473,7 +473,13 @@ async function setConfig({ config }) {
|
|
|
473
473
|
});
|
|
474
474
|
// Detect current environment.
|
|
475
475
|
config.environment = getEnvironment();
|
|
476
|
-
|
|
476
|
+
// Dry runs return the resolved-tests preview without ever executing, and
|
|
477
|
+
// `environment.apps` is only consumed by the runner paths in tests.ts (which
|
|
478
|
+
// re-detect themselves). Skipping the detection avoids the @puppeteer/browsers
|
|
479
|
+
// load, the browser-cache scan, and the unbounded `appium driver list` spawn —
|
|
480
|
+
// the work that pushes dryRun.test.js past its mocha timeout on a starved
|
|
481
|
+
// windows+node22 runner. No effect on resolved output.
|
|
482
|
+
config.environment.apps = config.dryRun ? [] : await getAvailableApps({ config });
|
|
477
483
|
// Resolve concurrent runners configuration
|
|
478
484
|
config.concurrentRunners = resolveConcurrentRunners(config);
|
|
479
485
|
// TODO: Revise loadDescriptions() so it doesn't mutate the input but instead returns an updated object
|
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeKeys.d.ts","sourceRoot":"","sources":["../../../src/core/tests/typeKeys.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"typeKeys.d.ts","sourceRoot":"","sources":["../../../src/core/tests/typeKeys.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,CAAC;AAqFpB,iBAAe,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE;;;GA+IxF"}
|
|
@@ -1,66 +1,77 @@
|
|
|
1
1
|
import { validate } from "../../common/src/validate.js";
|
|
2
|
-
import { Key } from "webdriverio";
|
|
3
2
|
import { findElementByCriteria, } from "./findStrategies.js";
|
|
3
|
+
import { loadHeavyDep } from "../../runtime/loader.js";
|
|
4
4
|
export { typeKeys };
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
5
|
+
let _specialKeyMap = null;
|
|
6
|
+
async function getSpecialKeyMap(ctx = {}) {
|
|
7
|
+
if (_specialKeyMap)
|
|
8
|
+
return _specialKeyMap;
|
|
9
|
+
const wdio = await loadHeavyDep("webdriverio", { ctx });
|
|
10
|
+
const { Key } = wdio;
|
|
11
|
+
_specialKeyMap = {
|
|
12
|
+
$CTRL$: Key.Ctrl,
|
|
13
|
+
$NULL$: Key.NULL,
|
|
14
|
+
$CANCEL$: Key.Cancel,
|
|
15
|
+
$HELP$: Key.Help,
|
|
16
|
+
$BACKSPACE$: Key.Backspace,
|
|
17
|
+
$TAB$: Key.Tab,
|
|
18
|
+
$CLEAR$: Key.Clear,
|
|
19
|
+
$RETURN$: Key.Return,
|
|
20
|
+
$ENTER$: Key.Enter,
|
|
21
|
+
$SHIFT$: Key.Shift,
|
|
22
|
+
$CONTROL$: Key.Control,
|
|
23
|
+
$ALT$: Key.Alt,
|
|
24
|
+
$PAUSE$: Key.Pause,
|
|
25
|
+
$ESCAPE$: Key.Escape,
|
|
26
|
+
$SPACE$: Key.Space,
|
|
27
|
+
$PAGE_UP$: Key.PageUp,
|
|
28
|
+
$PAGE_DOWN$: Key.PageDown,
|
|
29
|
+
$END$: Key.End,
|
|
30
|
+
$HOME$: Key.Home,
|
|
31
|
+
$ARROW_LEFT$: Key.ArrowLeft,
|
|
32
|
+
$ARROW_UP$: Key.ArrowUp,
|
|
33
|
+
$ARROW_RIGHT$: Key.ArrowRight,
|
|
34
|
+
$ARROW_DOWN$: Key.ArrowDown,
|
|
35
|
+
$INSERT$: Key.Insert,
|
|
36
|
+
$DELETE$: Key.Delete,
|
|
37
|
+
$SEMICOLON$: Key.Semicolon,
|
|
38
|
+
$EQUALS$: Key.Equals,
|
|
39
|
+
$NUMPAD_0$: Key.Numpad0,
|
|
40
|
+
$NUMPAD_1$: Key.Numpad1,
|
|
41
|
+
$NUMPAD_2$: Key.Numpad2,
|
|
42
|
+
$NUMPAD_3$: Key.Numpad3,
|
|
43
|
+
$NUMPAD_4$: Key.Numpad4,
|
|
44
|
+
$NUMPAD_5$: Key.Numpad5,
|
|
45
|
+
$NUMPAD_6$: Key.Numpad6,
|
|
46
|
+
$NUMPAD_7$: Key.Numpad7,
|
|
47
|
+
$NUMPAD_8$: Key.Numpad8,
|
|
48
|
+
$NUMPAD_9$: Key.Numpad9,
|
|
49
|
+
$MULTIPLY$: Key.Multiply,
|
|
50
|
+
$ADD$: Key.Add,
|
|
51
|
+
$SEPARATOR$: Key.Separator,
|
|
52
|
+
// `$SUBSTRACT$` is a long-standing misspelling kept for backwards
|
|
53
|
+
// compatibility; `$SUBTRACT$` is the correctly-spelled alias.
|
|
54
|
+
$SUBSTRACT$: Key.Subtract,
|
|
55
|
+
$SUBTRACT$: Key.Subtract,
|
|
56
|
+
$DECIMAL$: Key.Decimal,
|
|
57
|
+
$DIVIDE$: Key.Divide,
|
|
58
|
+
$F1$: Key.F1,
|
|
59
|
+
$F2$: Key.F2,
|
|
60
|
+
$F3$: Key.F3,
|
|
61
|
+
$F4$: Key.F4,
|
|
62
|
+
$F5$: Key.F5,
|
|
63
|
+
$F6$: Key.F6,
|
|
64
|
+
$F7$: Key.F7,
|
|
65
|
+
$F8$: Key.F8,
|
|
66
|
+
$F9$: Key.F9,
|
|
67
|
+
$F10$: Key.F10,
|
|
68
|
+
$F11$: Key.F11,
|
|
69
|
+
$F12$: Key.F12,
|
|
70
|
+
$COMMAND$: Key.Command,
|
|
71
|
+
$ZANKAKU_HANDKAKU$: Key.ZenkakuHankaku,
|
|
72
|
+
};
|
|
73
|
+
return _specialKeyMap;
|
|
74
|
+
}
|
|
64
75
|
// Type a sequence of keys in the active element.
|
|
65
76
|
async function typeKeys({ config, step, driver }) {
|
|
66
77
|
let result = { status: "PASS", description: "Typed keys." };
|
|
@@ -148,14 +159,31 @@ async function typeKeys({ config, step, driver }) {
|
|
|
148
159
|
step.type.keys = keys;
|
|
149
160
|
}
|
|
150
161
|
// Substitute special keys
|
|
151
|
-
// 1. For each key, identify if it
|
|
152
|
-
// 2. If it does, replace it with the corresponding `Key`
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
162
|
+
// 1. For each key, identify if it follows the escape pattern of `$...$`.
|
|
163
|
+
// 2. If it does, replace it with the corresponding `Key` value from `specialKeyMap`.
|
|
164
|
+
// Only load the map (and thus webdriverio) when a sentinel token is actually
|
|
165
|
+
// present — plain-text typing must not pull in the heavy dep or risk a
|
|
166
|
+
// load-time FAIL. Loading webdriverio can throw (e.g. the runtime dep isn't
|
|
167
|
+
// installed yet); return a step-level FAIL rather than aborting the whole run,
|
|
168
|
+
// matching how other heavy-dep-backed steps behave.
|
|
169
|
+
const hasSpecialTokens = step.type.keys.some((key) => key.startsWith("$") && key.endsWith("$"));
|
|
170
|
+
if (hasSpecialTokens) {
|
|
171
|
+
let specialKeyMap;
|
|
172
|
+
try {
|
|
173
|
+
specialKeyMap = await getSpecialKeyMap({ cacheDir: config?.cacheDir });
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
result.status = "FAIL";
|
|
177
|
+
result.description = `Couldn't load key definitions: ${error.message}`;
|
|
178
|
+
return result;
|
|
156
179
|
}
|
|
157
|
-
|
|
158
|
-
|
|
180
|
+
step.type.keys = step.type.keys.map((key) => {
|
|
181
|
+
if (key.startsWith("$") && key.endsWith("$") && specialKeyMap[key]) {
|
|
182
|
+
return specialKeyMap[key];
|
|
183
|
+
}
|
|
184
|
+
return key;
|
|
185
|
+
});
|
|
186
|
+
}
|
|
159
187
|
// Run action
|
|
160
188
|
try {
|
|
161
189
|
if (config.recording) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeKeys.js","sourceRoot":"","sources":["../../../src/core/tests/typeKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"typeKeys.js","sourceRoot":"","sources":["../../../src/core/tests/typeKeys.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tests.d.ts
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
export { runSpecs, runViaApi, getRunner };
|
|
1
|
+
export { runSpecs, runViaApi, getRunner, ensureChromeAvailable, getDriverCapabilities, getDefaultBrowser, isSupportedContext, };
|
|
2
|
+
declare function getDriverCapabilities({ runnerDetails, name, options }: {
|
|
3
|
+
runnerDetails: any;
|
|
4
|
+
name: any;
|
|
5
|
+
options: any;
|
|
6
|
+
}): any;
|
|
7
|
+
declare function isSupportedContext({ context, apps, platform }: {
|
|
8
|
+
context: any;
|
|
9
|
+
apps: any[];
|
|
10
|
+
platform: any;
|
|
11
|
+
}): boolean;
|
|
12
|
+
declare function getDefaultBrowser({ runnerDetails }: {
|
|
13
|
+
runnerDetails: any;
|
|
14
|
+
}): any;
|
|
2
15
|
declare function runViaApi({ resolvedTests, apiKey, config }: {
|
|
3
16
|
resolvedTests: any;
|
|
4
17
|
apiKey: any;
|
|
@@ -32,30 +45,23 @@ declare function runStep({ config, context, step, driver, metaValues, options, }
|
|
|
32
45
|
options?: any;
|
|
33
46
|
}): Promise<any>;
|
|
34
47
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
48
|
+
* Resolve the available-apps list with Chrome guaranteed present, lazy-
|
|
49
|
+
* installing the browser runtime on a miss before giving up. This is the
|
|
50
|
+
* runtime counterpart to the runTests pre-flight: it runs regardless of
|
|
51
|
+
* DOC_DETECTIVE_AUTOINSTALL (that env var only governs the *eager* postinstall
|
|
52
|
+
* download — first use should still self-provision). A provisioning failure
|
|
53
|
+
* (e.g. offline) is swallowed so the caller sees the clear "not available"
|
|
54
|
+
* error rather than a raw npm/network stack. Deps are injected for testing.
|
|
37
55
|
*
|
|
38
|
-
* @
|
|
39
|
-
* @
|
|
40
|
-
* @param {number} [options.width=1200] - Browser window width in pixels.
|
|
41
|
-
* @param {number} [options.height=800] - Browser window height in pixels.
|
|
42
|
-
* @param {boolean} [options.headless=true] - Whether to run browser in headless mode.
|
|
43
|
-
* @returns {Promise<Object>} Object containing:
|
|
44
|
-
* - runner: WebDriver instance for browser automation
|
|
45
|
-
* - appium: Appium server process (advanced use; prefer cleanup() for termination)
|
|
46
|
-
* - cleanup: Async function to properly cleanup driver and Appium server
|
|
47
|
-
* - runStep: Function to execute Doc Detective test steps
|
|
48
|
-
* @throws {Error} If Chrome is not available or driver initialization fails
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* const { runner, cleanup } = await getRunner({ headless: false });
|
|
52
|
-
* try {
|
|
53
|
-
* await runner.url('https://example.com');
|
|
54
|
-
* // ... perform automation tasks
|
|
55
|
-
* } finally {
|
|
56
|
-
* await cleanup();
|
|
57
|
-
* }
|
|
56
|
+
* @returns the available-apps array, with a chrome entry present.
|
|
57
|
+
* @throws if chrome is still unavailable after a provisioning attempt.
|
|
58
58
|
*/
|
|
59
|
+
declare function ensureChromeAvailable(config: any, deps: {
|
|
60
|
+
detect: (config: any) => Promise<any[]>;
|
|
61
|
+
provision: (config: any) => Promise<void>;
|
|
62
|
+
invalidate: (config: any) => void;
|
|
63
|
+
log?: (config: any, level: string, msg: string) => void;
|
|
64
|
+
}): Promise<any[]>;
|
|
59
65
|
declare function getRunner(options?: any): Promise<{
|
|
60
66
|
runner: any;
|
|
61
67
|
appium: import("node:child_process").ChildProcessWithoutNullStreams;
|
package/dist/core/tests.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../src/core/tests.ts"],"names":[],"mappings":"AAyCA,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../src/core/tests.ts"],"names":[],"mappings":"AAyCA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC;AAwBF,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,CAwGrH;AA8BD,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;;;;;;;;;;;;;;;GAeG;AACH,iBAAe,QAAQ,CAAC,EAAE,aAAa,EAAE,EAAE;IAAE,aAAa,EAAE,GAAG,CAAA;CAAE,gBAsiBhE;AAGD,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,CAuGf;AA8GD;;;;;;;;;;;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,iBAAe,SAAS,CAAC,OAAO,GAAE,GAAQ;;;;;GAoHzC"}
|
package/dist/core/tests.js
CHANGED
|
@@ -31,13 +31,13 @@ import { spawn } from "node:child_process";
|
|
|
31
31
|
import { randomUUID } from "node:crypto";
|
|
32
32
|
import { setAppiumHome } from "./appium.js";
|
|
33
33
|
import { resolveExpression } from "./expressions.js";
|
|
34
|
-
import { getEnvironment, getAvailableApps } from "./config.js";
|
|
34
|
+
import { getEnvironment, getAvailableApps, clearAppCache } from "./config.js";
|
|
35
35
|
import { uploadChangedFiles } from "./integrations/index.js";
|
|
36
36
|
import http from "node:http";
|
|
37
37
|
import https from "node:https";
|
|
38
38
|
import { fileURLToPath } from "node:url";
|
|
39
39
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
40
|
-
export { runSpecs, runViaApi, getRunner };
|
|
40
|
+
export { runSpecs, runViaApi, getRunner, ensureChromeAvailable, getDriverCapabilities, getDefaultBrowser, isSupportedContext, };
|
|
41
41
|
// exports.appiumStart = appiumStart;
|
|
42
42
|
// exports.appiumIsReady = appiumIsReady;
|
|
43
43
|
// exports.driverStart = driverStart;
|
|
@@ -54,10 +54,21 @@ const driverActions = [
|
|
|
54
54
|
"screenshot",
|
|
55
55
|
"type",
|
|
56
56
|
];
|
|
57
|
+
// Browser names getDriverCapabilities knows how to build caps for. `safari` is
|
|
58
|
+
// rewritten to `webkit` during context resolution, so both appear here.
|
|
59
|
+
const KNOWN_BROWSERS = ["firefox", "chrome", "safari", "webkit"];
|
|
57
60
|
// Get Appium driver capabilities and apply options.
|
|
58
61
|
function getDriverCapabilities({ runnerDetails, name, options }) {
|
|
59
62
|
let capabilities = {};
|
|
60
63
|
let args = [];
|
|
64
|
+
// Fail loudly on an unknown or missing browser name instead of silently
|
|
65
|
+
// returning empty capabilities. Empty caps used to surface downstream as the
|
|
66
|
+
// cryptic "Failed to start context 'undefined'" driver error, hiding the real
|
|
67
|
+
// problem (no browser was ever resolved for the context).
|
|
68
|
+
if (!name || !KNOWN_BROWSERS.includes(name)) {
|
|
69
|
+
throw new Error(`Cannot build driver capabilities: unknown or missing browser name '${name}'. ` +
|
|
70
|
+
`Expected one of: ${KNOWN_BROWSERS.join(", ")}.`);
|
|
71
|
+
}
|
|
61
72
|
// Set Firefox capabilities
|
|
62
73
|
switch (name) {
|
|
63
74
|
case "firefox": {
|
|
@@ -89,6 +100,9 @@ function getDriverCapabilities({ runnerDetails, name, options }) {
|
|
|
89
100
|
break;
|
|
90
101
|
}
|
|
91
102
|
case "safari":
|
|
103
|
+
// `safari` is rewritten to `webkit` during context resolution, so the
|
|
104
|
+
// runtime browser name is usually `webkit`. Both map to Safari.
|
|
105
|
+
case "webkit":
|
|
92
106
|
// Set Safari capabilities
|
|
93
107
|
if (runnerDetails.availableApps.find((app) => app.name === "safari")) {
|
|
94
108
|
let safari = runnerDetails.availableApps.find((app) => app.name === "safari");
|
|
@@ -175,15 +189,25 @@ function isSupportedContext({ context, apps, platform }) {
|
|
|
175
189
|
let isSupportedApp = true;
|
|
176
190
|
// Check platform
|
|
177
191
|
const isSupportedPlatform = context.platform === platform;
|
|
178
|
-
if (context?.browser?.name)
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
192
|
+
if (context?.browser?.name) {
|
|
193
|
+
// `safari` is normalized to `webkit` during context resolution, but
|
|
194
|
+
// getAvailableApps reports Safari as `safari`. Map it back so a Safari
|
|
195
|
+
// context isn't wrongly treated as unsupported (which would skip it before
|
|
196
|
+
// getDriverCapabilities could apply the same alias).
|
|
197
|
+
const appName = context.browser.name === "webkit" ? "safari" : context.browser.name;
|
|
198
|
+
isSupportedApp = apps.find((app) => app.name === appName);
|
|
183
199
|
}
|
|
184
|
-
else {
|
|
185
|
-
|
|
200
|
+
else if (Array.isArray(context?.steps) && isDriverRequired({ test: context })) {
|
|
201
|
+
// A context that needs a browser driver but has no resolvable browser name
|
|
202
|
+
// can't run. Treat it as unsupported so it's cleanly skipped rather than
|
|
203
|
+
// failing later with "Failed to start context 'undefined'". The
|
|
204
|
+
// Array.isArray(steps) guard keeps isDriverRequired (which iterates steps)
|
|
205
|
+
// from throwing on a steps-less context; such a context does no driver work
|
|
206
|
+
// anyway, so leaving it supported here is harmless.
|
|
207
|
+
isSupportedApp = false;
|
|
186
208
|
}
|
|
209
|
+
// Return boolean
|
|
210
|
+
return Boolean(isSupportedApp && isSupportedPlatform);
|
|
187
211
|
}
|
|
188
212
|
function getDefaultBrowser({ runnerDetails }) {
|
|
189
213
|
let browser = {};
|
|
@@ -533,6 +557,22 @@ async function runSpecs({ resolvedTests }) {
|
|
|
533
557
|
};
|
|
534
558
|
// Set meta values
|
|
535
559
|
metaValues.specs[spec.specId].tests[test.testId].contexts[context.contextId] = { steps: {} };
|
|
560
|
+
// If a driver is required but no browser could be resolved (e.g.
|
|
561
|
+
// getDefaultBrowser found nothing installed, or the context supplied a
|
|
562
|
+
// browser object with no name), skip with an explicit reason instead of
|
|
563
|
+
// letting it fail later as "Failed to start context 'undefined'".
|
|
564
|
+
if (isDriverRequired({ test: context }) && !context.browser?.name) {
|
|
565
|
+
const errorMessage = `Skipping context on '${context.platform}': no supported browser is available in the current environment.`;
|
|
566
|
+
log(config, "warning", errorMessage);
|
|
567
|
+
contextReport = {
|
|
568
|
+
...contextReport,
|
|
569
|
+
result: "SKIPPED",
|
|
570
|
+
resultDescription: errorMessage,
|
|
571
|
+
};
|
|
572
|
+
report.summary.contexts.skipped++;
|
|
573
|
+
testReport.contexts.push(contextReport);
|
|
574
|
+
continue;
|
|
575
|
+
}
|
|
536
576
|
// Check if current environment supports given contexts
|
|
537
577
|
const supportedContext = isSupportedContext({
|
|
538
578
|
context: context,
|
|
@@ -1008,22 +1048,82 @@ async function driverStart(capabilities, port, maxAttempts = 4, ctx = {}) {
|
|
|
1008
1048
|
* await cleanup();
|
|
1009
1049
|
* }
|
|
1010
1050
|
*/
|
|
1051
|
+
/**
|
|
1052
|
+
* Lazy-install the heavy npm runtime + browser binaries needed to drive
|
|
1053
|
+
* Chrome into the doc-detective cache. Mirrors the npm/browser set that
|
|
1054
|
+
* inferRuntimeNeeds() derives for a chrome browser step, and the
|
|
1055
|
+
* ensureBrowserInstalled calls the runTests pre-flight makes. Heavy deps are
|
|
1056
|
+
* imported dynamically so a pure HTTP/CLI consumer never loads them.
|
|
1057
|
+
*/
|
|
1058
|
+
async function provisionChromeRuntime(config) {
|
|
1059
|
+
const { ensureRuntimeInstalled } = await import("../runtime/loader.js");
|
|
1060
|
+
const { ensureBrowserInstalled } = await import("../runtime/browsers.js");
|
|
1061
|
+
const ctx = { cacheDir: config?.cacheDir };
|
|
1062
|
+
// Bridge runtime modules' (msg, level) logger to core/utils.ts#log, mapping
|
|
1063
|
+
// "warn" → "warning" the same way the runTests pre-flight does.
|
|
1064
|
+
const logger = (msg, level = "info") => log(config, level === "warn" ? "warning" : level, msg);
|
|
1065
|
+
await ensureRuntimeInstalled(["webdriverio", "appium", "@puppeteer/browsers", "appium-chromium-driver"], { ctx, deps: { logger } });
|
|
1066
|
+
await ensureBrowserInstalled("chrome", { ctx, deps: { logger } });
|
|
1067
|
+
await ensureBrowserInstalled("chromedriver", { ctx, deps: { logger } });
|
|
1068
|
+
}
|
|
1069
|
+
/**
|
|
1070
|
+
* Resolve the available-apps list with Chrome guaranteed present, lazy-
|
|
1071
|
+
* installing the browser runtime on a miss before giving up. This is the
|
|
1072
|
+
* runtime counterpart to the runTests pre-flight: it runs regardless of
|
|
1073
|
+
* DOC_DETECTIVE_AUTOINSTALL (that env var only governs the *eager* postinstall
|
|
1074
|
+
* download — first use should still self-provision). A provisioning failure
|
|
1075
|
+
* (e.g. offline) is swallowed so the caller sees the clear "not available"
|
|
1076
|
+
* error rather than a raw npm/network stack. Deps are injected for testing.
|
|
1077
|
+
*
|
|
1078
|
+
* @returns the available-apps array, with a chrome entry present.
|
|
1079
|
+
* @throws if chrome is still unavailable after a provisioning attempt.
|
|
1080
|
+
*/
|
|
1081
|
+
async function ensureChromeAvailable(config, deps) {
|
|
1082
|
+
let availableApps = await deps.detect(config);
|
|
1083
|
+
if (availableApps.some((app) => app.name === "chrome")) {
|
|
1084
|
+
return availableApps;
|
|
1085
|
+
}
|
|
1086
|
+
// Chrome not detected — attempt to provision it, then re-detect.
|
|
1087
|
+
deps.log?.(config, "info", "Chrome not detected; installing browser runtime (note: DOC_DETECTIVE_AUTOINSTALL=0 only suppresses the eager postinstall, not this first-use install)…");
|
|
1088
|
+
try {
|
|
1089
|
+
await deps.provision(config);
|
|
1090
|
+
}
|
|
1091
|
+
catch (err) {
|
|
1092
|
+
deps.log?.(config, "warning", `Browser runtime auto-install failed: ${err?.message ?? err}`);
|
|
1093
|
+
}
|
|
1094
|
+
finally {
|
|
1095
|
+
// Always drop the memoized "no chrome" entry so the re-detect below is a
|
|
1096
|
+
// real re-scan: provisioning installs several assets and may have
|
|
1097
|
+
// partially succeeded even if it ultimately threw, so the cached empty
|
|
1098
|
+
// snapshot can't be trusted on either path. In `finally` (not the try
|
|
1099
|
+
// body) so a bug in `invalidate` surfaces on its own rather than being
|
|
1100
|
+
// mislabeled as a provisioning failure.
|
|
1101
|
+
deps.invalidate(config);
|
|
1102
|
+
}
|
|
1103
|
+
availableApps = await deps.detect(config);
|
|
1104
|
+
if (!availableApps.some((app) => app.name === "chrome")) {
|
|
1105
|
+
throw new Error("Chrome browser is not available. Please ensure Chrome is installed and accessible.");
|
|
1106
|
+
}
|
|
1107
|
+
return availableApps;
|
|
1108
|
+
}
|
|
1011
1109
|
async function getRunner(options = {}) {
|
|
1012
1110
|
const environment = getEnvironment();
|
|
1013
1111
|
const config = { ...options.config, environment };
|
|
1014
1112
|
const width = options.width || 1200;
|
|
1015
1113
|
const height = options.height || 800;
|
|
1016
1114
|
const headless = options.headless !== false;
|
|
1017
|
-
// Get runner details
|
|
1115
|
+
// Get runner details, self-provisioning Chrome on a miss (see
|
|
1116
|
+
// ensureChromeAvailable) so a runner started without a pre-warmed cache
|
|
1117
|
+
// installs what it needs instead of failing.
|
|
1018
1118
|
const runnerDetails = {
|
|
1019
1119
|
environment,
|
|
1020
|
-
availableApps: await
|
|
1120
|
+
availableApps: await ensureChromeAvailable(config, {
|
|
1121
|
+
detect: (c) => getAvailableApps({ config: c }),
|
|
1122
|
+
provision: provisionChromeRuntime,
|
|
1123
|
+
invalidate: clearAppCache,
|
|
1124
|
+
log,
|
|
1125
|
+
}),
|
|
1021
1126
|
};
|
|
1022
|
-
// Check if Chrome is available
|
|
1023
|
-
const chrome = runnerDetails.availableApps.find((app) => app.name === "chrome");
|
|
1024
|
-
if (!chrome) {
|
|
1025
|
-
throw new Error("Chrome browser is not available. Please ensure Chrome is installed and accessible.");
|
|
1026
|
-
}
|
|
1027
1127
|
// Set Appium home directory
|
|
1028
1128
|
setAppiumHome({ cacheDir: config?.cacheDir });
|
|
1029
1129
|
// Start Appium server on a free ephemeral port. Same `node <entry>`
|