doc-detective 4.5.0 → 4.6.0-next.4
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 +42 -0
- package/dist/cli.js +37 -1
- package/dist/cli.js.map +1 -1
- package/dist/common/src/schemas/schemas.json +22 -0
- package/dist/common/src/types/generated/config_v3.d.ts +8 -0
- package/dist/common/src/types/generated/config_v3.d.ts.map +1 -1
- package/dist/common/src/types/generated/resolvedTests_v3.d.ts +8 -0
- package/dist/common/src/types/generated/resolvedTests_v3.d.ts.map +1 -1
- package/dist/core/appium.d.ts +3 -1
- package/dist/core/appium.d.ts.map +1 -1
- package/dist/core/appium.js +11 -3
- package/dist/core/appium.js.map +1 -1
- package/dist/core/config.d.ts +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +98 -12
- package/dist/core/config.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +85 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/tests/saveScreenshot.d.ts.map +1 -1
- package/dist/core/tests/saveScreenshot.js +62 -9
- package/dist/core/tests/saveScreenshot.js.map +1 -1
- package/dist/core/tests/stopRecording.d.ts.map +1 -1
- package/dist/core/tests/stopRecording.js +19 -2
- package/dist/core/tests/stopRecording.js.map +1 -1
- package/dist/core/tests.d.ts.map +1 -1
- package/dist/core/tests.js +67 -16
- package/dist/core/tests.js.map +1 -1
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/utils.js +25 -5
- package/dist/core/utils.js.map +1 -1
- package/dist/index.cjs +115068 -113989
- package/dist/runtime/browsers.d.ts +64 -0
- package/dist/runtime/browsers.d.ts.map +1 -0
- package/dist/runtime/browsers.js +311 -0
- package/dist/runtime/browsers.js.map +1 -0
- package/dist/runtime/cacheDir.d.ts +45 -0
- package/dist/runtime/cacheDir.d.ts.map +1 -0
- package/dist/runtime/cacheDir.js +207 -0
- package/dist/runtime/cacheDir.js.map +1 -0
- package/dist/runtime/heavyDeps.d.ts +55 -0
- package/dist/runtime/heavyDeps.d.ts.map +1 -0
- package/dist/runtime/heavyDeps.js +147 -0
- package/dist/runtime/heavyDeps.js.map +1 -0
- package/dist/runtime/inferRuntimeNeeds.d.ts +16 -0
- package/dist/runtime/inferRuntimeNeeds.d.ts.map +1 -0
- package/dist/runtime/inferRuntimeNeeds.js +141 -0
- package/dist/runtime/inferRuntimeNeeds.js.map +1 -0
- package/dist/runtime/installCommand.d.ts +21 -0
- package/dist/runtime/installCommand.d.ts.map +1 -0
- package/dist/runtime/installCommand.js +201 -0
- package/dist/runtime/installCommand.js.map +1 -0
- package/dist/runtime/installer.d.ts +61 -0
- package/dist/runtime/installer.d.ts.map +1 -0
- package/dist/runtime/installer.js +175 -0
- package/dist/runtime/installer.js.map +1 -0
- package/dist/runtime/loader.d.ts +54 -0
- package/dist/runtime/loader.d.ts.map +1 -0
- package/dist/runtime/loader.js +246 -0
- package/dist/runtime/loader.js.map +1 -0
- package/dist/runtime/selfUpdate.d.ts +60 -0
- package/dist/runtime/selfUpdate.d.ts.map +1 -0
- package/dist/runtime/selfUpdate.js +222 -0
- package/dist/runtime/selfUpdate.js.map +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +22 -0
- package/dist/utils.js.map +1 -1
- package/package.json +18 -47
- package/scripts/postinstall.js +7 -89
- package/dist/checkDependencies.d.ts +0 -2
- package/dist/checkDependencies.d.ts.map +0 -1
- package/dist/checkDependencies.js +0 -72
- package/dist/checkDependencies.js.map +0 -1
package/dist/core/index.js
CHANGED
|
@@ -61,7 +61,9 @@ async function runTests(config, options = {}) {
|
|
|
61
61
|
if (!resolvedTests) {
|
|
62
62
|
resolvedTests = await detectAndResolveTests({ config });
|
|
63
63
|
if (!resolvedTests || resolvedTests.specs.length === 0) {
|
|
64
|
-
log(
|
|
64
|
+
// log() in src/core/utils.ts recognizes "warning", not "warn" —
|
|
65
|
+
// see the matching note in the JIT pre-flight catch below.
|
|
66
|
+
log(config, "warning", "Couldn't resolve any tests.");
|
|
65
67
|
return null;
|
|
66
68
|
}
|
|
67
69
|
}
|
|
@@ -73,6 +75,88 @@ async function runTests(config, options = {}) {
|
|
|
73
75
|
});
|
|
74
76
|
return resolvedTests;
|
|
75
77
|
}
|
|
78
|
+
// Just-in-time install: inspect the resolved specs to learn which heavy
|
|
79
|
+
// npm packages and which browser binaries this run will actually use, then
|
|
80
|
+
// install them in one batched step before any test executes. The lazy
|
|
81
|
+
// resolver in src/runtime/loader.js is still defensive for any code path
|
|
82
|
+
// this inference might miss, but the steady-state expectation is that
|
|
83
|
+
// every loadHeavyDep() call below hits the warm-cache fast path.
|
|
84
|
+
//
|
|
85
|
+
// Browser installs are gated by `getAvailableApps()` — if the requested
|
|
86
|
+
// browser is already detectable (e.g., the legacy ./browser-snapshots/
|
|
87
|
+
// pre-warm is still in place), we skip the install entirely.
|
|
88
|
+
//
|
|
89
|
+
// Skipped entirely for API-backed runs: the orchestration API executes
|
|
90
|
+
// tests remotely, so installing browsers/runtime locally would burn
|
|
91
|
+
// network and disk for nothing.
|
|
92
|
+
const willRunViaApi = Boolean(!process.env.DOC_DETECTIVE_API &&
|
|
93
|
+
config.integrations &&
|
|
94
|
+
config.integrations.docDetectiveApi &&
|
|
95
|
+
config.integrations.docDetectiveApi.apiKey);
|
|
96
|
+
if (willRunViaApi) {
|
|
97
|
+
log(config, "debug", "Skipping runtime pre-flight install — run is dispatched via Doc Detective Orchestration API.");
|
|
98
|
+
}
|
|
99
|
+
else
|
|
100
|
+
try {
|
|
101
|
+
const { inferRuntimeNeeds } = await import("../runtime/inferRuntimeNeeds.js");
|
|
102
|
+
const { ensureRuntimeInstalled } = await import("../runtime/loader.js");
|
|
103
|
+
const needs = inferRuntimeNeeds(resolvedTests);
|
|
104
|
+
const ctx = { cacheDir: config.cacheDir };
|
|
105
|
+
// Bridge the runtime modules' logger contract to core/utils.ts:log()
|
|
106
|
+
// so config.logLevel filters npm install stdout/stderr (which the
|
|
107
|
+
// runtime logs at "debug") and prevents flooded output during a
|
|
108
|
+
// routine `doc-detective` run. Map "warn" → "warning" since
|
|
109
|
+
// core/utils.ts uses the latter.
|
|
110
|
+
const preflightLogger = (msg, level = "info") => {
|
|
111
|
+
const mapped = level === "warn" ? "warning" : level;
|
|
112
|
+
log(config, mapped, msg);
|
|
113
|
+
};
|
|
114
|
+
if (needs.npmPackages.size > 0) {
|
|
115
|
+
await ensureRuntimeInstalled([...needs.npmPackages], {
|
|
116
|
+
ctx,
|
|
117
|
+
deps: { logger: preflightLogger },
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
if (needs.browsers.size > 0) {
|
|
121
|
+
try {
|
|
122
|
+
const { getAvailableApps, clearAppCache } = await import("./config.js");
|
|
123
|
+
const { ensureBrowserInstalled } = await import("../runtime/browsers.js");
|
|
124
|
+
const available = await getAvailableApps({ config });
|
|
125
|
+
const availableNames = new Set(available.map((a) => a.name));
|
|
126
|
+
let installedAnything = false;
|
|
127
|
+
for (const browser of needs.browsers) {
|
|
128
|
+
if (availableNames.has(browser))
|
|
129
|
+
continue;
|
|
130
|
+
if (browser === "chrome") {
|
|
131
|
+
await ensureBrowserInstalled("chrome", { ctx, deps: { logger: preflightLogger } });
|
|
132
|
+
await ensureBrowserInstalled("chromedriver", { ctx, deps: { logger: preflightLogger } });
|
|
133
|
+
installedAnything = true;
|
|
134
|
+
}
|
|
135
|
+
else if (browser === "firefox") {
|
|
136
|
+
await ensureBrowserInstalled("firefox", { ctx, deps: { logger: preflightLogger } });
|
|
137
|
+
await ensureBrowserInstalled("geckodriver", { ctx, deps: { logger: preflightLogger } });
|
|
138
|
+
installedAnything = true;
|
|
139
|
+
}
|
|
140
|
+
// safari has no installable binary — it ships with the OS.
|
|
141
|
+
}
|
|
142
|
+
// Invalidate the available-apps cache for this cacheDir so a
|
|
143
|
+
// subsequent runSpecs/getRunner call re-detects what the
|
|
144
|
+
// pre-flight just materialized. Without this, the empty
|
|
145
|
+
// `available` snapshot above would stick and downstream
|
|
146
|
+
// browser-presence checks would still see "not installed."
|
|
147
|
+
if (installedAnything)
|
|
148
|
+
clearAppCache(config);
|
|
149
|
+
}
|
|
150
|
+
catch (browserErr) {
|
|
151
|
+
log(config, "debug", `Browser pre-flight check skipped: ${browserErr?.message ?? browserErr}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
// log() in src/core/utils.ts recognizes "warning", not "warn" — using
|
|
157
|
+
// the wrong key would make this branch silent at every log level.
|
|
158
|
+
log(config, "warning", `Runtime pre-flight install hit an error: ${err?.message ?? err}. Falling back to on-demand resolution.`);
|
|
159
|
+
}
|
|
76
160
|
// If config.integrations.docDetectiveApi.apiKey is set, run tests via API instead of locally
|
|
77
161
|
if (!process.env.DOC_DETECTIVE_API && config.integrations && config.integrations.docDetectiveApi && config.integrations.docDetectiveApi.apiKey) {
|
|
78
162
|
// Run test specs via API
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AAEzG,MAAM,cAAc,GAAG;;;;;;2EAMoD,CAAC;AAE5E;;;;;;;;GAQG;AACH,KAAK,UAAU,qBAAqB,CAAC,EAAE,MAAM,EAAO;IAClD,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACrC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACpE,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,sEAAsE;AACtE,KAAK,UAAU,QAAQ,CAAC,MAAW,EAAE,UAAe,EAAE;IACpD,IAAI,aAAkB,CAAC;IACvB,IAAI,OAAY,CAAC;IAEjB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QACtC,sEAAsE;QACtE,wEAAwE;QACxE,oEAAoE;QACpE,sEAAsE;QACtE,wCAAwC;QACxC,MAAM,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAChE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;IAChC,CAAC;IAED,sEAAsE;IACtE,0EAA0E;IAC1E,0EAA0E;IAC1E,oDAAoD;IACpD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,IAAI,aAAa;YAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,MAAM,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,qBAAqB,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AAEzG,MAAM,cAAc,GAAG;;;;;;2EAMoD,CAAC;AAE5E;;;;;;;;GAQG;AACH,KAAK,UAAU,qBAAqB,CAAC,EAAE,MAAM,EAAO;IAClD,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACrC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACpE,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,sEAAsE;AACtE,KAAK,UAAU,QAAQ,CAAC,MAAW,EAAE,UAAe,EAAE;IACpD,IAAI,aAAkB,CAAC;IACvB,IAAI,OAAY,CAAC;IAEjB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QACtC,sEAAsE;QACtE,wEAAwE;QACxE,oEAAoE;QACpE,sEAAsE;QACtE,wCAAwC;QACxC,MAAM,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAChE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;IAChC,CAAC;IAED,sEAAsE;IACtE,0EAA0E;IAC1E,0EAA0E;IAC1E,oDAAoD;IACpD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,IAAI,aAAa;YAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,MAAM,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,gEAAgE;YAChE,2DAA2D;YAC3D,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,6BAA6B,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpD,SAAS,EAAE,CAAC;QACZ,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE;YACvC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM;SAClC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,wEAAwE;IACxE,2EAA2E;IAC3E,sEAAsE;IACtE,yEAAyE;IACzE,sEAAsE;IACtE,iEAAiE;IACjE,EAAE;IACF,wEAAwE;IACxE,uEAAuE;IACvE,6DAA6D;IAC7D,EAAE;IACF,uEAAuE;IACvE,oEAAoE;IACpE,gCAAgC;IAChC,MAAM,aAAa,GAAG,OAAO,CAC3B,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC5B,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,YAAY,CAAC,eAAe;QACnC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAC7C,CAAC;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,GAAG,CACD,MAAM,EACN,OAAO,EACP,8FAA8F,CAC/F,CAAC;IACJ,CAAC;;QAAM,IAAI,CAAC;YACV,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;YAC9E,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACxE,MAAM,KAAK,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1C,qEAAqE;YACrE,kEAAkE;YAClE,gEAAgE;YAChE,4DAA4D;YAC5D,iCAAiC;YACjC,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,QAAgB,MAAM,EAAE,EAAE;gBAC9D,MAAM,MAAM,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;gBACpD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC;YACF,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,sBAAsB,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE;oBACnD,GAAG;oBACH,IAAI,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;iBAClC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;oBACxE,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;oBAC1E,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;oBACrD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClE,IAAI,iBAAiB,GAAG,KAAK,CAAC;oBAC9B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;wBACrC,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;4BAAE,SAAS;wBAC1C,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACzB,MAAM,sBAAsB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;4BACnF,MAAM,sBAAsB,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;4BACzF,iBAAiB,GAAG,IAAI,CAAC;wBAC3B,CAAC;6BAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;4BACjC,MAAM,sBAAsB,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;4BACpF,MAAM,sBAAsB,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;4BACxF,iBAAiB,GAAG,IAAI,CAAC;wBAC3B,CAAC;wBACD,2DAA2D;oBAC7D,CAAC;oBACD,6DAA6D;oBAC7D,yDAAyD;oBACzD,wDAAwD;oBACxD,wDAAwD;oBACxD,2DAA2D;oBAC3D,IAAI,iBAAiB;wBAAE,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;gBAAC,OAAO,UAAe,EAAE,CAAC;oBACzB,GAAG,CACD,MAAM,EACN,OAAO,EACP,qCAAqC,UAAU,EAAE,OAAO,IAAI,UAAU,EAAE,CACzE,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,sEAAsE;YACtE,kEAAkE;YAClE,GAAG,CACD,MAAM,EACN,SAAS,EACT,4CAA4C,GAAG,EAAE,OAAO,IAAI,GAAG,yCAAyC,CACzG,CAAC;QACJ,CAAC;IAED,6FAA6F;IAC7F,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,eAAe,IAAI,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;QAC/I,yBAAyB;QACzB,OAAO,GAAG,MAAM,SAAS,CAAC;YACxB,aAAa;YACb,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM;SACnD,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,yBAAyB;QACzB,OAAO,GAAG,MAAM,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAChC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,4CAA4C,CAAC,CAAC;IAElE,WAAW;IACX,SAAS,EAAE,CAAC;IAEZ,iBAAiB;IACjB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3C,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IAEpC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saveScreenshot.d.ts","sourceRoot":"","sources":["../../../src/core/tests/saveScreenshot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"saveScreenshot.d.ts","sourceRoot":"","sources":["../../../src/core/tests/saveScreenshot.ts"],"names":[],"mappings":"AAqDA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;AAE5D,KAAK,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAOpE,iBAAS,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAiBnE;AAED,iBAAS,iBAAiB,CACxB,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACpC,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC,OAAO,CAIT;AAED,iBAAe,cAAc,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,gBA2hB9F"}
|
|
@@ -3,15 +3,33 @@ import { findElement } from "./findElement.js";
|
|
|
3
3
|
import { log, fetchFile, getOrInitRunTimestamp, redactUrlForOutput, sanitizeFilesystemName, } from "../utils.js";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import fs from "node:fs";
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
let
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
import { loadHeavyDep } from "../../runtime/loader.js";
|
|
7
|
+
let _pngjs = null;
|
|
8
|
+
let _sharp = null;
|
|
9
|
+
let _pixelmatch = null;
|
|
10
|
+
// Each getter accepts an optional ctx so a user-overridden cacheDir is
|
|
11
|
+
// honored on the first call. Subsequent calls return the memoized module
|
|
12
|
+
// regardless of ctx — the cache dir should be stable within a run, and
|
|
13
|
+
// the JIT pre-flight in runTests() guarantees the install already
|
|
14
|
+
// matched config.cacheDir before any step executes.
|
|
15
|
+
async function getPng(ctx = {}) {
|
|
16
|
+
if (!_pngjs)
|
|
17
|
+
_pngjs = await loadHeavyDep("pngjs", { ctx });
|
|
18
|
+
return _pngjs.PNG;
|
|
19
|
+
}
|
|
20
|
+
async function getSharp(ctx = {}) {
|
|
21
|
+
if (!_sharp) {
|
|
22
|
+
const mod = await loadHeavyDep("sharp", { ctx });
|
|
23
|
+
_sharp = mod && (mod.default ?? mod);
|
|
24
|
+
}
|
|
25
|
+
return _sharp;
|
|
26
|
+
}
|
|
27
|
+
async function getPixelmatch(ctx = {}) {
|
|
28
|
+
if (!_pixelmatch) {
|
|
29
|
+
const mod = await loadHeavyDep("pixelmatch", { ctx });
|
|
30
|
+
_pixelmatch = mod.default ?? mod;
|
|
13
31
|
}
|
|
14
|
-
return
|
|
32
|
+
return _pixelmatch;
|
|
15
33
|
}
|
|
16
34
|
export { saveScreenshot, clampCropRect, aspectRatiosMatch };
|
|
17
35
|
// Shift the rect into image bounds without shrinking. When the rect fits
|
|
@@ -57,6 +75,27 @@ async function saveScreenshot({ config, step, driver }) {
|
|
|
57
75
|
},
|
|
58
76
|
};
|
|
59
77
|
let element;
|
|
78
|
+
// Lazy-load heavy deps once per saveScreenshot invocation; ensureRuntime
|
|
79
|
+
// already materialized them ahead of step execution. The ctx threads
|
|
80
|
+
// through so a user-overridden cacheDir resolves from the same location
|
|
81
|
+
// the JIT pre-flight installer used.
|
|
82
|
+
//
|
|
83
|
+
// Surface lazy-load failures as a step-level FAIL rather than letting
|
|
84
|
+
// them escape and abort the whole run. A broken runtime cache (the
|
|
85
|
+
// user wiped <cacheDir>/runtime by hand, or npm failed mid-install)
|
|
86
|
+
// should produce a clean failed screenshot report, not a fatal.
|
|
87
|
+
const loadCtx = { cacheDir: config?.cacheDir };
|
|
88
|
+
let sharp;
|
|
89
|
+
let PNG;
|
|
90
|
+
try {
|
|
91
|
+
sharp = await getSharp(loadCtx);
|
|
92
|
+
PNG = await getPng(loadCtx);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
result.status = "FAIL";
|
|
96
|
+
result.description = `Couldn't load screenshot runtime dependencies. ${error?.message ?? error}`;
|
|
97
|
+
return result;
|
|
98
|
+
}
|
|
60
99
|
// Validate step payload
|
|
61
100
|
const isValidStep = validate({ schemaKey: "step_v3", object: step });
|
|
62
101
|
if (!isValidStep.valid) {
|
|
@@ -430,7 +469,21 @@ async function saveScreenshot({ config, step, driver }) {
|
|
|
430
469
|
img1.height = height;
|
|
431
470
|
}
|
|
432
471
|
const { width, height } = img1;
|
|
433
|
-
|
|
472
|
+
let pixelmatchFn;
|
|
473
|
+
try {
|
|
474
|
+
pixelmatchFn = await getPixelmatch(loadCtx);
|
|
475
|
+
}
|
|
476
|
+
catch (error) {
|
|
477
|
+
// Treat a broken pixelmatch install as a step-level failure rather
|
|
478
|
+
// than letting it abort the run. Mirrors the earlier sharp/PNG
|
|
479
|
+
// guard at saveScreenshot entry.
|
|
480
|
+
result.status = "FAIL";
|
|
481
|
+
result.description = `Couldn't load screenshot comparison dependency (pixelmatch). ${error?.message ?? error}`;
|
|
482
|
+
if (!isUrlPath && filePath !== existFilePath && fs.existsSync(filePath)) {
|
|
483
|
+
fs.unlinkSync(filePath);
|
|
484
|
+
}
|
|
485
|
+
return result;
|
|
486
|
+
}
|
|
434
487
|
const numDiffPixels = pixelmatchFn(img1.data, img2.data, null, width, height, { threshold: 0.0005 });
|
|
435
488
|
fractionalDiff = numDiffPixels / (width * height);
|
|
436
489
|
log(config, "debug", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saveScreenshot.js","sourceRoot":"","sources":["../../../src/core/tests/saveScreenshot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"saveScreenshot.js","sourceRoot":"","sources":["../../../src/core/tests/saveScreenshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stopRecording.d.ts","sourceRoot":"","sources":["../../../src/core/tests/stopRecording.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stopRecording.d.ts","sourceRoot":"","sources":["../../../src/core/tests/stopRecording.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,iBAAe,aAAa,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,gBAoH7F"}
|
|
@@ -3,8 +3,24 @@ import { log } from "../utils.js";
|
|
|
3
3
|
import { execFile } from "node:child_process";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import fs from "node:fs";
|
|
6
|
-
import
|
|
7
|
-
|
|
6
|
+
import { loadHeavyDep } from "../../runtime/loader.js";
|
|
7
|
+
// Resolve the ffmpeg binary path lazily — @ffmpeg-installer/ffmpeg is a
|
|
8
|
+
// heavy runtime dep that should only be loaded when a stopRecording step
|
|
9
|
+
// actually runs. The ctx is threaded through so a user-overridden
|
|
10
|
+
// cacheDir is honored here just as it is by the JIT pre-flight installer.
|
|
11
|
+
async function getFfmpegPath(ctx = {}) {
|
|
12
|
+
const mod = await loadHeavyDep("@ffmpeg-installer/ffmpeg", { ctx });
|
|
13
|
+
// The package's CJS entry exports an object with a .path field; in ESM
|
|
14
|
+
// dynamic import we get { default: { path }, path? } shape depending on
|
|
15
|
+
// bundler. Try both, then guard before handing it to execFile so a
|
|
16
|
+
// malformed install fails with an actionable message instead of a
|
|
17
|
+
// confusing "argument must be of type string" deep in node's exec.
|
|
18
|
+
const candidate = mod && (mod.path ?? mod.default?.path);
|
|
19
|
+
if (typeof candidate !== "string" || candidate.length === 0) {
|
|
20
|
+
throw new Error("ffmpeg binary path is missing or malformed in the installed @ffmpeg-installer/ffmpeg package. Try `doc-detective install runtime --force` to reinstall.");
|
|
21
|
+
}
|
|
22
|
+
return candidate;
|
|
23
|
+
}
|
|
8
24
|
export { stopRecording };
|
|
9
25
|
async function stopRecording({ config, step, driver }) {
|
|
10
26
|
let result = {
|
|
@@ -80,6 +96,7 @@ async function stopRecording({ config, step, driver }) {
|
|
|
80
96
|
}
|
|
81
97
|
ffmpegArgs.push(targetPath);
|
|
82
98
|
// Await transcoding to complete before returning
|
|
99
|
+
const ffmpegPath = await getFfmpegPath({ cacheDir: config?.cacheDir });
|
|
83
100
|
await new Promise((resolve, reject) => {
|
|
84
101
|
execFile(ffmpegPath, ffmpegArgs)
|
|
85
102
|
.on("close", (code) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stopRecording.js","sourceRoot":"","sources":["../../../src/core/tests/stopRecording.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,MAAM,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"stopRecording.js","sourceRoot":"","sources":["../../../src/core/tests/stopRecording.ts"],"names":[],"mappings":"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"}
|
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":"
|
|
1
|
+
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../src/core/tests.ts"],"names":[],"mappings":"AAyCA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAmN1C,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,gBAqhBhE;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;AA8DD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,iBAAe,SAAS,CAAC,OAAO,GAAE,GAAQ;;;;;GAuHzC"}
|
package/dist/core/tests.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import kill from "tree-kill";
|
|
2
|
-
|
|
2
|
+
// webdriverio is loaded lazily via loadHeavyDep at the driverStart() call
|
|
3
|
+
// site so the shim's CLI startup doesn't pay its ~50MB load cost when the
|
|
4
|
+
// user is only running e.g. install-agents or install status. The type
|
|
5
|
+
// reference uses `typeof import('webdriverio')` directly at the call site
|
|
6
|
+
// so we don't carry a top-level `import type` whose `typeof` would refer
|
|
7
|
+
// to a non-runtime identifier.
|
|
8
|
+
import { loadHeavyDep, resolveHeavyDepPath } from "../runtime/loader.js";
|
|
3
9
|
import os from "node:os";
|
|
4
10
|
import { log, replaceEnvs, selectSpecsForRun, findFreePort } from "./utils.js";
|
|
5
11
|
import axios from "axios";
|
|
@@ -429,11 +435,21 @@ async function runSpecs({ resolvedTests }) {
|
|
|
429
435
|
// Warm up Appium
|
|
430
436
|
let appiumPort;
|
|
431
437
|
if (appiumRequired) {
|
|
432
|
-
setAppiumHome();
|
|
438
|
+
setAppiumHome({ cacheDir: config?.cacheDir });
|
|
433
439
|
appiumPort = await findFreePort();
|
|
434
440
|
log(config, "debug", `Starting Appium on port ${appiumPort}`);
|
|
435
|
-
|
|
436
|
-
|
|
441
|
+
// Resolve appium's actual JS entrypoint via `require.resolve`
|
|
442
|
+
// (shim node_modules first, runtime cache second) and invoke it
|
|
443
|
+
// with `node <entry>`. This sidesteps every shell-injection trap
|
|
444
|
+
// at once: no `.cmd` shim, so no Windows-requires-shell:true; no
|
|
445
|
+
// `npx`, so no PATH lookup; no user-controlled paths in a shell-
|
|
446
|
+
// interpreted string. Works for both `--omit=optional` users
|
|
447
|
+
// (appium in cache only) and default installs (appium in shim).
|
|
448
|
+
const appiumEntry = resolveHeavyDepPath("appium", { cacheDir: config?.cacheDir });
|
|
449
|
+
if (!appiumEntry) {
|
|
450
|
+
throw new Error("appium is not installed. The runtime pre-flight should have installed it; check DOC_DETECTIVE_CACHE_DIR / config.cacheDir or run `doc-detective install runtime appium`.");
|
|
451
|
+
}
|
|
452
|
+
appium = spawn(process.execPath, [appiumEntry, "-a", "127.0.0.1", "-p", String(appiumPort)], {
|
|
437
453
|
windowsHide: true,
|
|
438
454
|
cwd: path.join(__dirname, "../.."),
|
|
439
455
|
});
|
|
@@ -446,7 +462,23 @@ async function runSpecs({ resolvedTests }) {
|
|
|
446
462
|
appium.stderr.on("data", (data) => {
|
|
447
463
|
// console.error(`stderr: ${data}`);
|
|
448
464
|
});
|
|
449
|
-
|
|
465
|
+
try {
|
|
466
|
+
await appiumIsReady(appiumPort);
|
|
467
|
+
}
|
|
468
|
+
catch (error) {
|
|
469
|
+
// appiumIsReady threw or timed out — the spawned child is still
|
|
470
|
+
// alive and would leak (orphan process, port still bound). Tear
|
|
471
|
+
// it down before propagating so subsequent runs don't trip on
|
|
472
|
+
// the stale state.
|
|
473
|
+
try {
|
|
474
|
+
if (appium && appium.pid)
|
|
475
|
+
kill(appium.pid);
|
|
476
|
+
}
|
|
477
|
+
catch {
|
|
478
|
+
// best-effort cleanup; the parent error is what matters
|
|
479
|
+
}
|
|
480
|
+
throw error;
|
|
481
|
+
}
|
|
450
482
|
log(config, "debug", "Appium is ready.");
|
|
451
483
|
}
|
|
452
484
|
// Iterate specs
|
|
@@ -542,7 +574,7 @@ async function runSpecs({ resolvedTests }) {
|
|
|
542
574
|
}
|
|
543
575
|
// Instantiate driver
|
|
544
576
|
try {
|
|
545
|
-
driver = await driverStart(caps, appiumPort);
|
|
577
|
+
driver = await driverStart(caps, appiumPort, 4, { cacheDir: config?.cacheDir });
|
|
546
578
|
}
|
|
547
579
|
catch (error) {
|
|
548
580
|
try {
|
|
@@ -558,7 +590,7 @@ async function runSpecs({ resolvedTests }) {
|
|
|
558
590
|
headless: context.browser?.headless !== false,
|
|
559
591
|
},
|
|
560
592
|
});
|
|
561
|
-
driver = await driverStart(caps, appiumPort);
|
|
593
|
+
driver = await driverStart(caps, appiumPort, 4, { cacheDir: config?.cacheDir });
|
|
562
594
|
}
|
|
563
595
|
catch (error) {
|
|
564
596
|
let errorMessage = `Failed to start context '${context.browser?.name}' on '${platform}'.`;
|
|
@@ -918,11 +950,12 @@ async function appiumIsReady(port, timeoutMs = 120000) {
|
|
|
918
950
|
return isReady;
|
|
919
951
|
}
|
|
920
952
|
// Start the Appium driver specified in `capabilities`.
|
|
921
|
-
async function driverStart(capabilities, port, maxAttempts = 4) {
|
|
953
|
+
async function driverStart(capabilities, port, maxAttempts = 4, ctx = {}) {
|
|
922
954
|
// POST /session can race a just-spawned-or-still-dying Appium on Windows:
|
|
923
955
|
// /status may already return 200 from the outgoing process while /session
|
|
924
956
|
// is no longer accepting. Retry with linear backoff ONLY on ECONNREFUSED --
|
|
925
957
|
// any other error is a real session-creation failure and propagates.
|
|
958
|
+
const wdio = await loadHeavyDep("webdriverio", { ctx });
|
|
926
959
|
let lastError;
|
|
927
960
|
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
928
961
|
try {
|
|
@@ -992,11 +1025,15 @@ async function getRunner(options = {}) {
|
|
|
992
1025
|
throw new Error("Chrome browser is not available. Please ensure Chrome is installed and accessible.");
|
|
993
1026
|
}
|
|
994
1027
|
// Set Appium home directory
|
|
995
|
-
setAppiumHome();
|
|
996
|
-
// Start Appium server on a free ephemeral port
|
|
1028
|
+
setAppiumHome({ cacheDir: config?.cacheDir });
|
|
1029
|
+
// Start Appium server on a free ephemeral port. Same `node <entry>`
|
|
1030
|
+
// pattern as the runSpecs spawn above — see comment there.
|
|
997
1031
|
const appiumPort = await findFreePort();
|
|
998
|
-
const
|
|
999
|
-
|
|
1032
|
+
const appiumEntry = resolveHeavyDepPath("appium", { cacheDir: config?.cacheDir });
|
|
1033
|
+
if (!appiumEntry) {
|
|
1034
|
+
throw new Error("appium is not installed. Run `doc-detective install runtime appium` to install it.");
|
|
1035
|
+
}
|
|
1036
|
+
const appium = spawn(process.execPath, [appiumEntry, "-a", "127.0.0.1", "-p", String(appiumPort)], {
|
|
1000
1037
|
windowsHide: true,
|
|
1001
1038
|
cwd: path.join(__dirname, "../.."),
|
|
1002
1039
|
});
|
|
@@ -1006,8 +1043,22 @@ async function getRunner(options = {}) {
|
|
|
1006
1043
|
appium.on("error", (err) => {
|
|
1007
1044
|
log(config, "warning", `Appium process error: ${err?.stack ?? err?.message ?? String(err)}`);
|
|
1008
1045
|
});
|
|
1009
|
-
// Wait for Appium to be ready
|
|
1010
|
-
|
|
1046
|
+
// Wait for Appium to be ready. Same kill-on-throw guard as in
|
|
1047
|
+
// runSpecs above — without it, a startup timeout would leave an
|
|
1048
|
+
// orphan Appium child holding the ephemeral port.
|
|
1049
|
+
try {
|
|
1050
|
+
await appiumIsReady(appiumPort);
|
|
1051
|
+
}
|
|
1052
|
+
catch (error) {
|
|
1053
|
+
try {
|
|
1054
|
+
if (appium && appium.pid)
|
|
1055
|
+
kill(appium.pid);
|
|
1056
|
+
}
|
|
1057
|
+
catch {
|
|
1058
|
+
// best-effort cleanup; the parent error is what matters
|
|
1059
|
+
}
|
|
1060
|
+
throw error;
|
|
1061
|
+
}
|
|
1011
1062
|
log(config, "debug", `Appium is ready for external driver on port ${appiumPort}.`);
|
|
1012
1063
|
// Get Chrome driver capabilities
|
|
1013
1064
|
const caps = getDriverCapabilities({
|
|
@@ -1022,14 +1073,14 @@ async function getRunner(options = {}) {
|
|
|
1022
1073
|
// Start the runner
|
|
1023
1074
|
let runner;
|
|
1024
1075
|
try {
|
|
1025
|
-
runner = await driverStart(caps, appiumPort);
|
|
1076
|
+
runner = await driverStart(caps, appiumPort, 4, { cacheDir: config?.cacheDir });
|
|
1026
1077
|
}
|
|
1027
1078
|
catch (error) {
|
|
1028
1079
|
// If runner fails, attempt to set headless and retry
|
|
1029
1080
|
try {
|
|
1030
1081
|
log(config, "warning", "Failed to start Chrome runner. Retrying as headless.");
|
|
1031
1082
|
caps["goog:chromeOptions"].args.push("--headless", "--disable-gpu");
|
|
1032
|
-
runner = await driverStart(caps, appiumPort);
|
|
1083
|
+
runner = await driverStart(caps, appiumPort, 4, { cacheDir: config?.cacheDir });
|
|
1033
1084
|
}
|
|
1034
1085
|
catch (error) {
|
|
1035
1086
|
// If runner fails, clean up Appium and rethrow
|