mocha8allure
Version:
Allure mocha reporter
75 lines • 7 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const constants_1 = require("./constants");
const context_1 = require("./context");
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const uuid_1 = require("uuid");
class MochaLogger {
step(mochaContext, loggerStep) {
if (mochaContext.test.type === "hook" &&
process.env.SHOW_HOOKS === "false")
return;
const step = this.buildStep(loggerStep);
context_1.suites
.find((s) => s.suiteId === mochaContext.test.parent.__mocha_id__)["test-suite"]["test-cases"]["test-case"].find((t) => t.testId === mochaContext.test.__mocha_id__)
.steps.step.push(step);
}
addLog(mochaContext, title, message, type = constants_1.AllureMimeTypes.txt) {
if (mochaContext.test.type === "hook" &&
process.env.SHOW_HOOKS === "false")
return;
const attachment = this.addAttachment(title, message, type);
context_1.suites
.find((s) => s.suiteId === mochaContext.test.parent.__mocha_id__)["test-suite"]["test-cases"]["test-case"].find((t) => t.testId === mochaContext.test.__mocha_id__)
.attachments.attachment.push(attachment);
}
buildStep(loggerStep) {
const allureStep = {
_attributes: {
start: Date.now(),
stop: Date.now(),
status: loggerStep.status ? loggerStep.status : "passed",
},
name: loggerStep.name,
title: loggerStep.title ? loggerStep.title : loggerStep.name,
attachments: { attachment: [] },
steps: { step: [] },
};
if (loggerStep.attachments && loggerStep.attachments.length > 0) {
for (const attachment of loggerStep.attachments) {
const att = this.addAttachment(attachment.title, attachment.data, attachment.type);
allureStep.attachments.attachment.push(att);
}
}
if (loggerStep.steps && loggerStep.steps.length > 0) {
for (const step of loggerStep.steps) {
allureStep.steps.step.push(this.buildStep(step));
}
}
return allureStep;
}
addAttachment(title, data, type) {
const source = uuid_1.v4() +
"-attachment." +
this.getEnumKeyByEnumValue(constants_1.AllureMimeTypes, type);
const attachment = {
_attributes: {
title,
source,
type,
},
};
fs_1.default.writeFileSync(path_1.default.join(process.env.resultsPath, source), data);
return attachment;
}
getEnumKeyByEnumValue(myEnum, enumValue) {
const keys = Object.keys(myEnum).filter((x) => myEnum[x] == enumValue);
return keys.length > 0 ? keys[0] : null;
}
}
exports.default = new MochaLogger();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUE4QztBQUM5Qyx1Q0FBbUM7QUFFbkMsNENBQW9CO0FBQ3BCLGdEQUF3QjtBQUN4QiwrQkFBb0M7QUFDcEMsTUFBTSxXQUFXO0lBQ1IsSUFBSSxDQUFDLFlBQTJCLEVBQUUsVUFBc0I7UUFDN0QsSUFDRyxZQUFZLENBQUMsSUFBWSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxLQUFLLE9BQU87WUFFbEMsT0FBTztRQUNULE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEMsZ0JBQU07YUFDSCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQU0sWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFjLENBQUMsWUFBWSxDQUFDLENBQ3pFLFlBQVksQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDNUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQU0sWUFBWSxDQUFDLElBQVksQ0FBQyxZQUFZLENBQzVEO2FBQ0EsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNNLE1BQU0sQ0FDWCxZQUEyQixFQUMzQixLQUFhLEVBQ2IsT0FBZSxFQUNmLElBQUksR0FBRywyQkFBZSxDQUFDLEdBQUc7UUFFMUIsSUFDRyxZQUFZLENBQUMsSUFBWSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxLQUFLLE9BQU87WUFFbEMsT0FBTztRQUNULE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxF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