UNPKG

@allurereport/plugin-classic

Version:

The classic version of Allure HTML report

76 lines (75 loc) 5.46 kB
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();