UNPKG

apidog-reporter-allure

Version:
82 lines (81 loc) 2.31 kB
"use strict"; 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; }