@allurereport/plugin-awesome 3.8.2 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/categories.js +1 -1
- package/dist/converters.js +1 -1
- package/dist/generateTimeline.js +1 -1
- package/dist/generators.d.ts +2 -1
- package/dist/generators.js +82 -23
- package/dist/plugin.js +9 -6
- package/dist/writer.d.ts +1 -0
- package/dist/writer.js +32 -13
- package/package.json +7 -6
package/dist/categories.js
CHANGED
|
@@ -110,7 +110,7 @@ const buildGroupLevels = (category, testResult, matchingData, environmentCount,
|
|
|
110
110
|
return levels;
|
|
111
111
|
};
|
|
112
112
|
export const generateCategories = async (writer, { tests, categories, filename = "categories.json", environmentCount = 0, selectedEnvironmentCount, environments = [], defaultEnvironment = "default", }) => {
|
|
113
|
-
const visible = tests.filter((t) => !t.
|
|
113
|
+
const visible = tests.filter((t) => !t.isRetry);
|
|
114
114
|
const environmentOrderMap = buildEnvironmentSortOrder(environments, defaultEnvironment);
|
|
115
115
|
const nodes = {};
|
|
116
116
|
const roots = [];
|
package/dist/converters.js
CHANGED
package/dist/generateTimeline.js
CHANGED
|
@@ -26,7 +26,7 @@ export const generateTimeline = async (writer, trs, options, environmentIdByTrId
|
|
|
26
26
|
historyId: test.historyId,
|
|
27
27
|
name: test.name,
|
|
28
28
|
status: test.status,
|
|
29
|
-
|
|
29
|
+
isRetry: test.isRetry,
|
|
30
30
|
host,
|
|
31
31
|
thread,
|
|
32
32
|
environment: environmentIdByTrId.get(test.id) ?? test.environment,
|
package/dist/generators.d.ts
CHANGED
|
@@ -4,12 +4,13 @@ import type { AwesomeTestResult } from "@allurereport/web-awesome";
|
|
|
4
4
|
import type { AwesomeOptions, TemplateManifest } from "./model.js";
|
|
5
5
|
import type { AwesomeDataWriter, ReportFile } from "./writer.js";
|
|
6
6
|
export declare const readTemplateManifest: (singleFileMode?: boolean) => Promise<TemplateManifest>;
|
|
7
|
-
export declare const generateTestResults: (
|
|
7
|
+
export declare const generateTestResults: (_writer: AwesomeDataWriter, store: AllureStore, trs: TestResult[], options?: {
|
|
8
8
|
hideLabels?: readonly (string | RegExp)[];
|
|
9
9
|
}) => Promise<AwesomeTestResult[]>;
|
|
10
10
|
export declare const generateTestCases: (writer: AwesomeDataWriter, trs: AwesomeTestResult[]) => Promise<void>;
|
|
11
11
|
export declare const generateTestEnvGroups: (writer: AwesomeDataWriter, groups: TestEnvGroup[]) => Promise<void>;
|
|
12
12
|
export declare const generateNav: (writer: AwesomeDataWriter, trs: AwesomeTestResult[], filename?: string) => Promise<void>;
|
|
13
|
+
export declare const generateSearchIndex: (writer: AwesomeDataWriter, trs: AwesomeTestResult[], filename?: string) => Promise<void>;
|
|
13
14
|
export declare const generateTree: (writer: AwesomeDataWriter, treeFilename: string, labels: string[], tests: AwesomeTestResult[], options?: {
|
|
14
15
|
appendTitlePath?: boolean;
|
|
15
16
|
}) => Promise<void>;
|
package/dist/generators.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { readFile, readdir } from "node:fs/promises";
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
|
-
import { basename, join } from "node:path";
|
|
4
|
+
import { basename, dirname, join } from "node:path";
|
|
5
5
|
import { defaultChartsConfig } from "@allurereport/charts-api";
|
|
6
6
|
import { compareBy, createBaseUrlScript, createFontLinkTag, createReportDataScript, stringifyForInlineScript, createScriptTag, createStylesLinkTag, incrementStatistic, joinPosixPath, nullsLast, ordinal, } from "@allurereport/core-api";
|
|
7
|
-
import { createTreeByLabels, createTreeByLabelsAndTitlePath, createTreeByTitlePath,
|
|
7
|
+
import { createTreeByLabels, createTreeByLabelsAndTitlePath, createTreeByTitlePath, preciseTreeLabels, processTree, } from "@allurereport/plugin-api";
|
|
8
8
|
import { generateCharts, getPieChartValues } from "@allurereport/web-commons";
|
|
9
9
|
import Handlebars from "handlebars";
|
|
10
10
|
import { convertFixtureResult, convertTestResult } from "./converters.js";
|
|
@@ -45,6 +45,7 @@ const template = `<!DOCTYPE html>
|
|
|
45
45
|
</body>
|
|
46
46
|
</html>
|
|
47
47
|
`;
|
|
48
|
+
const compiledTemplate = Handlebars.compile(template);
|
|
48
49
|
export const readTemplateManifest = async (singleFileMode) => {
|
|
49
50
|
const templateManifestSource = require.resolve(`@allurereport/web-awesome/dist/${singleFileMode ? "single" : "multi"}/manifest.json`);
|
|
50
51
|
const templateManifest = await readFile(templateManifestSource, { encoding: "utf-8" });
|
|
@@ -73,21 +74,28 @@ const createBreadcrumbs = (convertedTr) => {
|
|
|
73
74
|
return acc;
|
|
74
75
|
}, []);
|
|
75
76
|
};
|
|
76
|
-
|
|
77
|
+
const writeConcurrently = async (items, write, concurrency = 64) => {
|
|
78
|
+
for (let i = 0; i < items.length; i += concurrency) {
|
|
79
|
+
await Promise.all(items.slice(i, i + concurrency).map(write));
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
export const generateTestResults = async (_writer, store, trs, options = {}) => {
|
|
77
83
|
let convertedTrs = [];
|
|
84
|
+
const related = await store.relatedByTestResultIds(trs.map(({ id }) => id));
|
|
78
85
|
for (const tr of trs) {
|
|
79
|
-
const trFixtures =
|
|
86
|
+
const trFixtures = related.fixturesByTrId.get(tr.id) ?? [];
|
|
80
87
|
const convertedTrFixtures = trFixtures.map(convertFixtureResult);
|
|
81
88
|
const convertedTr = convertTestResult(tr, {
|
|
82
89
|
hideLabels: options.hideLabels,
|
|
83
90
|
});
|
|
84
|
-
convertedTr.history =
|
|
85
|
-
convertedTr.retries =
|
|
91
|
+
convertedTr.history = related.historyByTrId.get(tr.id) ?? [];
|
|
92
|
+
convertedTr.retries = related.retriesByTrId.get(tr.id) ?? [];
|
|
86
93
|
convertedTr.retriesCount = convertedTr.retries.length;
|
|
87
94
|
convertedTr.retry = convertedTr.retriesCount > 0;
|
|
95
|
+
convertedTr.isRetry = tr.isRetry;
|
|
88
96
|
convertedTr.setup = convertedTrFixtures.filter((f) => f.type === "before");
|
|
89
97
|
convertedTr.teardown = convertedTrFixtures.filter((f) => f.type === "after");
|
|
90
|
-
convertedTr.attachments = (
|
|
98
|
+
convertedTr.attachments = (related.attachmentsByTrId.get(tr.id) ?? []).map((attachment) => ({
|
|
91
99
|
link: attachment,
|
|
92
100
|
type: "attachment",
|
|
93
101
|
}));
|
|
@@ -98,15 +106,10 @@ export const generateTestResults = async (writer, store, trs, options = {}) => {
|
|
|
98
106
|
...tr,
|
|
99
107
|
order: idx + 1,
|
|
100
108
|
}));
|
|
101
|
-
for (const convertedTr of convertedTrs) {
|
|
102
|
-
await writer.writeTestCase(convertedTr);
|
|
103
|
-
}
|
|
104
109
|
return convertedTrs;
|
|
105
110
|
};
|
|
106
111
|
export const generateTestCases = async (writer, trs) => {
|
|
107
|
-
|
|
108
|
-
await writer.writeTestCase(tr);
|
|
109
|
-
}
|
|
112
|
+
await writeConcurrently(trs, (tr) => writer.writeTestCase(tr));
|
|
110
113
|
};
|
|
111
114
|
export const generateTestEnvGroups = async (writer, groups) => {
|
|
112
115
|
for (const group of groups) {
|
|
@@ -115,10 +118,62 @@ export const generateTestEnvGroups = async (writer, groups) => {
|
|
|
115
118
|
}
|
|
116
119
|
};
|
|
117
120
|
export const generateNav = async (writer, trs, filename = "nav.json") => {
|
|
118
|
-
await writer.writeWidget(filename, trs.filter(({
|
|
121
|
+
await writer.writeWidget(filename, trs.filter(({ isRetry }) => !isRetry).map(({ id }) => id));
|
|
122
|
+
};
|
|
123
|
+
const SEARCHABLE_LABELS = new Set([
|
|
124
|
+
"owner",
|
|
125
|
+
"suite",
|
|
126
|
+
"package",
|
|
127
|
+
"testClass",
|
|
128
|
+
"testMethod",
|
|
129
|
+
"epic",
|
|
130
|
+
"feature",
|
|
131
|
+
"story",
|
|
132
|
+
"tag",
|
|
133
|
+
"host",
|
|
134
|
+
"thread",
|
|
135
|
+
]);
|
|
136
|
+
const joinSearchValues = (values) => {
|
|
137
|
+
const uniqueValues = new Set(values.map((value) => value?.trim()).filter((value) => Boolean(value)));
|
|
138
|
+
return uniqueValues.size > 0 ? [...uniqueValues].join(" ") : undefined;
|
|
139
|
+
};
|
|
140
|
+
const searchDocumentFactory = (test) => {
|
|
141
|
+
const labels = (test.labels ?? []).flatMap(({ name, value }) => {
|
|
142
|
+
if (!value || !SEARCHABLE_LABELS.has(name)) {
|
|
143
|
+
return [];
|
|
144
|
+
}
|
|
145
|
+
return [`${name}:${value}`, value];
|
|
146
|
+
});
|
|
147
|
+
const tags = (test.labels ?? []).flatMap(({ name, value }) => (name === "tag" && value ? [value] : []));
|
|
148
|
+
const parameters = (test.parameters ?? []).flatMap(({ name, value, hidden, masked }) => {
|
|
149
|
+
if (hidden) {
|
|
150
|
+
return [];
|
|
151
|
+
}
|
|
152
|
+
return masked ? [name] : [`${name}:${value}`, name, value];
|
|
153
|
+
});
|
|
154
|
+
const links = (test.links ?? []).flatMap(({ name, url, type }) => [name, url, type]);
|
|
155
|
+
const categories = test.categories?.map((category) => category.name);
|
|
156
|
+
return {
|
|
157
|
+
id: test.id,
|
|
158
|
+
nodeId: test.id,
|
|
159
|
+
name: test.name,
|
|
160
|
+
fullName: test.fullName,
|
|
161
|
+
historyId: test.historyId,
|
|
162
|
+
labels: joinSearchValues(labels),
|
|
163
|
+
owner: joinSearchValues(test.groupedLabels.owner ?? []),
|
|
164
|
+
tags: joinSearchValues(tags),
|
|
165
|
+
parameters: joinSearchValues(parameters),
|
|
166
|
+
categories: joinSearchValues(categories ?? []),
|
|
167
|
+
statusMessage: test.error?.message,
|
|
168
|
+
links: joinSearchValues(links),
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
export const generateSearchIndex = async (writer, trs, filename = "search-index.json") => {
|
|
172
|
+
const searchDocuments = trs.filter(({ isRetry }) => !isRetry).map(searchDocumentFactory);
|
|
173
|
+
await writer.writeWidget(filename, searchDocuments);
|
|
119
174
|
};
|
|
120
175
|
export const generateTree = async (writer, treeFilename, labels, tests, options) => {
|
|
121
|
-
const visibleTests = tests.filter((test) => !test.
|
|
176
|
+
const visibleTests = tests.filter((test) => !test.isRetry);
|
|
122
177
|
const { appendTitlePath } = options || {};
|
|
123
178
|
let tree;
|
|
124
179
|
if (labels.length === 0) {
|
|
@@ -130,9 +185,10 @@ export const generateTree = async (writer, treeFilename, labels, tests, options)
|
|
|
130
185
|
else {
|
|
131
186
|
tree = buildTreeByLabels(visibleTests, labels);
|
|
132
187
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
188
|
+
processTree(tree, {
|
|
189
|
+
sort: nullsLast(compareBy("start", ordinal())),
|
|
190
|
+
transform: (leaf, idx) => ({ ...leaf, groupOrder: idx + 1 }),
|
|
191
|
+
});
|
|
136
192
|
await writer.writeWidget(treeFilename, tree);
|
|
137
193
|
};
|
|
138
194
|
const buildTreeByLabels = (tests, labels) => {
|
|
@@ -307,15 +363,15 @@ export const generateQualityGateResults = async (writer, qualityGateResults = {}
|
|
|
307
363
|
};
|
|
308
364
|
export const generateStaticFiles = async (payload) => {
|
|
309
365
|
const { id, reportName = "Allure Report", reportLanguage = "en", singleFile, logo = "", theme = "auto", groupBy, reportFiles, reportDataFiles, reportUuid, allureVersion, layout = "base", defaultSection = "", ci, stepTreeExpansion, } = payload;
|
|
310
|
-
const compile = Handlebars.compile(template);
|
|
311
366
|
const manifest = await readTemplateManifest(payload.singleFile);
|
|
312
367
|
const headTags = [];
|
|
313
368
|
const bodyTags = [];
|
|
314
369
|
const sections = ["charts", "timeline"];
|
|
315
370
|
if (!payload.singleFile) {
|
|
371
|
+
const manifestPath = require.resolve(join("@allurereport/web-awesome/dist", singleFile ? "single" : "multi", "manifest.json"));
|
|
372
|
+
const templateDir = dirname(manifestPath);
|
|
316
373
|
for (const key in manifest) {
|
|
317
374
|
const fileName = manifest[key];
|
|
318
|
-
const filePath = require.resolve(join("@allurereport/web-awesome/dist", singleFile ? "single" : "multi", fileName));
|
|
319
375
|
if (key.includes(".woff")) {
|
|
320
376
|
headTags.push(createFontLinkTag(fileName));
|
|
321
377
|
}
|
|
@@ -325,9 +381,12 @@ export const generateStaticFiles = async (payload) => {
|
|
|
325
381
|
if (key === "main.js") {
|
|
326
382
|
bodyTags.push(createScriptTag(fileName));
|
|
327
383
|
}
|
|
328
|
-
|
|
384
|
+
}
|
|
385
|
+
for (const fileName of await readdir(templateDir)) {
|
|
386
|
+
if (fileName === "manifest.json") {
|
|
329
387
|
continue;
|
|
330
388
|
}
|
|
389
|
+
const filePath = join(templateDir, fileName);
|
|
331
390
|
const fileContent = await readFile(filePath);
|
|
332
391
|
await reportFiles.addFile(basename(filePath), fileContent);
|
|
333
392
|
}
|
|
@@ -357,7 +416,7 @@ export const generateStaticFiles = async (payload) => {
|
|
|
357
416
|
stepTreeExpansion,
|
|
358
417
|
};
|
|
359
418
|
try {
|
|
360
|
-
const html =
|
|
419
|
+
const html = compiledTemplate({
|
|
361
420
|
headTags: headTags.join("\n"),
|
|
362
421
|
bodyTags: bodyTags.join("\n"),
|
|
363
422
|
reportFilesScript: createReportDataScript(reportDataFiles),
|
package/dist/plugin.js
CHANGED
|
@@ -15,16 +15,17 @@ import { createPluginSummary, } from "@allurereport/plugin-api";
|
|
|
15
15
|
import { preciseTreeLabels } from "@allurereport/plugin-api";
|
|
16
16
|
import { applyCategoriesToTestResults, generateCategories } from "./categories.js";
|
|
17
17
|
import { generateTimeline } from "./generateTimeline.js";
|
|
18
|
-
import { generateAllCharts, generateAttachmentsFiles, generateEnvironmentJson, generateEnvirontmentsList, generateGlobals, generateHistoryDataPoints, generateNav, generateQualityGateResults, generateStaticFiles, generateStatistic, generateTestCases, generateTestEnvGroups, generateTestResults, generateTree, generateTreeFilters, generateVariables, } from "./generators.js";
|
|
18
|
+
import { generateAllCharts, generateAttachmentsFiles, generateEnvironmentJson, generateEnvirontmentsList, generateGlobals, generateHistoryDataPoints, generateNav, generateQualityGateResults, generateSearchIndex, generateStaticFiles, generateStatistic, generateTestCases, generateTestEnvGroups, generateTestResults, generateTree, generateTreeFilters, generateVariables, } from "./generators.js";
|
|
19
19
|
import { InMemoryReportDataWriter, ReportFileDataWriter } from "./writer.js";
|
|
20
20
|
const statisticByTestResults = async (store, testResults) => {
|
|
21
21
|
const statistic = { total: 0 };
|
|
22
|
+
const related = await store.relatedByTestResultIds(testResults.map(({ id }) => id));
|
|
22
23
|
for (const testResult of testResults) {
|
|
23
|
-
if (testResult.
|
|
24
|
+
if (testResult.isRetry) {
|
|
24
25
|
continue;
|
|
25
26
|
}
|
|
26
27
|
incrementStatistic(statistic, testResult.status);
|
|
27
|
-
if ((
|
|
28
|
+
if ((related.retriesByTrId.get(testResult.id)?.length ?? 0) > 0) {
|
|
28
29
|
statistic.retries = (statistic.retries ?? 0) + 1;
|
|
29
30
|
}
|
|
30
31
|
if (testResult.flaky) {
|
|
@@ -46,7 +47,7 @@ export class AwesomePlugin {
|
|
|
46
47
|
const categories = context.categories ?? [];
|
|
47
48
|
const environmentItems = await store.metadataByKey("allure_environment");
|
|
48
49
|
const attachments = await store.allAttachments();
|
|
49
|
-
const allTrs = await store.allTestResults({
|
|
50
|
+
const allTrs = await store.allTestResults({ includeRetries: true, filter });
|
|
50
51
|
const statistics = await store.testsStatistic(filter);
|
|
51
52
|
const environments = await store.allEnvironmentIdentities();
|
|
52
53
|
const envStatistics = new Map();
|
|
@@ -66,7 +67,7 @@ export class AwesomePlugin {
|
|
|
66
67
|
envIdByTrId.set(tr.id, environmentId);
|
|
67
68
|
}));
|
|
68
69
|
await Promise.all(environments.map(async ({ id }) => {
|
|
69
|
-
const envTrs = await store.testResultsByEnvironmentId(id, {
|
|
70
|
+
const envTrs = await store.testResultsByEnvironmentId(id, { includeRetries: true });
|
|
70
71
|
envStatistics.set(id, await statisticByTestResults(store, envTrs));
|
|
71
72
|
}));
|
|
72
73
|
await generateStatistic(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), {
|
|
@@ -94,10 +95,11 @@ export class AwesomePlugin {
|
|
|
94
95
|
await generateTestCases(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), convertedTrs);
|
|
95
96
|
await generateTree(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), "tree.json", treeLabels, convertedTrs, { appendTitlePath });
|
|
96
97
|
await generateNav(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), convertedTrs, "nav.json");
|
|
98
|
+
await generateSearchIndex(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), convertedTrs, "search-index.json");
|
|
97
99
|
await generateTestEnvGroups(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), allTestEnvGroups);
|
|
98
100
|
const convertedTrsById = new Map(convertedTrs.map((tr) => [tr.id, tr]));
|
|
99
101
|
for (const reportEnvironment of environments) {
|
|
100
|
-
const envTrs = await store.testResultsByEnvironmentId(reportEnvironment.id, {
|
|
102
|
+
const envTrs = await store.testResultsByEnvironmentId(reportEnvironment.id, { includeRetries: true });
|
|
101
103
|
const envConvertedTrs = envTrs
|
|
102
104
|
.map((tr) => convertedTrsById.get(tr.id))
|
|
103
105
|
.filter((tr) => Boolean(tr));
|
|
@@ -105,6 +107,7 @@ export class AwesomePlugin {
|
|
|
105
107
|
appendTitlePath,
|
|
106
108
|
});
|
|
107
109
|
await generateNav(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), envConvertedTrs, joinPosixPath(reportEnvironment.id, "nav.json"));
|
|
110
|
+
await generateSearchIndex(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), envConvertedTrs, joinPosixPath(reportEnvironment.id, "search-index.json"));
|
|
108
111
|
await generateCategories(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), {
|
|
109
112
|
tests: envConvertedTrs,
|
|
110
113
|
categories,
|
package/dist/writer.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export interface AwesomeDataWriter {
|
|
|
11
11
|
writeAttachment(source: string, file: ResultFile): Promise<void>;
|
|
12
12
|
}
|
|
13
13
|
export declare class FileSystemReportDataWriter implements AwesomeDataWriter {
|
|
14
|
+
#private;
|
|
14
15
|
private readonly output;
|
|
15
16
|
constructor(output: string);
|
|
16
17
|
writeData(fileName: string, data: any): Promise<void>;
|
package/dist/writer.js
CHANGED
|
@@ -1,37 +1,56 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
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");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
1
7
|
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
8
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
9
|
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");
|
|
4
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
11
|
};
|
|
6
|
-
var _InMemoryReportDataWriter_data;
|
|
12
|
+
var _FileSystemReportDataWriter_dataDir, _FileSystemReportDataWriter_widgetsDir, _FileSystemReportDataWriter_testResultsDir, _FileSystemReportDataWriter_attachmentsDir, _FileSystemReportDataWriter_dataDirReady, _FileSystemReportDataWriter_widgetsDirReady, _FileSystemReportDataWriter_testResultsDirReady, _FileSystemReportDataWriter_attachmentsDirReady, _InMemoryReportDataWriter_data;
|
|
7
13
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
8
14
|
import { resolve } from "node:path";
|
|
9
15
|
import { joinPosixPath } from "@allurereport/core-api";
|
|
10
16
|
export class FileSystemReportDataWriter {
|
|
11
17
|
constructor(output) {
|
|
12
18
|
this.output = output;
|
|
19
|
+
_FileSystemReportDataWriter_dataDir.set(this, void 0);
|
|
20
|
+
_FileSystemReportDataWriter_widgetsDir.set(this, void 0);
|
|
21
|
+
_FileSystemReportDataWriter_testResultsDir.set(this, void 0);
|
|
22
|
+
_FileSystemReportDataWriter_attachmentsDir.set(this, void 0);
|
|
23
|
+
_FileSystemReportDataWriter_dataDirReady.set(this, void 0);
|
|
24
|
+
_FileSystemReportDataWriter_widgetsDirReady.set(this, void 0);
|
|
25
|
+
_FileSystemReportDataWriter_testResultsDirReady.set(this, void 0);
|
|
26
|
+
_FileSystemReportDataWriter_attachmentsDirReady.set(this, void 0);
|
|
27
|
+
__classPrivateFieldSet(this, _FileSystemReportDataWriter_dataDir, resolve(this.output, "data"), "f");
|
|
28
|
+
__classPrivateFieldSet(this, _FileSystemReportDataWriter_widgetsDir, resolve(this.output, "widgets"), "f");
|
|
29
|
+
__classPrivateFieldSet(this, _FileSystemReportDataWriter_testResultsDir, resolve(this.output, "data", "test-results"), "f");
|
|
30
|
+
__classPrivateFieldSet(this, _FileSystemReportDataWriter_attachmentsDir, resolve(this.output, "data", "attachments"), "f");
|
|
31
|
+
__classPrivateFieldSet(this, _FileSystemReportDataWriter_dataDirReady, mkdir(__classPrivateFieldGet(this, _FileSystemReportDataWriter_dataDir, "f"), { recursive: true }), "f");
|
|
32
|
+
__classPrivateFieldSet(this, _FileSystemReportDataWriter_widgetsDirReady, mkdir(__classPrivateFieldGet(this, _FileSystemReportDataWriter_widgetsDir, "f"), { recursive: true }), "f");
|
|
33
|
+
__classPrivateFieldSet(this, _FileSystemReportDataWriter_testResultsDirReady, mkdir(__classPrivateFieldGet(this, _FileSystemReportDataWriter_testResultsDir, "f"), { recursive: true }), "f");
|
|
34
|
+
__classPrivateFieldSet(this, _FileSystemReportDataWriter_attachmentsDirReady, mkdir(__classPrivateFieldGet(this, _FileSystemReportDataWriter_attachmentsDir, "f"), { recursive: true }), "f");
|
|
13
35
|
}
|
|
14
36
|
async writeData(fileName, data) {
|
|
15
|
-
|
|
16
|
-
await
|
|
17
|
-
await writeFile(resolve(distFolder, fileName), JSON.stringify(data), { encoding: "utf-8" });
|
|
37
|
+
await __classPrivateFieldGet(this, _FileSystemReportDataWriter_dataDirReady, "f");
|
|
38
|
+
await writeFile(resolve(__classPrivateFieldGet(this, _FileSystemReportDataWriter_dataDir, "f"), fileName), JSON.stringify(data), { encoding: "utf-8" });
|
|
18
39
|
}
|
|
19
40
|
async writeWidget(fileName, data) {
|
|
20
|
-
|
|
21
|
-
await
|
|
22
|
-
await writeFile(resolve(distFolder, fileName), JSON.stringify(data), { encoding: "utf-8" });
|
|
41
|
+
await __classPrivateFieldGet(this, _FileSystemReportDataWriter_widgetsDirReady, "f");
|
|
42
|
+
await writeFile(resolve(__classPrivateFieldGet(this, _FileSystemReportDataWriter_widgetsDir, "f"), fileName), JSON.stringify(data), { encoding: "utf-8" });
|
|
23
43
|
}
|
|
24
44
|
async writeTestCase(test) {
|
|
25
|
-
|
|
26
|
-
await
|
|
27
|
-
await writeFile(resolve(distFolder, `${test.id}.json`), JSON.stringify(test), { encoding: "utf-8" });
|
|
45
|
+
await __classPrivateFieldGet(this, _FileSystemReportDataWriter_testResultsDirReady, "f");
|
|
46
|
+
await writeFile(resolve(__classPrivateFieldGet(this, _FileSystemReportDataWriter_testResultsDir, "f"), `${test.id}.json`), JSON.stringify(test), { encoding: "utf-8" });
|
|
28
47
|
}
|
|
29
48
|
async writeAttachment(source, file) {
|
|
30
|
-
|
|
31
|
-
await
|
|
32
|
-
await file.writeTo(resolve(distFolder, source));
|
|
49
|
+
await __classPrivateFieldGet(this, _FileSystemReportDataWriter_attachmentsDirReady, "f");
|
|
50
|
+
await file.writeTo(resolve(__classPrivateFieldGet(this, _FileSystemReportDataWriter_attachmentsDir, "f"), source));
|
|
33
51
|
}
|
|
34
52
|
}
|
|
53
|
+
_FileSystemReportDataWriter_dataDir = new WeakMap(), _FileSystemReportDataWriter_widgetsDir = new WeakMap(), _FileSystemReportDataWriter_testResultsDir = new WeakMap(), _FileSystemReportDataWriter_attachmentsDir = new WeakMap(), _FileSystemReportDataWriter_dataDirReady = new WeakMap(), _FileSystemReportDataWriter_widgetsDirReady = new WeakMap(), _FileSystemReportDataWriter_testResultsDirReady = new WeakMap(), _FileSystemReportDataWriter_attachmentsDirReady = new WeakMap();
|
|
35
54
|
export class InMemoryReportDataWriter {
|
|
36
55
|
constructor() {
|
|
37
56
|
_InMemoryReportDataWriter_data.set(this, {});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@allurereport/plugin-awesome",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.9.0",
|
|
4
4
|
"description": "Allure Awesome Plugin – brand new HTML report with modern design and new features",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"allure",
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"lint:fix": "oxlint --import-plugin --fix src test features stories"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@allurereport/charts-api": "3.
|
|
34
|
-
"@allurereport/core-api": "3.
|
|
35
|
-
"@allurereport/plugin-api": "3.
|
|
36
|
-
"@allurereport/web-awesome": "3.
|
|
37
|
-
"@allurereport/web-commons": "3.
|
|
33
|
+
"@allurereport/charts-api": "3.9.0",
|
|
34
|
+
"@allurereport/core-api": "3.9.0",
|
|
35
|
+
"@allurereport/plugin-api": "3.9.0",
|
|
36
|
+
"@allurereport/web-awesome": "3.9.0",
|
|
37
|
+
"@allurereport/web-commons": "3.9.0",
|
|
38
38
|
"d3-shape": "^3.2.0",
|
|
39
39
|
"handlebars": "^4.7.9",
|
|
40
40
|
"markdown-it": "^14.1.0"
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"@types/markdown-it": "^14.1.2",
|
|
45
45
|
"@types/node": "^20.17.9",
|
|
46
46
|
"@vitest/runner": "^2.1.9",
|
|
47
|
+
"allure-js-commons": "^3.3.3",
|
|
47
48
|
"allure-vitest": "^3.3.3",
|
|
48
49
|
"rimraf": "^6.0.1",
|
|
49
50
|
"typescript": "^5.6.3",
|