@allurereport/plugin-awesome 3.0.0 → 3.1.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.
@@ -37,3 +37,4 @@ export declare const generateStaticFiles: (payload: AwesomeOptions & {
37
37
  reportName: string;
38
38
  }) => Promise<void>;
39
39
  export declare const generateAllCharts: (writer: AwesomeDataWriter, store: AllureStore, options: AwesomeOptions, context: PluginContext) => Promise<void>;
40
+ export declare const generateTreeFilters: (writer: AwesomeDataWriter, store: AllureStore) => Promise<void>;
@@ -16,6 +16,9 @@ const template = `<!DOCTYPE html>
16
16
  <title> {{ reportName }} </title>
17
17
  <link rel="icon" href="data:image/svg+xml,%3Csvg width='32' height='32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M22.232 4.662a3.6 3.6 0 0 1 5.09.035c2.855 2.894 4.662 6.885 4.662 11.295a3.6 3.6 0 0 1-7.2 0c0-2.406-.981-4.61-2.587-6.24a3.6 3.6 0 0 1 .035-5.09Z' fill='url(%23a)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12.392 3.6a3.6 3.6 0 0 1 3.6-3.6c4.41 0 8.401 1.807 11.296 4.662a3.6 3.6 0 1 1-5.056 5.126C20.602 8.18 18.398 7.2 15.992 7.2a3.6 3.6 0 0 1-3.6-3.6Z' fill='url(%23b)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0 15.992C0 7.157 7.157 0 15.992 0a3.6 3.6 0 0 1 0 7.2A8.789 8.789 0 0 0 7.2 15.992c0 2.406.981 4.61 2.588 6.24a3.6 3.6 0 0 1-5.126 5.056C1.807 24.393 0 20.402 0 15.992Z' fill='url(%23c)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.661 22.232a3.6 3.6 0 0 1 5.091-.035c1.63 1.606 3.834 2.587 6.24 2.587a3.6 3.6 0 0 1 0 7.2c-4.41 0-8.401-1.807-11.295-4.661a3.6 3.6 0 0 1-.036-5.091Z' fill='url(%23d)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M28.384 12.392a3.6 3.6 0 0 1 3.6 3.6c0 8.835-7.157 15.992-15.992 15.992a3.6 3.6 0 0 1 0-7.2 8.789 8.789 0 0 0 8.792-8.792 3.6 3.6 0 0 1 3.6-3.6Z' fill='url(%23e)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M28.385 12.392a3.6 3.6 0 0 1 3.6 3.6v12.392a3.6 3.6 0 0 1-7.2 0V15.992a3.6 3.6 0 0 1 3.6-3.6Z' fill='url(%23f)'/%3E%3Cg clip-path='url(%23g)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M22.232 4.662a3.6 3.6 0 0 1 5.091.035c2.855 2.894 4.662 6.885 4.662 11.295a3.6 3.6 0 0 1-7.2 0c0-2.406-.982-4.61-2.588-6.24a3.6 3.6 0 0 1 .035-5.09Z' fill='url(%23h)'/%3E%3C/g%3E%3Cdefs%3E%3ClinearGradient id='a' x1='26.4' y1='9.6' x2='28.8' y2='15' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%237E22CE'/%3E%3Cstop offset='1' stop-color='%238B5CF6'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='26.8' y1='9.4' x2='17.8' y2='3.6' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23EF4444'/%3E%3Cstop offset='1' stop-color='%23DC2626'/%3E%3C/linearGradient%3E%3ClinearGradient id='c' x1='3.6' y1='14' x2='5.4' y2='24.8' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2322C55E'/%3E%3Cstop offset='1' stop-color='%2315803D'/%3E%3C/linearGradient%3E%3ClinearGradient id='d' x1='4.8' y1='22.2' x2='14.4' y2='29.2' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2394A3B8'/%3E%3Cstop offset='.958' stop-color='%2364748B'/%3E%3Cstop offset='1' stop-color='%2364748B'/%3E%3C/linearGradient%3E%3ClinearGradient id='e' x1='28.4' y1='22.173' x2='22.188' y2='28.384' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23D97706'/%3E%3Cstop offset='1' stop-color='%23FBBF24'/%3E%3C/linearGradient%3E%3ClinearGradient id='f' x1='29.2' y1='54.4' x2='30.626' y2='54.256' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23FBBF24'/%3E%3Cstop offset='1' stop-color='%23FBBF24'/%3E%3C/linearGradient%3E%3ClinearGradient id='h' x1='26.4' y1='9.6' x2='28.8' y2='15' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%237E22CE'/%3E%3Cstop offset='1' stop-color='%238B5CF6'/%3E%3C/linearGradient%3E%3CclipPath id='g'%3E%3Cpath fill='%23fff' transform='translate(24.8 12)' d='M0 0h7.2v8H0z'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E" />
18
18
  {{{ headTags }}}
19
+ <script>
20
+ window.allureReportOptions = {{{ reportOptions }}}
21
+ </script>
19
22
  </head>
20
23
  <body>
21
24
  <div id="app"></div>
@@ -38,9 +41,6 @@ const template = `<!DOCTYPE html>
38
41
  });
39
42
  </script>
40
43
  {{/if}}
41
- <script>
42
- window.allureReportOptions = {{{ reportOptions }}}
43
- </script>
44
44
  {{{ reportFilesScript }}}
45
45
  </body>
46
46
  </html>
@@ -135,7 +135,9 @@ export const generateTree = async (writer, treeFilename, labels, tests, options)
135
135
  await writer.writeWidget(treeFilename, tree);
136
136
  };
137
137
  const buildTreeByLabels = (tests, labels) => {
138
- return createTreeByLabels(tests, labels, leafFactory, undefined, (group, leaf) => incrementStatistic(group.statistic, leaf.status));
138
+ return createTreeByLabels(tests, labels, leafFactory, undefined, (group, leaf) => {
139
+ incrementStatistic(group.statistic, leaf.status);
140
+ });
139
141
  };
140
142
  const buildTreeByTitlePath = (tests) => {
141
143
  const testsWithTitlePath = [];
@@ -188,17 +190,25 @@ const buildTreeByTitlePath = (tests) => {
188
190
  };
189
191
  };
190
192
  const buildTreeByLabelsAndTitlePathCombined = (tests, labels) => createTreeByLabelsAndTitlePath(tests, labels, leafFactory, undefined, (group, leaf) => incrementStatistic(group.statistic, leaf.status));
191
- const leafFactory = ({ id, name, status, duration, flaky, start, transition, retry, retriesCount, }) => ({
192
- nodeId: id,
193
- name,
194
- status,
195
- duration,
196
- flaky,
197
- start,
198
- retry,
199
- retriesCount,
200
- transition,
201
- });
193
+ const leafFactory = ({ id, name, status, duration, flaky, start, retry, retriesCount, transition, tooltips, historyId, groupedLabels, }) => {
194
+ const leaf = {
195
+ nodeId: id,
196
+ id: historyId ?? id,
197
+ name,
198
+ status,
199
+ duration,
200
+ flaky,
201
+ start,
202
+ retry,
203
+ retriesCount,
204
+ transition,
205
+ tooltips,
206
+ };
207
+ if (groupedLabels.tag && groupedLabels.tag.length > 0) {
208
+ leaf.tags = groupedLabels.tag;
209
+ }
210
+ return leaf;
211
+ };
202
212
  export const generateEnvironmentJson = async (writer, env) => {
203
213
  await writer.writeWidget("allure_environment.json", env);
204
214
  };
@@ -355,3 +365,22 @@ export const generateAllCharts = async (writer, store, options, context) => {
355
365
  await writer.writeWidget("charts.json", generatedChartsData);
356
366
  }
357
367
  };
368
+ export const generateTreeFilters = async (writer, store) => {
369
+ const trTags = new Set();
370
+ const trs = await store.allTestResults({ includeHidden: false });
371
+ for (const tr of trs) {
372
+ if (tr.labels.length === 0) {
373
+ continue;
374
+ }
375
+ tr.labels.forEach((label) => {
376
+ if (label.name === "tag" && !!label.value) {
377
+ trTags.add(label.value);
378
+ }
379
+ });
380
+ }
381
+ if (trTags.size === 0) {
382
+ return Promise.resolve();
383
+ }
384
+ const tags = Array.from(trTags).sort((a, b) => a.localeCompare(b));
385
+ await writer.writeWidget("tree-filters.json", { tags });
386
+ };
package/dist/plugin.js CHANGED
@@ -16,7 +16,7 @@ import { preciseTreeLabels } from "@allurereport/plugin-api";
16
16
  import { join } from "node:path";
17
17
  import { filterEnv } from "./environments.js";
18
18
  import { generateTimeline } from "./generateTimeline.js";
19
- import { generateAllCharts, generateAttachmentsFiles, generateEnvironmentJson, generateEnvirontmentsList, generateGlobals, generateHistoryDataPoints, generateNav, generateQualityGateResults, generateStaticFiles, generateStatistic, generateTestCases, generateTestEnvGroups, generateTestResults, generateTree, generateVariables, } from "./generators.js";
19
+ import { generateAllCharts, generateAttachmentsFiles, generateEnvironmentJson, generateEnvirontmentsList, generateGlobals, generateHistoryDataPoints, generateNav, generateQualityGateResults, generateStaticFiles, generateStatistic, generateTestCases, generateTestEnvGroups, generateTestResults, generateTree, generateTreeFilters, generateVariables, } from "./generators.js";
20
20
  import { InMemoryReportDataWriter, ReportFileDataWriter } from "./writer.js";
21
21
  export class AwesomePlugin {
22
22
  constructor(options = {}) {
@@ -63,6 +63,7 @@ export class AwesomePlugin {
63
63
  });
64
64
  await generateNav(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), envConvertedTrs, join(reportEnvironment, "nav.json"));
65
65
  }
66
+ await generateTreeFilters(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), store);
66
67
  await generateEnvirontmentsList(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), store);
67
68
  await generateVariables(__classPrivateFieldGet(this, _AwesomePlugin_writer, "f"), store);
68
69
  if (environmentItems?.length) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allurereport/plugin-awesome",
3
- "version": "3.0.0",
3
+ "version": "3.1.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
  "test": "rimraf ./out && vitest run"
31
31
  },
32
32
  "dependencies": {
33
- "@allurereport/charts-api": "3.0.0",
34
- "@allurereport/core-api": "3.0.0",
35
- "@allurereport/plugin-api": "3.0.0",
36
- "@allurereport/web-awesome": "3.0.0",
37
- "@allurereport/web-commons": "3.0.0",
33
+ "@allurereport/charts-api": "3.1.0",
34
+ "@allurereport/core-api": "3.1.0",
35
+ "@allurereport/plugin-api": "3.1.0",
36
+ "@allurereport/web-awesome": "3.1.0",
37
+ "@allurereport/web-commons": "3.1.0",
38
38
  "d3-shape": "^3.2.0",
39
39
  "handlebars": "^4.7.8"
40
40
  },