@allurereport/plugin-classic
Version:
The classic version of Allure HTML report
76 lines (75 loc) • 5.46 kB
JavaScript
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var _AwesomePlugin_writer, _AwesomePlugin_generate;
import { preciseTreeLabels } from "@allurereport/plugin-api";
import { generateAttachmentsFiles, generateEnvironmentJson, generateHistoryDataPoints, generatePieChart, generateStaticFiles, generateStatistic, generateTestResults, generateTree, generateTreeByCategories, } from "./generators.js";
import { InMemoryReportDataWriter, ReportFileDataWriter } from "./writer.js";
export class AwesomePlugin {
constructor(options = {}) {
this.options = options;
_AwesomePlugin_writer.set(this, void 0);
_AwesomePlugin_generate.set(this, async (context, store) => {
const { singleFile, groupBy = [] } = this.options ?? {};
const environmentItems = await store.metadataByKey("allure_environment");
const statistic = await store.testsStatistic();
const attachments = await store.allAttachments();
await generateStatistic(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), statistic);
await generatePieChart(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), statistic);
const convertedTrs = await generateTestResults(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), store);
const treeLabels = preciseTreeLabels(!groupBy.length ? ["parentSuite", "suite", "subSuite"] : groupBy, convertedTrs, ({ labels }) => labels.map(({ name }) => name));
const behaviorLabels = preciseTreeLabels(!groupBy.length ? ["epic", "feature", "story"] : groupBy, convertedTrs, ({ labels }) => labels.map(({ name }) => name));
const packagesLabels = preciseTreeLabels(!groupBy.length ? ["package"] : groupBy, convertedTrs, ({ labels }) => labels.map(({ name }) => name));
await generateTreeByCategories(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), "categories", convertedTrs);
await generateTree(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), "tree", treeLabels, convertedTrs);
await generateTree(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), "behaviors", behaviorLabels, convertedTrs);
await generateTree(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), "packages", packagesLabels, convertedTrs);
await generateHistoryDataPoints(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), store);
if (environmentItems?.length) {
await generateEnvironmentJson(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), environmentItems);
}
if (attachments?.length) {
await generateAttachmentsFiles(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), attachments, (id) => store.attachmentContentById(id));
}
const reportDataFiles = singleFile ? __classPrivateFieldGet(this, _AwesomePlugin_writer, "f").reportFiles() : [];
await generateStaticFiles({
...this.options,
allureVersion: context.allureVersion,
reportFiles: context.reportFiles,
reportDataFiles,
reportUuid: context.reportUuid,
reportName: context.reportName,
});
});
this.start = async (context) => {
const { singleFile } = this.options;
if (singleFile) {
__classPrivateFieldSet(this, _AwesomePlugin_writer, new InMemoryReportDataWriter(), "f");
return;
}
__classPrivateFieldSet(this, _AwesomePlugin_writer, new ReportFileDataWriter(context.reportFiles), "f");
await Promise.resolve();
};
this.update = async (context, store) => {
if (!__classPrivateFieldGet(this, _AwesomePlugin_writer, "f")) {
throw new Error("call start first");
}
await __classPrivateFieldGet(this, _AwesomePlugin_generate, "f").call(this, context, store);
};
this.done = async (context, store) => {
if (!__classPrivateFieldGet(this, _AwesomePlugin_writer, "f")) {
throw new Error("call start first");
}
await __classPrivateFieldGet(this, _AwesomePlugin_generate, "f").call(this, context, store);
};
}
}
_AwesomePlugin_writer = new WeakMap(), _AwesomePlugin_generate = new WeakMap();