apidog-reporter-allure
Version:
An adapter for apidog proving reports in allure format
82 lines (81 loc) • 2.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.handleScriptExecution = handleScriptExecution;
var _allure = _interopRequireDefault(require("../allure"));
var _allureJsCommons = require("allure-js-commons");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function handleScriptAssertions({
assertions,
name,
timings
}) {
const failed = assertions?.filter(a => !a.passed) ?? [];
if (failed.length === 0) return false;
failed.forEach(assertion => {
_allure.default.startStep(assertion.name, timings.completed);
_allure.default.testStatus({
message: `[SCRIPT] ${name}: ${assertion.name}`,
trace: assertion.error?.message
});
_allure.default.stepStatus({
status: _allureJsCommons.Status.FAILED,
end: timings.completed
});
});
return true;
}
function handleScriptErrors({
scriptErrors,
name,
timings
}) {
if (!scriptErrors || scriptErrors.length === 0) {
_allure.default.stepStatus({
status: _allureJsCommons.Status.FAILED,
end: timings.completed
});
return;
}
scriptErrors.map(scriptError => scriptError.error).sort((a1, a2) => a1.timestamp - a2.timestamp).forEach(({
message,
timestamp
}) => {
_allure.default.startStep(message, timestamp);
_allure.default.testStatus({
message: `[SCRIPT] ${name}`,
trace: message
});
_allure.default.stepStatus({
status: _allureJsCommons.Status.FAILED,
end: timestamp
});
});
_allure.default.stepStatus({
status: _allureJsCommons.Status.FAILED,
end: timings.completed
});
}
function handleScriptExecution(item) {
_allure.default.startStep(`[${item.metaInfo.type}] ${item.name}`, item.timings.started);
if (_allure.default.currentStep) {
if (!item.passed) {
const hasAssertionFailures = handleScriptAssertions(item);
if (!hasAssertionFailures) {
handleScriptErrors(item);
} else {
_allure.default.stepStatus({
status: _allureJsCommons.Status.FAILED,
end: item.timings.completed
});
}
} else {
_allure.default.stepStatus({
status: _allureJsCommons.Status.PASSED,
end: item.timings.completed
});
}
}
return item.passed;
}