@allurereport/plugin-classic 3.0.0-beta.14 → 3.0.0-beta.16

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.
@@ -1,8 +1,8 @@
1
1
  import type { TestStatus } from "@allurereport/core-api";
2
- import type { AwesomeCategory } from "./model.js";
3
- export declare const matchCategories: (categories: AwesomeCategory[], result: {
2
+ import type { ClassicCategory } from "./model.js";
3
+ export declare const matchCategories: (categories: ClassicCategory[], result: {
4
4
  message?: string;
5
5
  trace?: string;
6
6
  status: TestStatus;
7
7
  flaky: boolean;
8
- }) => AwesomeCategory[];
8
+ }) => ClassicCategory[];
@@ -34,6 +34,7 @@ export const convertTestResult = (tr) => {
34
34
  retries: [],
35
35
  breadcrumbs: [],
36
36
  retry: false,
37
+ transition: tr.transition,
37
38
  };
38
39
  };
39
40
  export const convertTestStepResult = (tsr) => {
@@ -1,21 +1,21 @@
1
1
  import { type AttachmentLink, type EnvironmentItem, type Statistic } from "@allurereport/core-api";
2
2
  import { type AllureStore, type ReportFiles, type ResultFile } from "@allurereport/plugin-api";
3
3
  import type { AwesomeTestResult } from "@allurereport/web-awesome";
4
- import type { AwesomeOptions, TemplateManifest } from "./model.js";
5
- import type { AwesomeDataWriter, ReportFile } from "./writer.js";
4
+ import type { ClassicOptions, TemplateManifest } from "./model.js";
5
+ import type { ClassicDataWriter, ReportFile } from "./writer.js";
6
6
  export declare const readTemplateManifest: (singleFileMode?: boolean) => Promise<TemplateManifest>;
7
- export declare const generateTestResults: (writer: AwesomeDataWriter, store: AllureStore) => Promise<AwesomeTestResult[]>;
8
- export declare const generateTree: (writer: AwesomeDataWriter, treeName: string, labels: string[], tests: AwesomeTestResult[]) => Promise<void>;
9
- export declare const generateEnvironmentJson: (writer: AwesomeDataWriter, env: EnvironmentItem[]) => Promise<void>;
10
- export declare const generateStatistic: (writer: AwesomeDataWriter, statistic: Statistic) => Promise<void>;
11
- export declare const generatePieChart: (writer: AwesomeDataWriter, statistic: Statistic) => Promise<void>;
12
- export declare const generateAttachmentsFiles: (writer: AwesomeDataWriter, attachmentLinks: AttachmentLink[], contentFunction: (id: string) => Promise<ResultFile | undefined>) => Promise<Map<string, string> | undefined>;
13
- export declare const generateHistoryDataPoints: (writer: AwesomeDataWriter, store: AllureStore) => Promise<Map<string, string>>;
14
- export declare const generateStaticFiles: (payload: AwesomeOptions & {
7
+ export declare const generateTestResults: (writer: ClassicDataWriter, store: AllureStore) => Promise<AwesomeTestResult[]>;
8
+ export declare const generateTree: (writer: ClassicDataWriter, treeName: string, labels: string[], tests: AwesomeTestResult[]) => Promise<void>;
9
+ export declare const generateEnvironmentJson: (writer: ClassicDataWriter, env: EnvironmentItem[]) => Promise<void>;
10
+ export declare const generateStatistic: (writer: ClassicDataWriter, statistic: Statistic) => Promise<void>;
11
+ export declare const generatePieChart: (writer: ClassicDataWriter, statistic: Statistic) => Promise<void>;
12
+ export declare const generateAttachmentsFiles: (writer: ClassicDataWriter, attachmentLinks: AttachmentLink[], contentFunction: (id: string) => Promise<ResultFile | undefined>) => Promise<Map<string, string> | undefined>;
13
+ export declare const generateHistoryDataPoints: (writer: ClassicDataWriter, store: AllureStore) => Promise<Map<string, string>>;
14
+ export declare const generateStaticFiles: (payload: ClassicOptions & {
15
15
  allureVersion: string;
16
16
  reportFiles: ReportFiles;
17
17
  reportDataFiles: ReportFile[];
18
18
  reportUuid: string;
19
19
  reportName: string;
20
20
  }) => Promise<void>;
21
- export declare const generateTreeByCategories: (writer: AwesomeDataWriter, treeName: string, tests: AwesomeTestResult[]) => Promise<void>;
21
+ export declare const generateTreeByCategories: (writer: ClassicDataWriter, treeName: string, tests: AwesomeTestResult[]) => Promise<void>;
@@ -113,14 +113,17 @@ export const generateTestResults = async (writer, store) => {
113
113
  };
114
114
  export const generateTree = async (writer, treeName, labels, tests) => {
115
115
  const visibleTests = tests.filter((test) => !test.hidden);
116
- const tree = createTreeByLabels(visibleTests, labels, ({ id, name, status, duration, flaky, start, retries }) => {
116
+ const tree = createTreeByLabels(visibleTests, labels, ({ id, name, status, duration, flaky, transition, start, retries }) => {
117
+ const retriesCount = retries?.length ?? 0;
117
118
  return {
118
119
  nodeId: id,
119
- retry: !!retries?.length,
120
+ retry: Boolean(retriesCount),
121
+ retriesCount,
120
122
  name,
121
123
  status,
122
124
  duration,
123
125
  flaky,
126
+ transition,
124
127
  start,
125
128
  };
126
129
  }, undefined, (group, leaf) => {
@@ -198,15 +201,17 @@ export const generateStaticFiles = async (payload) => {
198
201
  const mainJsContentBuffer = await readFile(mainJsSource);
199
202
  bodyTags.push(createScriptTag(`data:text/javascript;base64,${mainJsContentBuffer.toString("base64")}`));
200
203
  }
204
+ const now = Date.now();
201
205
  const reportOptions = {
202
206
  reportName,
203
207
  logo,
204
208
  theme,
205
209
  reportLanguage,
206
- createdAt: Date.now(),
210
+ createdAt: now,
207
211
  reportUuid,
208
212
  groupBy: groupBy?.length ? groupBy : ["parentSuite", "suite", "subSuite"],
209
213
  allureVersion,
214
+ cacheKey: now.toString(),
210
215
  };
211
216
  const html = compile({
212
217
  headTags: headTags.join("\n"),
@@ -223,14 +228,17 @@ export const generateStaticFiles = async (payload) => {
223
228
  };
224
229
  export const generateTreeByCategories = async (writer, treeName, tests) => {
225
230
  const visibleTests = tests.filter((test) => !test.hidden);
226
- const tree = createTreeByCategories(visibleTests, ({ id, name, status, duration, flaky, start, retries }) => {
231
+ const tree = createTreeByCategories(visibleTests, ({ id, name, status, duration, flaky, transition, start, retries }) => {
232
+ const retriesCount = retries?.length ?? 0;
227
233
  return {
228
234
  nodeId: id,
229
- retry: !!retries?.length,
235
+ retry: Boolean(retriesCount),
236
+ retriesCount,
230
237
  name,
231
238
  status,
232
239
  duration,
233
240
  flaky,
241
+ transition,
234
242
  start,
235
243
  };
236
244
  }, undefined, (group, leaf) => {
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { AwesomePlugin } from "./plugin.js";
2
- export default AwesomePlugin;
1
+ export type { ClassicPluginOptions } from "./model.js";
2
+ export { ClassicPlugin as default } from "./plugin.js";
package/dist/index.js CHANGED
@@ -1,2 +1 @@
1
- import { AwesomePlugin } from "./plugin.js";
2
- export default AwesomePlugin;
1
+ export { ClassicPlugin as default } from "./plugin.js";
package/dist/model.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { TestResult, TestStatus } from "@allurereport/core-api";
2
- export type AwesomeOptions = {
2
+ export type ClassicOptions = {
3
3
  reportName?: string;
4
4
  singleFile?: boolean;
5
5
  logo?: string;
@@ -14,8 +14,8 @@ export type AwesomeOptions = {
14
14
  filter?: (tr: TestResult) => boolean;
15
15
  };
16
16
  export type TemplateManifest = Record<string, string>;
17
- export type AwesomePluginOptions = AwesomeOptions;
18
- export interface AwesomeCategory {
17
+ export type ClassicPluginOptions = ClassicOptions;
18
+ export interface ClassicCategory {
19
19
  name: string;
20
20
  description?: string;
21
21
  descriptionHtml?: string;
package/dist/plugin.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import type { AllureStore, Plugin, PluginContext, PluginSummary } from "@allurereport/plugin-api";
2
- import type { AwesomePluginOptions } from "./model.js";
3
- export declare class AwesomePlugin implements Plugin {
2
+ import type { ClassicPluginOptions } from "./model.js";
3
+ export declare class ClassicPlugin implements Plugin {
4
4
  #private;
5
- readonly options: AwesomePluginOptions;
6
- constructor(options?: AwesomePluginOptions);
5
+ readonly options: ClassicPluginOptions;
6
+ constructor(options?: ClassicPluginOptions);
7
7
  start: (context: PluginContext) => Promise<void>;
8
8
  update: (context: PluginContext, store: AllureStore) => Promise<void>;
9
9
  done: (context: PluginContext, store: AllureStore) => Promise<void>;
package/dist/plugin.js CHANGED
@@ -9,38 +9,38 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
9
9
  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");
10
10
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
11
  };
12
- var _AwesomePlugin_writer, _AwesomePlugin_generate;
12
+ var _ClassicPlugin_writer, _ClassicPlugin_generate;
13
13
  import { getWorstStatus } from "@allurereport/core-api";
14
14
  import { preciseTreeLabels } from "@allurereport/plugin-api";
15
15
  import { generateAttachmentsFiles, generateEnvironmentJson, generateHistoryDataPoints, generatePieChart, generateStaticFiles, generateStatistic, generateTestResults, generateTree, generateTreeByCategories, } from "./generators.js";
16
16
  import { InMemoryReportDataWriter, ReportFileDataWriter } from "./writer.js";
17
- export class AwesomePlugin {
17
+ export class ClassicPlugin {
18
18
  constructor(options = {}) {
19
19
  this.options = options;
20
- _AwesomePlugin_writer.set(this, void 0);
21
- _AwesomePlugin_generate.set(this, async (context, store) => {
20
+ _ClassicPlugin_writer.set(this, void 0);
21
+ _ClassicPlugin_generate.set(this, async (context, store) => {
22
22
  const { singleFile, groupBy = [] } = this.options ?? {};
23
23
  const environmentItems = await store.metadataByKey("allure_environment");
24
24
  const statistic = await store.testsStatistic();
25
25
  const attachments = await store.allAttachments();
26
- await generateStatistic(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), statistic);
27
- await generatePieChart(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), statistic);
28
- const convertedTrs = await generateTestResults(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), store);
26
+ await generateStatistic(__classPrivateFieldGet(this, _ClassicPlugin_writer, "f"), statistic);
27
+ await generatePieChart(__classPrivateFieldGet(this, _ClassicPlugin_writer, "f"), statistic);
28
+ const convertedTrs = await generateTestResults(__classPrivateFieldGet(this, _ClassicPlugin_writer, "f"), store);
29
29
  const treeLabels = preciseTreeLabels(!groupBy.length ? ["parentSuite", "suite", "subSuite"] : groupBy, convertedTrs, ({ labels }) => labels.map(({ name }) => name));
30
30
  const behaviorLabels = preciseTreeLabels(!groupBy.length ? ["epic", "feature", "story"] : groupBy, convertedTrs, ({ labels }) => labels.map(({ name }) => name));
31
31
  const packagesLabels = preciseTreeLabels(!groupBy.length ? ["package"] : groupBy, convertedTrs, ({ labels }) => labels.map(({ name }) => name));
32
- await generateTreeByCategories(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), "categories", convertedTrs);
33
- await generateTree(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), "tree", treeLabels, convertedTrs);
34
- await generateTree(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), "behaviors", behaviorLabels, convertedTrs);
35
- await generateTree(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), "packages", packagesLabels, convertedTrs);
36
- await generateHistoryDataPoints(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), store);
32
+ await generateTreeByCategories(__classPrivateFieldGet(this, _ClassicPlugin_writer, "f"), "categories", convertedTrs);
33
+ await generateTree(__classPrivateFieldGet(this, _ClassicPlugin_writer, "f"), "tree", treeLabels, convertedTrs);
34
+ await generateTree(__classPrivateFieldGet(this, _ClassicPlugin_writer, "f"), "behaviors", behaviorLabels, convertedTrs);
35
+ await generateTree(__classPrivateFieldGet(this, _ClassicPlugin_writer, "f"), "packages", packagesLabels, convertedTrs);
36
+ await generateHistoryDataPoints(__classPrivateFieldGet(this, _ClassicPlugin_writer, "f"), store);
37
37
  if (environmentItems?.length) {
38
- await generateEnvironmentJson(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), environmentItems);
38
+ await generateEnvironmentJson(__classPrivateFieldGet(this, _ClassicPlugin_writer, "f"), environmentItems);
39
39
  }
40
40
  if (attachments?.length) {
41
- await generateAttachmentsFiles(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), attachments, (id) => store.attachmentContentById(id));
41
+ await generateAttachmentsFiles(__classPrivateFieldGet(this, _ClassicPlugin_writer, "f"), attachments, (id) => store.attachmentContentById(id));
42
42
  }
43
- const reportDataFiles = singleFile ? __classPrivateFieldGet(this, _AwesomePlugin_writer, "f").reportFiles() : [];
43
+ const reportDataFiles = singleFile ? __classPrivateFieldGet(this, _ClassicPlugin_writer, "f").reportFiles() : [];
44
44
  await generateStaticFiles({
45
45
  ...this.options,
46
46
  allureVersion: context.allureVersion,
@@ -53,23 +53,23 @@ export class AwesomePlugin {
53
53
  this.start = async (context) => {
54
54
  const { singleFile } = this.options;
55
55
  if (singleFile) {
56
- __classPrivateFieldSet(this, _AwesomePlugin_writer, new InMemoryReportDataWriter(), "f");
56
+ __classPrivateFieldSet(this, _ClassicPlugin_writer, new InMemoryReportDataWriter(), "f");
57
57
  return;
58
58
  }
59
- __classPrivateFieldSet(this, _AwesomePlugin_writer, new ReportFileDataWriter(context.reportFiles), "f");
59
+ __classPrivateFieldSet(this, _ClassicPlugin_writer, new ReportFileDataWriter(context.reportFiles), "f");
60
60
  await Promise.resolve();
61
61
  };
62
62
  this.update = async (context, store) => {
63
- if (!__classPrivateFieldGet(this, _AwesomePlugin_writer, "f")) {
63
+ if (!__classPrivateFieldGet(this, _ClassicPlugin_writer, "f")) {
64
64
  throw new Error("call start first");
65
65
  }
66
- await __classPrivateFieldGet(this, _AwesomePlugin_generate, "f").call(this, context, store);
66
+ await __classPrivateFieldGet(this, _ClassicPlugin_generate, "f").call(this, context, store);
67
67
  };
68
68
  this.done = async (context, store) => {
69
- if (!__classPrivateFieldGet(this, _AwesomePlugin_writer, "f")) {
69
+ if (!__classPrivateFieldGet(this, _ClassicPlugin_writer, "f")) {
70
70
  throw new Error("call start first");
71
71
  }
72
- await __classPrivateFieldGet(this, _AwesomePlugin_generate, "f").call(this, context, store);
72
+ await __classPrivateFieldGet(this, _ClassicPlugin_generate, "f").call(this, context, store);
73
73
  };
74
74
  }
75
75
  async info(context, store) {
@@ -87,4 +87,4 @@ export class AwesomePlugin {
87
87
  };
88
88
  }
89
89
  }
90
- _AwesomePlugin_writer = new WeakMap(), _AwesomePlugin_generate = new WeakMap();
90
+ _ClassicPlugin_writer = new WeakMap(), _ClassicPlugin_generate = new WeakMap();
package/dist/writer.d.ts CHANGED
@@ -4,13 +4,13 @@ export interface ReportFile {
4
4
  name: string;
5
5
  value: string;
6
6
  }
7
- export interface AwesomeDataWriter {
7
+ export interface ClassicDataWriter {
8
8
  writeData(fileName: string, data: any): Promise<void>;
9
9
  writeWidget(fileName: string, data: any): Promise<void>;
10
10
  writeTestCase(test: AwesomeTestResult): Promise<void>;
11
11
  writeAttachment(source: string, file: ResultFile): Promise<void>;
12
12
  }
13
- export declare class FileSystemReportDataWriter implements AwesomeDataWriter {
13
+ export declare class FileSystemReportDataWriter implements ClassicDataWriter {
14
14
  private readonly output;
15
15
  constructor(output: string);
16
16
  writeData(fileName: string, data: any): Promise<void>;
@@ -18,7 +18,7 @@ export declare class FileSystemReportDataWriter implements AwesomeDataWriter {
18
18
  writeTestCase(test: AwesomeTestResult): Promise<void>;
19
19
  writeAttachment(source: string, file: ResultFile): Promise<void>;
20
20
  }
21
- export declare class InMemoryReportDataWriter implements AwesomeDataWriter {
21
+ export declare class InMemoryReportDataWriter implements ClassicDataWriter {
22
22
  #private;
23
23
  writeData(fileName: string, data: any): Promise<void>;
24
24
  writeWidget(fileName: string, data: any): Promise<void>;
@@ -26,7 +26,7 @@ export declare class InMemoryReportDataWriter implements AwesomeDataWriter {
26
26
  writeAttachment(fileName: string, file: ResultFile): Promise<void>;
27
27
  reportFiles(): ReportFile[];
28
28
  }
29
- export declare class ReportFileDataWriter implements AwesomeDataWriter {
29
+ export declare class ReportFileDataWriter implements ClassicDataWriter {
30
30
  readonly reportFiles: ReportFiles;
31
31
  constructor(reportFiles: ReportFiles);
32
32
  writeData(fileName: string, data: any): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allurereport/plugin-classic",
3
- "version": "3.0.0-beta.14",
3
+ "version": "3.0.0-beta.16",
4
4
  "description": "The classic version of Allure HTML report",
5
5
  "keywords": [
6
6
  "allure",
@@ -30,11 +30,11 @@
30
30
  "test": "rimraf ./out && vitest run"
31
31
  },
32
32
  "dependencies": {
33
- "@allurereport/core-api": "3.0.0-beta.14",
34
- "@allurereport/plugin-api": "3.0.0-beta.14",
35
- "@allurereport/web-awesome": "3.0.0-beta.14",
36
- "@allurereport/web-classic": "3.0.0-beta.14",
37
- "@allurereport/web-commons": "3.0.0-beta.14",
33
+ "@allurereport/core-api": "3.0.0-beta.16",
34
+ "@allurereport/plugin-api": "3.0.0-beta.16",
35
+ "@allurereport/web-awesome": "3.0.0-beta.16",
36
+ "@allurereport/web-classic": "3.0.0-beta.16",
37
+ "@allurereport/web-commons": "3.0.0-beta.16",
38
38
  "d3-shape": "^3.2.0",
39
39
  "handlebars": "^4.7.8"
40
40
  },
@@ -45,7 +45,7 @@
45
45
  "@types/node": "^20.17.9",
46
46
  "@typescript-eslint/eslint-plugin": "^8.0.0",
47
47
  "@typescript-eslint/parser": "^8.0.0",
48
- "@vitest/runner": "^2.1.8",
48
+ "@vitest/runner": "^2.1.9",
49
49
  "allure-vitest": "^3.0.9",
50
50
  "eslint": "^8.57.0",
51
51
  "eslint-config-prettier": "^9.1.0",
@@ -56,6 +56,6 @@
56
56
  "eslint-plugin-prefer-arrow": "^1.2.3",
57
57
  "rimraf": "^6.0.1",
58
58
  "typescript": "^5.6.3",
59
- "vitest": "^2.1.8"
59
+ "vitest": "^2.1.9"
60
60
  }
61
61
  }