fix(cli): compact gh view and web-probe failures
This commit is contained in:
@@ -44,7 +44,7 @@ try {
|
||||
if (fn === null) throw new Error("custom script must export default, run, or probe function");
|
||||
const scriptResult = await fn(scriptHelpers());
|
||||
const safeResult = sanitize(scriptResult);
|
||||
const scriptOk = !(safeResult && typeof safeResult === "object" && safeResult.ok === false);
|
||||
const scriptOk = scriptResultOk(safeResult);
|
||||
const failure = scriptOk ? null : classifiedProbeError(assertionResultError(safeResult));
|
||||
const lastScreenshot = scriptOk ? null : await captureFailureScreenshot("failure.png");
|
||||
const lastUrl = currentPageUrl();
|
||||
@@ -1399,15 +1399,31 @@ function stableProbeError(code, message, readiness) {
|
||||
}
|
||||
|
||||
function assertionResultError(value) {
|
||||
const message = extractFailureMessage(value) || "script returned ok:false";
|
||||
const message = extractFailureMessage(value) || scriptFailureSignalMessage(value) || "script returned a failure result";
|
||||
const error = new Error(message);
|
||||
error.code = "assertion-failed";
|
||||
return error;
|
||||
}
|
||||
|
||||
function scriptResultOk(value) {
|
||||
if (!value || typeof value !== "object") return true;
|
||||
if (value.ok === false) return false;
|
||||
if (value.pass === false) return false;
|
||||
if (value.success === false) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
function scriptFailureSignalMessage(value) {
|
||||
if (!value || typeof value !== "object") return null;
|
||||
if (value.pass === false) return "script returned pass:false";
|
||||
if (value.success === false) return "script returned success:false";
|
||||
if (value.ok === false) return "script returned ok:false";
|
||||
return null;
|
||||
}
|
||||
|
||||
function extractFailureMessage(value) {
|
||||
if (!value || typeof value !== "object") return null;
|
||||
for (const key of ["errorMessage", "message", "error", "reason", "summary"]) {
|
||||
for (const key of ["failedCondition", "errorMessage", "message", "error", "reason", "summary"]) {
|
||||
const nested = value[key];
|
||||
if (typeof nested === "string" && nested.length > 0) return nested;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user