@allurereport/plugin-awesome 3.9.0 → 3.10.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/README.md +21 -0
- package/dist/generators.d.ts +4 -1
- package/dist/generators.js +17 -1
- package/dist/model.d.ts +1 -0
- package/dist/plugin.js +5 -1
- package/package.json +13 -13
package/README.md
CHANGED
|
@@ -58,6 +58,27 @@ The plugin accepts the following options:
|
|
|
58
58
|
| `groupBy` | Grouping tests by labels or combining labels. By default, tests are grouped using the `titlePath` provided by the test framework. | `string` | `[]`(Grouping by `titlepath`) |
|
|
59
59
|
| `appendTitlePath`| Special marker for `groupBy`. Forces a final grouping by `titlePath` after all label-based groups. | `boolean` | `false` |
|
|
60
60
|
| `stepTreeExpansion` | Default expansion policy for step trees in test details. | `"collapsed" \| "expand_failed_only" \| "expanded"` | `"expand_failed_only"` |
|
|
61
|
+
| `defaultSortBy` | Default sort order for the test tree. Accepted values: `order,asc`, `order,desc`, `duration,asc`, `duration,desc`, `name,asc`, `name,desc`, `status,asc`, `status,desc`. User's manual selection is preserved in `localStorage` and takes priority over this value. | `string` | `order,asc` |
|
|
62
|
+
|
|
63
|
+
### Default sort order
|
|
64
|
+
|
|
65
|
+
Use `defaultSortBy` to change the initial sort order of the test tree:
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
import { defineConfig } from "allure";
|
|
69
|
+
|
|
70
|
+
export default defineConfig({
|
|
71
|
+
plugins: {
|
|
72
|
+
awesome: {
|
|
73
|
+
options: {
|
|
74
|
+
defaultSortBy: "name,asc",
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
The user's last selected sort order is always preserved in `localStorage`, so once a user changes the sort manually, their preference takes priority over the configured default.
|
|
61
82
|
|
|
62
83
|
### Step tree expansion
|
|
63
84
|
|
package/dist/generators.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type AttachmentLink, type EnvironmentIdentity, type EnvironmentItem, type Statistic, type TestEnvGroup, type TestResult } from "@allurereport/core-api";
|
|
2
2
|
import type { AllureStore, ExitCode, PluginContext, PluginGlobalAttachment, PluginGlobalError, QualityGateValidationResult, ReportFiles, ResultFile } from "@allurereport/plugin-api";
|
|
3
|
-
import type { AwesomeTestResult } from "@allurereport/web-awesome";
|
|
3
|
+
import type { AwesomeExecutorInfo, AwesomeRunSummary, 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>;
|
|
@@ -11,6 +11,7 @@ export declare const generateTestCases: (writer: AwesomeDataWriter, trs: Awesome
|
|
|
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
13
|
export declare const generateSearchIndex: (writer: AwesomeDataWriter, trs: AwesomeTestResult[], filename?: string) => Promise<void>;
|
|
14
|
+
export declare const getRunSummary: (testResults: Pick<TestResult, "start" | "stop">[]) => AwesomeRunSummary | undefined;
|
|
14
15
|
export declare const generateTree: (writer: AwesomeDataWriter, treeFilename: string, labels: string[], tests: AwesomeTestResult[], options?: {
|
|
15
16
|
appendTitlePath?: boolean;
|
|
16
17
|
}) => Promise<void>;
|
|
@@ -40,6 +41,8 @@ export declare const generateStaticFiles: (payload: AwesomeOptions & {
|
|
|
40
41
|
reportDataFiles: ReportFile[];
|
|
41
42
|
reportUuid: string;
|
|
42
43
|
reportName: string;
|
|
44
|
+
executor?: AwesomeExecutorInfo;
|
|
45
|
+
runSummary?: AwesomeRunSummary;
|
|
43
46
|
}) => Promise<void>;
|
|
44
47
|
export declare const generateAllCharts: (writer: AwesomeDataWriter, store: AllureStore, options: AwesomeOptions, context: PluginContext) => Promise<void>;
|
|
45
48
|
export declare const generateTreeFilters: (writer: AwesomeDataWriter, testResults: AwesomeTestResult[]) => Promise<void>;
|
package/dist/generators.js
CHANGED
|
@@ -172,6 +172,19 @@ export const generateSearchIndex = async (writer, trs, filename = "search-index.
|
|
|
172
172
|
const searchDocuments = trs.filter(({ isRetry }) => !isRetry).map(searchDocumentFactory);
|
|
173
173
|
await writer.writeWidget(filename, searchDocuments);
|
|
174
174
|
};
|
|
175
|
+
export const getRunSummary = (testResults) => {
|
|
176
|
+
let start = Infinity;
|
|
177
|
+
let stop = -Infinity;
|
|
178
|
+
for (const { start: s, stop: e } of testResults) {
|
|
179
|
+
if (typeof s === "number" && Number.isFinite(s) && typeof e === "number" && Number.isFinite(e)) {
|
|
180
|
+
start = Math.min(start, s);
|
|
181
|
+
stop = Math.max(stop, e);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return Number.isFinite(start) && Number.isFinite(stop)
|
|
185
|
+
? { start, stop, duration: Math.max(0, stop - start) }
|
|
186
|
+
: undefined;
|
|
187
|
+
};
|
|
175
188
|
export const generateTree = async (writer, treeFilename, labels, tests, options) => {
|
|
176
189
|
const visibleTests = tests.filter((test) => !test.isRetry);
|
|
177
190
|
const { appendTitlePath } = options || {};
|
|
@@ -362,7 +375,7 @@ export const generateQualityGateResults = async (writer, qualityGateResults = {}
|
|
|
362
375
|
await writer.writeWidget("quality-gate.json", qualityGateResults);
|
|
363
376
|
};
|
|
364
377
|
export const generateStaticFiles = async (payload) => {
|
|
365
|
-
const { id, reportName = "Allure Report", reportLanguage = "en", singleFile, logo = "", theme = "auto", groupBy, reportFiles, reportDataFiles, reportUuid, allureVersion, layout = "base", defaultSection = "", ci, stepTreeExpansion, } = payload;
|
|
378
|
+
const { id, reportName = "Allure Report", reportLanguage = "en", singleFile, logo = "", theme = "auto", groupBy, reportFiles, reportDataFiles, reportUuid, allureVersion, layout = "base", defaultSection = "", ci, executor, runSummary, stepTreeExpansion, defaultSortBy, } = payload;
|
|
366
379
|
const manifest = await readTemplateManifest(payload.singleFile);
|
|
367
380
|
const headTags = [];
|
|
368
381
|
const bodyTags = [];
|
|
@@ -409,11 +422,14 @@ export const generateStaticFiles = async (payload) => {
|
|
|
409
422
|
groupBy: groupBy?.length ? groupBy : [],
|
|
410
423
|
cacheKey: now.toString(),
|
|
411
424
|
ci,
|
|
425
|
+
executor,
|
|
426
|
+
runSummary,
|
|
412
427
|
layout,
|
|
413
428
|
allureVersion,
|
|
414
429
|
sections,
|
|
415
430
|
defaultSection,
|
|
416
431
|
stepTreeExpansion,
|
|
432
|
+
defaultSortBy,
|
|
417
433
|
};
|
|
418
434
|
try {
|
|
419
435
|
const html = compiledTemplate({
|
package/dist/model.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export type AwesomeOptions = {
|
|
|
21
21
|
publish?: boolean;
|
|
22
22
|
appendTitlePath?: boolean;
|
|
23
23
|
stepTreeExpansion?: StepTreeExpansion;
|
|
24
|
+
defaultSortBy?: string;
|
|
24
25
|
};
|
|
25
26
|
export type TemplateManifest = Record<string, string>;
|
|
26
27
|
export type AwesomePluginOptions = AwesomeOptions;
|
package/dist/plugin.js
CHANGED
|
@@ -15,7 +15,7 @@ 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, generateSearchIndex, 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, getRunSummary, } from "./generators.js";
|
|
19
19
|
import { InMemoryReportDataWriter, ReportFileDataWriter } from "./writer.js";
|
|
20
20
|
const statisticByTestResults = async (store, testResults) => {
|
|
21
21
|
const statistic = { total: 0 };
|
|
@@ -46,8 +46,10 @@ export class AwesomePlugin {
|
|
|
46
46
|
const hideLabels = context.hideLabels;
|
|
47
47
|
const categories = context.categories ?? [];
|
|
48
48
|
const environmentItems = await store.metadataByKey("allure_environment");
|
|
49
|
+
const executor = await store.metadataByKey("allure2_executor");
|
|
49
50
|
const attachments = await store.allAttachments();
|
|
50
51
|
const allTrs = await store.allTestResults({ includeRetries: true, filter });
|
|
52
|
+
const runSummary = getRunSummary(allTrs);
|
|
51
53
|
const statistics = await store.testsStatistic(filter);
|
|
52
54
|
const environments = await store.allEnvironmentIdentities();
|
|
53
55
|
const envStatistics = new Map();
|
|
@@ -142,6 +144,8 @@ export class AwesomePlugin {
|
|
|
142
144
|
reportUuid: context.reportUuid,
|
|
143
145
|
reportName: context.reportName,
|
|
144
146
|
ci: context.ci,
|
|
147
|
+
executor,
|
|
148
|
+
runSummary,
|
|
145
149
|
reportDataFiles,
|
|
146
150
|
});
|
|
147
151
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@allurereport/plugin-awesome",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.10.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.10.0",
|
|
34
|
+
"@allurereport/core-api": "3.10.0",
|
|
35
|
+
"@allurereport/plugin-api": "3.10.0",
|
|
36
|
+
"@allurereport/web-awesome": "3.10.0",
|
|
37
|
+
"@allurereport/web-commons": "3.10.0",
|
|
38
38
|
"d3-shape": "^3.2.0",
|
|
39
39
|
"handlebars": "^4.7.9",
|
|
40
40
|
"markdown-it": "^14.1.0"
|
|
@@ -42,12 +42,12 @@
|
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/d3-shape": "^3.1.6",
|
|
44
44
|
"@types/markdown-it": "^14.1.2",
|
|
45
|
-
"@types/node": "^20
|
|
46
|
-
"@vitest/runner": "^2
|
|
47
|
-
"allure-js-commons": "^3
|
|
48
|
-
"allure-vitest": "^3
|
|
49
|
-
"rimraf": "^6
|
|
50
|
-
"typescript": "^5
|
|
51
|
-
"vitest": "^
|
|
45
|
+
"@types/node": "^20",
|
|
46
|
+
"@vitest/runner": "^2",
|
|
47
|
+
"allure-js-commons": "^3",
|
|
48
|
+
"allure-vitest": "^3",
|
|
49
|
+
"rimraf": "^6",
|
|
50
|
+
"typescript": "^5",
|
|
51
|
+
"vitest": "^4.1.0"
|
|
52
52
|
}
|
|
53
53
|
}
|