e2ed
Version:
E2E testing framework over Playwright
44 lines (43 loc) • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.processStepError = void 0;
const error_1 = require("../error");
const object_1 = require("../object");
/**
* Processes `step` error.
* @internal
*/
// eslint-disable-next-line complexity
const processStepError = ({ error, errorProperties, logEvent }) => {
const message = `Caught an error in step "${errorProperties.stepName}"`;
let stepError = error;
if (!(stepError instanceof error_1.E2edError) &&
Object.getOwnPropertySymbols(stepError ?? {}).length > 0) {
stepError = new error_1.E2edError(message, {
cause: String(stepError),
...errorProperties,
});
}
if (stepError !== null && (typeof stepError === 'object' || typeof stepError === 'function')) {
if (!('stepName' in stepError)) {
Object.assign(stepError, errorProperties, 'message' in stepError ? { originalMessage: stepError.message } : undefined);
}
}
else {
stepError = new error_1.E2edError(message, { cause: stepError, ...errorProperties });
}
if (logEvent !== undefined) {
if (logEvent.payload !== undefined) {
(0, object_1.setReadonlyProperty)(logEvent.payload, 'error', stepError);
(0, object_1.setReadonlyProperty)(logEvent.payload, 'logEventStatus', "failed" /* LogEventStatus.Failed */);
}
else {
(0, object_1.setReadonlyProperty)(logEvent, 'payload', {
error: stepError,
logEventStatus: "failed" /* LogEventStatus.Failed */,
});
}
}
return stepError;
};
exports.processStepError = processStepError;