@allurereport/web-awesome 3.3.1 → 3.4.1
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/multi/173.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/174.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/252.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/282.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/29.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/310.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/416.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/507.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/527.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/600.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/605.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/638.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/672.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/686.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/725.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/741.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/749.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/755.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/{894.app-8be6acc0a596a2197dbf.js → 894.app-648d4a8e7d5405e104a1.js} +1 -1
- package/dist/multi/943.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/980.app-648d4a8e7d5405e104a1.js +1 -0
- package/dist/multi/app-648d4a8e7d5405e104a1.js +2 -0
- package/dist/multi/{app-8be6acc0a596a2197dbf.js.LICENSE.txt → app-648d4a8e7d5405e104a1.js.LICENSE.txt} +1 -1
- package/dist/multi/manifest.json +23 -21
- package/dist/multi/{styles-0b84e1ef76554ad2db9a.css → styles-b72a0161ddf41447b31c.css} +10 -10
- package/dist/single/app-ae966ad3dc27579d6c39.js +2 -0
- package/dist/single/{app-8221eb856e47b4ef50d6.js.LICENSE.txt → app-ae966ad3dc27579d6c39.js.LICENSE.txt} +1 -1
- package/dist/single/manifest.json +1 -1
- package/package.json +18 -36
- package/src/components/BaseLayout/index.tsx +2 -0
- package/src/components/Categories/CategoriesTree/index.tsx +2 -0
- package/src/components/Categories/CategoryHeaderItem/index.tsx +2 -0
- package/src/components/Categories/CategoryTreeItem/index.tsx +2 -0
- package/src/components/Categories/GroupTreeItem/index.tsx +2 -0
- package/src/components/Categories/HistoryTreeItem/index.tsx +2 -0
- package/src/components/Categories/LabelTreeItem/index.tsx +2 -0
- package/src/components/Categories/MessageTreeItem/index.tsx +2 -0
- package/src/components/Categories/SeverityTreeItem/index.tsx +2 -0
- package/src/components/Charts/index.tsx +3 -0
- package/src/components/EnvironmentPicker/index.tsx +78 -18
- package/src/components/EnvironmentPicker/styles.scss +19 -0
- package/src/components/Footer/FooterLogo.tsx +1 -0
- package/src/components/Footer/FooterVersion.tsx +2 -0
- package/src/components/Footer/index.tsx +3 -1
- package/src/components/Header/CiInfo/index.tsx +17 -3
- package/src/components/Header/index.tsx +3 -0
- package/src/components/Header/styles.scss +1 -0
- package/src/components/HeaderControls/index.tsx +1 -0
- package/src/components/MainReport/index.tsx +3 -0
- package/src/components/Metadata/index.tsx +2 -0
- package/src/components/MetadataButton/index.tsx +35 -8
- package/src/components/MetadataButton/styles.scss +20 -0
- package/src/components/Modal/index.tsx +2 -0
- package/src/components/NavTabs/index.tsx +2 -1
- package/src/components/ReportBody/HeaderActions.tsx +1 -0
- package/src/components/ReportBody/SortBy.tsx +2 -0
- package/src/components/ReportBody/index.tsx +4 -1
- package/src/components/ReportCategories/index.tsx +2 -0
- package/src/components/ReportFilters/BaseFilters.tsx +2 -0
- package/src/components/ReportFilters/CategoriesFilter.tsx +2 -0
- package/src/components/ReportFilters/RetryFlaky.tsx +2 -0
- package/src/components/ReportFilters/TagsFilter.tsx +2 -0
- package/src/components/ReportFilters/TransitionFilter.tsx +2 -0
- package/src/components/ReportFilters/index.tsx +3 -0
- package/src/components/ReportGlobalAttachments/index.tsx +3 -0
- package/src/components/ReportGlobalErrors/index.tsx +2 -0
- package/src/components/ReportHeader/ReportHeaderLabelList.tsx +1 -0
- package/src/components/ReportHeader/ReportHeaderLogo.tsx +3 -1
- package/src/components/ReportHeader/ReportHeaderPie.tsx +2 -0
- package/src/components/ReportHeader/index.tsx +2 -0
- package/src/components/ReportMetadata/MetadataItem.tsx +1 -0
- package/src/components/ReportMetadata/MetadataSummary.tsx +3 -1
- package/src/components/ReportMetadata/MetadataTestType.tsx +2 -0
- package/src/components/ReportMetadata/MetadataWithIcon.tsx +2 -0
- package/src/components/ReportMetadata/index.tsx +61 -17
- package/src/components/ReportQualityGateResults/index.tsx +6 -2
- package/src/components/ReportSearch/index.tsx +1 -0
- package/src/components/ReportTabs/index.tsx +3 -0
- package/src/components/SectionPicker/index.tsx +2 -0
- package/src/components/SectionSwitcher/index.tsx +3 -0
- package/src/components/SideBySide/index.tsx +1 -0
- package/src/components/SplitLayout/index.tsx +2 -0
- package/src/components/TestResult/TestStepsEmpty/index.tsx +2 -0
- package/src/components/TestResult/TrAttachmentsView/index.tsx +2 -0
- package/src/components/TestResult/TrDescription/index.tsx +16 -3
- package/src/components/TestResult/TrDropdown/index.tsx +1 -0
- package/src/components/TestResult/TrEmpty/index.tsx +3 -1
- package/src/components/TestResult/TrEnvironmentItem/index.tsx +3 -0
- package/src/components/TestResult/TrEnvironmentsView/index.tsx +8 -2
- package/src/components/TestResult/TrError/TrDiff.tsx +3 -1
- package/src/components/TestResult/TrError/index.tsx +20 -18
- package/src/components/TestResult/TrError/styles.scss +0 -25
- package/src/components/TestResult/TrHeader/TrBreadcrumbs.tsx +3 -1
- package/src/components/TestResult/TrHeader/index.tsx +2 -0
- package/src/components/TestResult/TrHeader/styles.scss +1 -0
- package/src/components/TestResult/TrHistory/TrHistoryItem.tsx +3 -1
- package/src/components/TestResult/TrHistory/index.tsx +2 -0
- package/src/components/TestResult/TrInfo/TrInfoStatuses.tsx +2 -0
- package/src/components/TestResult/TrInfo/index.tsx +2 -0
- package/src/components/TestResult/TrLinks/index.tsx +63 -11
- package/src/components/TestResult/TrMetadata/index.tsx +44 -5
- package/src/components/TestResult/TrNavigation/index.tsx +2 -0
- package/src/components/TestResult/TrOverview.tsx +20 -17
- package/src/components/TestResult/TrParameters/index.tsx +41 -7
- package/src/components/TestResult/TrPrevStatuses/index.tsx +2 -0
- package/src/components/TestResult/TrPwTraces/PwTraceButton.tsx +44 -9
- package/src/components/TestResult/TrPwTraces/index.tsx +5 -1
- package/src/components/TestResult/TrPwTraces/openPwTraceInNewTab.ts +29 -0
- package/src/components/TestResult/TrRetriesView/TrRetriesItem.tsx +3 -1
- package/src/components/TestResult/TrRetriesView/index.tsx +2 -0
- package/src/components/TestResult/TrSetup/index.tsx +3 -1
- package/src/components/TestResult/TrSeverity/index.tsx +2 -0
- package/src/components/TestResult/TrStatus/index.tsx +2 -0
- package/src/components/TestResult/TrSteps/TrAttachment.tsx +38 -6
- package/src/components/TestResult/TrSteps/TrAttachmentInfo.tsx +50 -2
- package/src/components/TestResult/TrSteps/TrBodyItems.tsx +42 -0
- package/src/components/TestResult/TrSteps/TrErrorStep.tsx +40 -0
- package/src/components/TestResult/TrSteps/TrStep.tsx +31 -65
- package/src/components/TestResult/TrSteps/TrStepHeader.tsx +50 -0
- package/src/components/TestResult/TrSteps/TrStepInfo.tsx +1 -0
- package/src/components/TestResult/TrSteps/index.tsx +12 -32
- package/src/components/TestResult/TrSteps/styles.scss +8 -0
- package/src/components/TestResult/TrSteps/wrongAttachment.tsx +2 -1
- package/src/components/TestResult/TrTabs/index.tsx +1 -0
- package/src/components/TestResult/TrTeardown/index.tsx +3 -1
- package/src/components/TestResult/bodyItems.ts +151 -0
- package/src/components/TestResult/index.tsx +2 -0
- package/src/components/Timeline/index.tsx +12 -2
- package/src/components/ToggleLayout/index.tsx +1 -0
- package/src/components/Tree/index.tsx +6 -2
- package/src/components/Tree/styles.scss +11 -0
- package/src/index.tsx +9 -3
- package/src/locales/ar.json +427 -0
- package/src/locales/az.json +43 -46
- package/src/locales/de.json +5 -0
- package/src/locales/en.json +5 -0
- package/src/locales/es.json +5 -0
- package/src/locales/fr.json +5 -0
- package/src/locales/he.json +5 -0
- package/src/locales/hy.json +5 -0
- package/src/locales/it.json +5 -0
- package/src/locales/ja.json +5 -0
- package/src/locales/ka.json +5 -0
- package/src/locales/kr.json +5 -0
- package/src/locales/nl.json +5 -0
- package/src/locales/pl.json +5 -0
- package/src/locales/pt.json +5 -0
- package/src/locales/ru.json +5 -0
- package/src/locales/sv.json +5 -0
- package/src/locales/tr.json +5 -0
- package/src/locales/uk.json +5 -0
- package/src/locales/zh-TW.json +432 -0
- package/src/locales/zh.json +5 -0
- package/src/stores/categories.ts +1 -0
- package/src/stores/chart.ts +2 -1
- package/src/stores/env.ts +14 -4
- package/src/stores/envInfo.ts +1 -0
- package/src/stores/globals.ts +1 -0
- package/src/stores/locale.ts +1 -0
- package/src/stores/qualityGate.ts +1 -0
- package/src/stores/sections.ts +1 -0
- package/src/stores/stats.ts +12 -6
- package/src/stores/testResult.ts +1 -0
- package/src/stores/testResults.ts +1 -0
- package/src/stores/timeline.ts +2 -0
- package/src/stores/tree.ts +2 -0
- package/src/stores/treeFilters/actions.ts +1 -0
- package/src/stores/treeFilters/store.ts +1 -0
- package/src/stores/treeFilters/utils.ts +1 -0
- package/src/stores/variables.ts +1 -0
- package/src/utils/time.ts +1 -0
- package/src/utils/treeFilters.ts +2 -0
- package/test/components/EnvironmentPicker.test.tsx +133 -0
- package/test/components/Header/CiInfo.test.tsx +15 -0
- package/test/components/Header.test.tsx +1 -0
- package/test/components/TestResult/PwTraceButton.test.tsx +104 -0
- package/test/components/TestResult/TrErrorStep.test.tsx +127 -0
- package/test/components/TestResult/TrOverview.test.tsx +114 -0
- package/test/components/TestResult/bodyItems.test.ts +194 -0
- package/test/components/TestResult/openPwTraceInNewTab.test.ts +65 -0
- package/test/components/Timeline.test.tsx +104 -0
- package/test/stores/treeFilters/actions.test.ts +82 -0
- package/test/utils/ownerAddress.test.ts +1 -0
- package/test/utils/treeFilters.test.ts +1 -0
- package/tsconfig.json +1 -2
- package/tsconfig.node.json +2 -1
- package/types.d.ts +2 -0
- package/.eslintrc.cjs +0 -18
- package/dist/multi/173.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/174.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/252.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/282.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/29.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/416.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/527.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/600.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/605.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/638.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/672.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/686.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/725.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/741.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/749.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/755.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/943.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/980.app-8be6acc0a596a2197dbf.js +0 -1
- package/dist/multi/app-8be6acc0a596a2197dbf.js +0 -2
- package/dist/single/app-8221eb856e47b4ef50d6.js +0 -2
- package/src/components/TestResult/TrPwTraces/PwTrace.tsx +0 -34
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import type { AttachmentTestStepResult, DefaultTestStepResult } from "@allurereport/core-api";
|
|
2
|
+
import type { AwesomeTestResult } from "types";
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
|
|
5
|
+
import { getBodyItems, getTestLevelErrorId } from "@/components/TestResult/bodyItems";
|
|
6
|
+
|
|
7
|
+
const sampleStep: DefaultTestStepResult = {
|
|
8
|
+
type: "step",
|
|
9
|
+
stepId: "body-step-id",
|
|
10
|
+
name: "body step",
|
|
11
|
+
status: "passed",
|
|
12
|
+
parameters: [],
|
|
13
|
+
steps: [],
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const sampleAttachment: AttachmentTestStepResult = {
|
|
17
|
+
type: "attachment",
|
|
18
|
+
link: {
|
|
19
|
+
id: "attachment-id",
|
|
20
|
+
ext: ".txt",
|
|
21
|
+
name: "assertion",
|
|
22
|
+
used: true,
|
|
23
|
+
missed: false,
|
|
24
|
+
contentType: "text/plain",
|
|
25
|
+
originalFileName: "assertion.txt",
|
|
26
|
+
contentLength: 47,
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const makeTestResult = (
|
|
31
|
+
overrides: Partial<Pick<AwesomeTestResult, "id" | "status" | "steps" | "error">> = {},
|
|
32
|
+
): Pick<AwesomeTestResult, "id" | "status" | "steps" | "error"> => ({
|
|
33
|
+
id: "test-result-id",
|
|
34
|
+
status: "failed",
|
|
35
|
+
steps: [sampleStep],
|
|
36
|
+
error: undefined,
|
|
37
|
+
...overrides,
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
describe("components > TestResult > bodyItems", () => {
|
|
41
|
+
it("should append a test-level error item for failed tests", () => {
|
|
42
|
+
const bodyItems = getBodyItems(
|
|
43
|
+
makeTestResult({ error: { message: "\u001B[31m boom \nsecond line\u001B[39m" } }),
|
|
44
|
+
"Error",
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
expect(bodyItems).toEqual([
|
|
48
|
+
{
|
|
49
|
+
type: "step",
|
|
50
|
+
item: sampleStep,
|
|
51
|
+
bodyItems: [],
|
|
52
|
+
suppressInlineError: false,
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
type: "error",
|
|
56
|
+
id: getTestLevelErrorId("test-result-id"),
|
|
57
|
+
title: "boom",
|
|
58
|
+
status: "failed",
|
|
59
|
+
error: { message: "\u001B[31m boom \nsecond line\u001B[39m" },
|
|
60
|
+
},
|
|
61
|
+
]);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it("should nest the synthetic error into the deepest matching broken step", () => {
|
|
65
|
+
const step3: DefaultTestStepResult = {
|
|
66
|
+
type: "step",
|
|
67
|
+
stepId: "step-3-id",
|
|
68
|
+
name: "step 3",
|
|
69
|
+
status: "broken",
|
|
70
|
+
parameters: [],
|
|
71
|
+
steps: [],
|
|
72
|
+
message: "step 3 error",
|
|
73
|
+
trace: "step 3 trace",
|
|
74
|
+
};
|
|
75
|
+
const step2: DefaultTestStepResult = {
|
|
76
|
+
type: "step",
|
|
77
|
+
stepId: "step-2-id",
|
|
78
|
+
name: "step 2",
|
|
79
|
+
status: "broken",
|
|
80
|
+
parameters: [],
|
|
81
|
+
steps: [step3],
|
|
82
|
+
message: "step 3 error",
|
|
83
|
+
trace: "step 3 trace",
|
|
84
|
+
hasSimilarErrorInSubSteps: true,
|
|
85
|
+
};
|
|
86
|
+
const step1: DefaultTestStepResult = {
|
|
87
|
+
type: "step",
|
|
88
|
+
stepId: "step-1-id",
|
|
89
|
+
name: "step 1",
|
|
90
|
+
status: "broken",
|
|
91
|
+
parameters: [],
|
|
92
|
+
steps: [step2],
|
|
93
|
+
message: "step 3 error",
|
|
94
|
+
trace: "step 3 trace",
|
|
95
|
+
hasSimilarErrorInSubSteps: true,
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const bodyItems = getBodyItems(
|
|
99
|
+
makeTestResult({
|
|
100
|
+
status: "broken",
|
|
101
|
+
steps: [step1],
|
|
102
|
+
error: { message: "step 3 error", trace: "step 3 trace" },
|
|
103
|
+
}),
|
|
104
|
+
"Error",
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
expect(bodyItems).toEqual([
|
|
108
|
+
{
|
|
109
|
+
type: "step",
|
|
110
|
+
item: step1,
|
|
111
|
+
bodyItems: [
|
|
112
|
+
{
|
|
113
|
+
type: "step",
|
|
114
|
+
item: step2,
|
|
115
|
+
bodyItems: [
|
|
116
|
+
{
|
|
117
|
+
type: "step",
|
|
118
|
+
item: step3,
|
|
119
|
+
bodyItems: [
|
|
120
|
+
{
|
|
121
|
+
type: "error",
|
|
122
|
+
id: getTestLevelErrorId("test-result-id"),
|
|
123
|
+
title: "step 3 error",
|
|
124
|
+
status: "broken",
|
|
125
|
+
error: { message: "step 3 error", trace: "step 3 trace" },
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
suppressInlineError: true,
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
suppressInlineError: false,
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
suppressInlineError: false,
|
|
135
|
+
},
|
|
136
|
+
]);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
it("shouldn't append a test-level error item when the error has no displayable content", () => {
|
|
140
|
+
expect(getBodyItems(makeTestResult({ error: {} }), "Error")).toEqual([
|
|
141
|
+
{
|
|
142
|
+
type: "step",
|
|
143
|
+
item: sampleStep,
|
|
144
|
+
bodyItems: [],
|
|
145
|
+
suppressInlineError: false,
|
|
146
|
+
},
|
|
147
|
+
]);
|
|
148
|
+
expect(getBodyItems(makeTestResult({ error: { actual: "undefined", expected: "expected" } }), "Error")).toEqual([
|
|
149
|
+
{
|
|
150
|
+
type: "step",
|
|
151
|
+
item: sampleStep,
|
|
152
|
+
bodyItems: [],
|
|
153
|
+
suppressInlineError: false,
|
|
154
|
+
},
|
|
155
|
+
]);
|
|
156
|
+
expect(
|
|
157
|
+
getBodyItems(makeTestResult({ status: "passed", error: { message: "should not appear" } }), "Error"),
|
|
158
|
+
).toEqual([
|
|
159
|
+
{
|
|
160
|
+
type: "step",
|
|
161
|
+
item: sampleStep,
|
|
162
|
+
bodyItems: [],
|
|
163
|
+
suppressInlineError: false,
|
|
164
|
+
},
|
|
165
|
+
]);
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
it("should keep the synthetic error item last at top level when no nested step matches", () => {
|
|
169
|
+
const bodyItems = getBodyItems(
|
|
170
|
+
makeTestResult({
|
|
171
|
+
steps: [sampleStep, sampleAttachment],
|
|
172
|
+
error: { message: "boom" },
|
|
173
|
+
}),
|
|
174
|
+
"Error",
|
|
175
|
+
);
|
|
176
|
+
|
|
177
|
+
expect(bodyItems).toEqual([
|
|
178
|
+
{
|
|
179
|
+
type: "step",
|
|
180
|
+
item: sampleStep,
|
|
181
|
+
bodyItems: [],
|
|
182
|
+
suppressInlineError: false,
|
|
183
|
+
},
|
|
184
|
+
sampleAttachment,
|
|
185
|
+
{
|
|
186
|
+
type: "error",
|
|
187
|
+
id: getTestLevelErrorId("test-result-id"),
|
|
188
|
+
title: "boom",
|
|
189
|
+
status: "failed",
|
|
190
|
+
error: { message: "boom" },
|
|
191
|
+
},
|
|
192
|
+
]);
|
|
193
|
+
});
|
|
194
|
+
});
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
|
|
3
|
+
describe("components > TestResult > openPlaywrightTraceInNewTab", () => {
|
|
4
|
+
beforeEach(() => {
|
|
5
|
+
vi.resetModules();
|
|
6
|
+
vi.useFakeTimers();
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
afterEach(() => {
|
|
10
|
+
vi.restoreAllMocks();
|
|
11
|
+
vi.runOnlyPendingTimers();
|
|
12
|
+
vi.useRealTimers();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it("returns false when popup is blocked", async () => {
|
|
16
|
+
const { openPlaywrightTraceInNewTab } = await import("@/components/TestResult/TrPwTraces/openPwTraceInNewTab");
|
|
17
|
+
vi.spyOn(window, "open").mockReturnValue(null);
|
|
18
|
+
|
|
19
|
+
const result = openPlaywrightTraceInNewTab(new Blob(["trace"]));
|
|
20
|
+
|
|
21
|
+
expect(result).toBe(false);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("sends trace message immediately and retries once", async () => {
|
|
25
|
+
const { openPlaywrightTraceInNewTab } = await import("@/components/TestResult/TrPwTraces/openPwTraceInNewTab");
|
|
26
|
+
const postMessage = vi.fn();
|
|
27
|
+
const popup = {
|
|
28
|
+
postMessage,
|
|
29
|
+
location: { href: "" },
|
|
30
|
+
focus: vi.fn(),
|
|
31
|
+
closed: false,
|
|
32
|
+
} as unknown as Window;
|
|
33
|
+
vi.spyOn(window, "open").mockReturnValue(popup);
|
|
34
|
+
|
|
35
|
+
const result = openPlaywrightTraceInNewTab(new Blob(["trace"]));
|
|
36
|
+
|
|
37
|
+
expect(result).toBe(true);
|
|
38
|
+
expect(postMessage).toHaveBeenCalledTimes(1);
|
|
39
|
+
|
|
40
|
+
vi.advanceTimersByTime(300);
|
|
41
|
+
expect(postMessage).toHaveBeenCalledTimes(2);
|
|
42
|
+
|
|
43
|
+
vi.advanceTimersByTime(30_000);
|
|
44
|
+
expect(postMessage).toHaveBeenCalledTimes(2);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it("does not send delayed retry when popup is already closed", async () => {
|
|
48
|
+
const { openPlaywrightTraceInNewTab } = await import("@/components/TestResult/TrPwTraces/openPwTraceInNewTab");
|
|
49
|
+
const postMessage = vi.fn();
|
|
50
|
+
const popup = {
|
|
51
|
+
postMessage,
|
|
52
|
+
location: { href: "" },
|
|
53
|
+
focus: vi.fn(),
|
|
54
|
+
closed: false,
|
|
55
|
+
} as unknown as Window & { closed: boolean };
|
|
56
|
+
vi.spyOn(window, "open").mockReturnValue(popup);
|
|
57
|
+
|
|
58
|
+
openPlaywrightTraceInNewTab(new Blob(["trace"]));
|
|
59
|
+
expect(postMessage).toHaveBeenCalledTimes(1);
|
|
60
|
+
|
|
61
|
+
popup.closed = true;
|
|
62
|
+
vi.advanceTimersByTime(300);
|
|
63
|
+
expect(postMessage).toHaveBeenCalledTimes(1);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { signal } from "@preact/signals";
|
|
2
|
+
import { cleanup, render, screen } from "@testing-library/preact";
|
|
3
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
4
|
+
|
|
5
|
+
type TimelineTestResult = {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
status: "passed" | "failed";
|
|
9
|
+
hidden: boolean;
|
|
10
|
+
environment: string;
|
|
11
|
+
environmentName?: string;
|
|
12
|
+
host: string;
|
|
13
|
+
thread: string;
|
|
14
|
+
start: number;
|
|
15
|
+
duration: number;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const setup = async (timelineData: TimelineTestResult[]) => {
|
|
19
|
+
vi.resetModules();
|
|
20
|
+
|
|
21
|
+
const currentEnvironment = signal("qa_a");
|
|
22
|
+
const timelineStore = signal({
|
|
23
|
+
loading: false,
|
|
24
|
+
error: undefined,
|
|
25
|
+
data: timelineData,
|
|
26
|
+
});
|
|
27
|
+
const fetchTimelineData = vi.fn();
|
|
28
|
+
|
|
29
|
+
vi.doMock("@allurereport/web-components", () => ({
|
|
30
|
+
Timeline: ({ data, dataId }: { data: TimelineTestResult[]; dataId: string }) => (
|
|
31
|
+
<div data-testid={`timeline-${dataId}`}>{data.map(({ id }) => id).join(",")}</div>
|
|
32
|
+
),
|
|
33
|
+
Grid: ({ children }: { children: unknown }) => <div>{children}</div>,
|
|
34
|
+
GridItem: ({ children }: { children: unknown }) => <div>{children}</div>,
|
|
35
|
+
Loadable: ({ renderData }: { renderData: () => JSX.Element }) => renderData(),
|
|
36
|
+
PageLoader: () => <div>loading</div>,
|
|
37
|
+
Widget: ({ children }: { children: unknown }) => <div>{children}</div>,
|
|
38
|
+
}));
|
|
39
|
+
vi.doMock("@/stores", () => ({
|
|
40
|
+
useI18n: () => ({
|
|
41
|
+
t: (key: string, params?: Record<string, string>) => (key === "host" ? `host:${params?.host}` : key),
|
|
42
|
+
}),
|
|
43
|
+
}));
|
|
44
|
+
vi.doMock("@/stores/env", () => ({
|
|
45
|
+
currentEnvironment,
|
|
46
|
+
environmentNameById: (environmentId: string) => {
|
|
47
|
+
if (environmentId === "qa_a" || environmentId === "qa_b") {
|
|
48
|
+
return "QA";
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return environmentId;
|
|
52
|
+
},
|
|
53
|
+
}));
|
|
54
|
+
vi.doMock("@/stores/timeline", () => ({
|
|
55
|
+
fetchTimelineData,
|
|
56
|
+
timelineStore,
|
|
57
|
+
}));
|
|
58
|
+
|
|
59
|
+
const { Timeline } = await import("@/components/Timeline");
|
|
60
|
+
|
|
61
|
+
render(<Timeline />);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
describe("components > Timeline", () => {
|
|
65
|
+
beforeEach(() => {
|
|
66
|
+
vi.clearAllMocks();
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
afterEach(() => {
|
|
70
|
+
cleanup();
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it("should keep environments with colliding display names separated by environment id", async () => {
|
|
74
|
+
await setup([
|
|
75
|
+
{
|
|
76
|
+
id: "tr-qa-a",
|
|
77
|
+
name: "qa a test",
|
|
78
|
+
status: "passed",
|
|
79
|
+
hidden: false,
|
|
80
|
+
environment: "qa_a",
|
|
81
|
+
environmentName: "QA",
|
|
82
|
+
host: "shared-host",
|
|
83
|
+
thread: "thread-1",
|
|
84
|
+
start: 1,
|
|
85
|
+
duration: 10,
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
id: "tr-qa-b",
|
|
89
|
+
name: "qa b test",
|
|
90
|
+
status: "failed",
|
|
91
|
+
hidden: false,
|
|
92
|
+
environment: "qa_b",
|
|
93
|
+
environmentName: "QA",
|
|
94
|
+
host: "shared-host",
|
|
95
|
+
thread: "thread-1",
|
|
96
|
+
start: 2,
|
|
97
|
+
duration: 20,
|
|
98
|
+
},
|
|
99
|
+
]);
|
|
100
|
+
|
|
101
|
+
expect(screen.getByTestId("timeline-shared-host")).toHaveTextContent("tr-qa-a");
|
|
102
|
+
expect(screen.getByTestId("timeline-shared-host")).not.toHaveTextContent("tr-qa-b");
|
|
103
|
+
});
|
|
104
|
+
});
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
|
|
3
|
+
const { fetchReportJsonDataMock, setParamsMock } = vi.hoisted(() => ({
|
|
4
|
+
fetchReportJsonDataMock: vi.fn(),
|
|
5
|
+
setParamsMock: vi.fn(),
|
|
6
|
+
}));
|
|
7
|
+
|
|
8
|
+
vi.mock("@allurereport/web-commons", async () => {
|
|
9
|
+
const actual = await vi.importActual<typeof import("@allurereport/web-commons")>("@allurereport/web-commons");
|
|
10
|
+
|
|
11
|
+
return {
|
|
12
|
+
...actual,
|
|
13
|
+
fetchReportJsonData: fetchReportJsonDataMock,
|
|
14
|
+
setParams: setParamsMock,
|
|
15
|
+
};
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
import { ReportFetchError } from "@allurereport/web-commons";
|
|
19
|
+
|
|
20
|
+
import { fetchTreeFiltersData } from "../../../src/stores/treeFilters/actions.js";
|
|
21
|
+
import { treeCategories, treeTags } from "../../../src/stores/treeFilters/store.js";
|
|
22
|
+
|
|
23
|
+
describe("stores > treeFilters > actions", () => {
|
|
24
|
+
beforeEach(() => {
|
|
25
|
+
treeTags.value = [];
|
|
26
|
+
treeCategories.value = [];
|
|
27
|
+
fetchReportJsonDataMock.mockReset();
|
|
28
|
+
setParamsMock.mockReset();
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
afterEach(() => {
|
|
32
|
+
treeTags.value = [];
|
|
33
|
+
treeCategories.value = [];
|
|
34
|
+
vi.restoreAllMocks();
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it("should fall back to empty filters on 404 without logging an error", async () => {
|
|
38
|
+
treeTags.value = ["seed-tag"];
|
|
39
|
+
treeCategories.value = ["seed-category"];
|
|
40
|
+
|
|
41
|
+
fetchReportJsonDataMock.mockRejectedValue(
|
|
42
|
+
new ReportFetchError("missing tree filters", new Response(null, { status: 404, statusText: "Not Found" })),
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
const consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(() => {});
|
|
46
|
+
|
|
47
|
+
await fetchTreeFiltersData();
|
|
48
|
+
|
|
49
|
+
expect(treeTags.value).toEqual([]);
|
|
50
|
+
expect(treeCategories.value).toEqual([]);
|
|
51
|
+
expect(consoleErrorSpy).not.toHaveBeenCalled();
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it("should populate filters from fetched data", async () => {
|
|
55
|
+
fetchReportJsonDataMock.mockResolvedValue({
|
|
56
|
+
tags: ["smoke"],
|
|
57
|
+
categories: ["Product Bug"],
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
await fetchTreeFiltersData();
|
|
61
|
+
|
|
62
|
+
expect(treeTags.value).toEqual(["smoke"]);
|
|
63
|
+
expect(treeCategories.value).toEqual(["Product Bug"]);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it("should log unexpected errors without overwriting existing filters", async () => {
|
|
67
|
+
treeTags.value = ["seed-tag"];
|
|
68
|
+
treeCategories.value = ["seed-category"];
|
|
69
|
+
|
|
70
|
+
const error = new Error("boom");
|
|
71
|
+
fetchReportJsonDataMock.mockRejectedValue(error);
|
|
72
|
+
|
|
73
|
+
const consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(() => {});
|
|
74
|
+
|
|
75
|
+
await fetchTreeFiltersData();
|
|
76
|
+
|
|
77
|
+
expect(treeTags.value).toEqual(["seed-tag"]);
|
|
78
|
+
expect(treeCategories.value).toEqual(["seed-category"]);
|
|
79
|
+
expect(consoleErrorSpy).toHaveBeenCalledOnce();
|
|
80
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith("Failed to fetch tree filters data:\n\n", error);
|
|
81
|
+
});
|
|
82
|
+
});
|
package/tsconfig.json
CHANGED
package/tsconfig.node.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"extends": "./tsconfig.json",
|
|
3
|
-
"include": ["vitest.config.ts", "./src", "./test/**/*.ts", "./test/**/*.tsx"],
|
|
3
|
+
"include": ["./vitest.config.ts", "./src", "./test/**/*.ts", "./test/**/*.tsx"],
|
|
4
4
|
"compilerOptions": {
|
|
5
5
|
"composite": true,
|
|
6
|
+
"noEmit": false,
|
|
6
7
|
"types": ["@testing-library/jest-dom"]
|
|
7
8
|
}
|
|
8
9
|
}
|
package/types.d.ts
CHANGED
|
@@ -43,7 +43,9 @@ export type AwesomeTestStepResult = TestStepResult;
|
|
|
43
43
|
type AwesomeBreadcrumbItem = string[] | string[][];
|
|
44
44
|
|
|
45
45
|
export interface AwesomeCategory {
|
|
46
|
+
id?: string;
|
|
46
47
|
name: string;
|
|
48
|
+
grouping?: { key: string; value?: string; name?: string }[];
|
|
47
49
|
description?: string;
|
|
48
50
|
descriptionHtml?: string;
|
|
49
51
|
messageRegex?: string;
|
package/.eslintrc.cjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
env: { browser: true, es2020: true },
|
|
3
|
-
extends: [
|
|
4
|
-
"eslint-config-preact",
|
|
5
|
-
"../../.eslintrc.cjs",
|
|
6
|
-
],
|
|
7
|
-
ignorePatterns: ["dist/", ".eslintrc.cjs", "postcss.config.js", "webpack.config.js", "types.d.ts"],
|
|
8
|
-
parser: "@typescript-eslint/parser",
|
|
9
|
-
overrides: [
|
|
10
|
-
{
|
|
11
|
-
extends: ["plugin:@typescript-eslint/disable-type-checked"],
|
|
12
|
-
files: [".eslintrc.cjs", ".babelrc.js"],
|
|
13
|
-
},
|
|
14
|
-
],
|
|
15
|
-
rules: {
|
|
16
|
-
"n/file-extension-in-import": "off"
|
|
17
|
-
}
|
|
18
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_allurereport_web_awesome=self.webpackChunk_allurereport_web_awesome||[]).push([[173],{9173:function(t){t.exports=JSON.parse('{"statuses":{"passed":"წარმატებული","failed":"წარუმატებელი","broken":"დამტვრეული","skipped":"გამოტოვებული","unknown":"უცნობი","total":"ჯამი","flakyTests":"არასტაბილური","newTests":"ახალი","retryTests":"ხელახალი ცდა"},"testSummary":{"total":"ჯამი","flaky":"არასტაბილური ტესტები","retries":"ხელახალი ტესტები","new":"ახალი ტესტები"},"tabs":{"total":"ყველა","results":"შედეგები","globalAttachments":"გლობალური დანართები","globalErrors":"გლობალური შეცდომები","qualityGates":"ხარისხის კარიბჭეები","categories":"კატეგორიები"},"search":{"search":"ძებნა","search-placeholder":"სახელი ან ID"},"filters":{"flaky":"არასტაბილური","nonFlaky":"სტაბილური","retry":"ხელახალი","new":"ახალი","fixed":"გასწორებული","regressed":"რეგრესია","malfunctioned":"დაზიანებული","transition":"გადასვლა","status":"სტატუსი","severity":"სიმძიმე","owner":"მფლობელი","layer":"ფენა","tags":"ტეგები","categories":"კატეგორიები","goto_filter":"ფილტრზე გადასვლა","errors":{"max_values_one":"ფილტრაციისთვის გამოიყენება მხოლოდ პირველი {{count}} მნიშვნელობა.\\nდამატებითი მნიშვნელობები იგნორირდება","max_values_other":"ფილტრაციისთვის გამოიყენება მხოლოდ პირველი {{count}} მნიშვნელობა.\\nდამატებითი მნიშვნელობები იგნორირდება"},"description":{"flaky":"არასტაბილური ტესტების ჩვენება","retry":"განმეორებით გაშვებული ტესტების შედეგების ჩვენება","new":"აჩვენებს ტესტების შედეგებს, რომლებიც პირველად ჩანს ამ ანგარიშში","fixed":"აჩვენებს ტესტებს, რომლებიც ახლა წარმატებულია, მაგრამ ადრე იყო \\"წარუმატებელი\\" ან \\"დამტვრეული\\"","regressed":"აჩვენებს ტესტების შედეგებს, რომლებმაც შეცვალეს სტატუსი \\"წარმატებული\\" ან \\"დამტვრეული\\"-დან \\"წარუმატებელი\\"-ზე","malfunctioned":"აჩვენებს ტესტების შედეგებს, რომლებმაც შეცვალეს სტატუსი \\"წარმატებული\\" ან \\"წარუმატებელი\\"-დან \\"დამტვრეული\\"-ზე","tags":"აჩვენებს ტესტების შედეგებს, რომლებსაც აქვთ მითითებული ტეგები","categories":"აჩვენებს ტესტების შედეგებს, რომლებსაც აქვთ მითითებული კატეგორიები"}},"sort-by":{"sort-by-text":"დალაგება:","sort-by-category":"დალაგება","direction-category":"მიმართულება"},"sort-by.values":{"order":"შეკვეთა","alphabet":"ანბანი","duration":"ხანგრძლივობა","status":"სტატუსი"},"sort-by.directions":{"order-desc":"ბოლო – პირველი","order-asc":"პირველი – ბოლო","order-asc-short":"პირველი","order-desc-short":"ბოლო","alphabet-asc":"ა – ჰ","alphabet-desc":"ჰ – ა","alphabet-asc-short":"ა – ჰ","alphabet-desc-short":"ჰ – ა","duration-asc":"1 – 9","duration-desc":"9 – 1","duration-asc-short":"1 – 9","duration-desc-short":"9 – 1","status-asc":"როგორც ფილტრის სიაში","status-desc":"შებრუნებული","status-asc-short":"ჩვეულებრივი","status-desc-short":"შებრუნებული"},"empty":{"no-results":"შედეგები არ არის","no-value":"მნიშვნელობა არ არის","no-value-for":"მნიშვნელობა არ არის: {{entity}}","no-transition":"გადასვლა არ არის","no-layer":"ფენა არ არის","no-owner":"მფლობელი არ არის","no-severity":"სიმძიმე არ არის","no-status":"სტატუსი არ არის","no-environment":"გარემო არ არის","no-flaky":"არასტაბილურობა არ არის","empty-value":"ცარიელი","no-tests-found":"შედეგები არ მოიძებნა","no-message-provided":"შეტყობინება არ არის მოწოდებული","clear-filters":"ფილტრების გასუფთავება","no-attachments-results":"დანართების ინფორმაცია არ არის ხელმისაწვდომი","no-global-errors-results":"გლობალური შეცდომების ინფორმაცია არ არის ხელმისაწვდომი","no-quality-gate-results":"ხარისხის კარიბჭის შედეგები არ არის ხელმისაწვდომი","no-history-results":"ისტორიის ინფორმაცია არ არის ხელმისაწვდომი","no-retries-results":"ხელახალი ცდების ინფორმაცია არ არის ხელმისაწვდომი","no-test-steps-results":"ტესტის ნაბიჯების ინფორმაცია ხელმისაწვდომი არ არის","no-test-case-results":"ტესტის შემთხვევის შედეგები არ არის","no-environments-results":"გარემობის ინფორმაცია არ არის ხელმისაწვდომი","no-categories-results":"კატეგორიები ხელმისაწვდომი არ არის"},"severity":{"blocker":"ბლოკერი","critical":"კრიტიკული","normal":"ჩვეულებრივი","minor":"მნიშვნელობა","trivial":"უმნიშვნელო"},"execution":{"name":"შესრულება","body":"ტესტის შინაარსი","setup":"მომზადება","teardown":"დასრულება"},"environments":{"environment_one":"გარემობა","environment_other":"გარემობები","all":"ყველა"},"ui":{"labels":"ლეიბლები","metadata":"მეტამონაცემები","parameters":"პარამეტრები","category":"კატეგორია","description":"აღწერა","links":"ბმულები","overview":"მიმოხილვა","history":"ისტორია","attachments":"დანართები","retries":"ხელახალი ცდები","environments":"გარემობები","error":"შეცდომა","goToStep":"გადადით საფეხურზე","showLess":"ნაკლების ჩვენება","showMore":"მეტის ჩვენება","copy":"კოპირება","copy-email":"ელფოსტის კოპირება","attempt":"მცდელობა {{attempt}} {{total}}-დან","at":"ზე","variables":"ცვლადები","openPwTrace":"გახსენი Playwright Trace","finishedAtOriginal":"{{formattedCreatedAt}}, გამოსვლის კოდით {{original}}","finishedAtBoth":"{{formattedCreatedAt}}, გამოსვლის კოდით {{actual}} (თავდაპირველი {{original}})"},"controls":{"newTabAttachment":"დანართის გახსნა ახალ ჩანართში","nextTR":"შემდეგი ტესტის შედეგი","prevTR":"წინა ტესტის შედეგი","downloadAttachment":"დანართის ჩამოტვირთვა","backto":"უკან დაბრუნება","clipboard":"კოპირება ბუფერში","clipboardError":"ბუფერში კოპირება ვერ მოხერხდა. შესაძლოა, ფუნქცია არ იყოს მხარდაჭერილი თქვენს ბრაუზერში","clipboardSuccess":"წარმატებით დაკოპირდა","collapse":"ჩაკეცვა","expand":"გახსნა","fullscreen":"სრულ ეკრანზე","language":"ენის შეცვლა","openInNewTab":"გახსნა ახალ ჩანართში","openPreview":"გახსენი წინასწარი დათვალიერება","noSelectedTR":"არჩეული ტესტის შედეგი არ არის","comparison":"შედარება","showDiff":"მაჩვენე განსხვავება","viewMode":"ნახვის რეჟიმი","unified":"გაერთიანებული","side-by-side":"გვერდიგვერდ","compareBy":"შედარება","chars":"სიმბოლოები","words":"სიტყვები","lines":"ხაზები","actual":"ნამდვილი","expected":"მოსალოდნელი"},"errors":{"missedAttachment":"დანართი ვერ მოიძებნა"},"sections":{"report":"Report","charts":"გრაფიკები","timeline":"დროის ხაზი"},"timeline":{"empty":"მონაცემები არ არის","empty_host":"მონაცემები არ არის {{ host }}-ისთვის","selected_one":"არჩეულია {{ count }} ტესტი ({{ percentage }}%) {{ minDuration }}-ზე მეტი და {{ maxDuration }}-ზე ნაკლები ხანგრძლივობით","selected_other":"არჩეულია {{ count }} ტესტი ({{ percentage }}%) {{ minDuration }}-ზე მეტი და {{ maxDuration }}-ზე ნაკლები ხანგრძლივობით","host":"ჰოსტი: {{ host }}"},"charts":{"trend":{"title":"ტრენდის გრაფიკი: {{type}}","type":{"status":"სტატუსი","severity":"სიმძიმე"}},"currentStatus":{"title":"მიმდინარე სტატუსი","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"percentage":"{{percentage}}%","of":"{{total}}-დან","total":"სულ","tests":{"new_zero":"ახალი ტესტები არ არის","new_one":"{{count}} ახალი ტესტი","new_other":"{{count}} ახალი ტესტი","flaky_zero":"არასტაბილური ტესტები არ არის","flaky_one":"{{count}} არასტაბილური ტესტი","flaky_other":"{{count}} არასტაბილური ტესტი","retries_zero":"განმეორებითი ტესტები არ არის","retries_one":"{{count}} განმეორებითი ტესტი","retries_other":"{{count}} განმეორებითი ტესტი"}},"statusDynamics":{"title":"სტატუსის დინამიკა","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"ბოლო ანგარიში ({{timestamp, timestamp_long_no_seconds}})","history":"{{timestamp, timestamp_long_no_seconds}} ანგარიში"},"ticks":{"current":"ბოლო","history":"{{timestamp, timestamp_date}}"}},"statusTransitions":{"title":"სტატუსის გადასვლები","legend":{"trend":"გამოსწორების მაჩვენებელი"},"transitions":{"new":"$t(transitions:new, capitalize)","fixed":"$t(transitions:fixed, capitalize)","regressed":"$t(transitions:regressed, capitalize)","malfunctioned":"$t(transitions:malfunctioned, capitalize)"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"ბოლო ანგარიში ({{timestamp, timestamp_long_no_seconds}})","history":"{{timestamp, timestamp_long_no_seconds}} ანგარიში"},"ticks":{"current":"ბოლო","history":"{{timestamp, timestamp_date}}"}},"durations":{"title":"ხანგრძლივობის ჰისტოგრამა {{groupBy}}-ის მიხედვით","title_none":"ხანგრძლივობის ჰისტოგრამა","no-results":"$t(empty:no-results)","groupBy":{"none":"არცერთი","layer":"ფენა"},"ticks":{"durationRange":"{{from, format_duration}} - {{to, format_duration}}"},"tooltips":{"durationRange":"{{from, format_duration}} - {{to, format_duration}}"},"legend":{"value":"{{value}}","total":"ტესტების რაოდენობა"}},"stabilityDistribution":{"title":"სტაბილურობის განაწილება","no-results":"$t(empty:no-results)","legend":{"stabilityRate":"სტაბილურობის მაჩვენებელი"}},"testBaseGrowthDynamics":{"title":"ტესტების ბაზის ზრდის დინამიკა","status":{"newpassed":"ახალი $t(statuses:passed)","newfailed":"ახალი $t(statuses:failed)","newbroken":"ახალი $t(statuses:broken)","newskipped":"ახალი $t(statuses:skipped)","newunknown":"ახალი $t(statuses:unknown)","removedpassed":"წაშლილი $t(statuses:passed)","removedfailed":"წაშლილი $t(statuses:failed)","removedbroken":"წაშლილი $t(statuses:broken)","removedskipped":"წაშლილი $t(statuses:skipped)","removedunknown":"წაშლილი $t(statuses:unknown)"},"legend":{"trend":"ზრდის ტენდენция"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"უახლესი ანგარიში ({{timestamp, timestamp_long_no_seconds}})","history":"ანგარიში {{timestamp, timestamp_long_no_seconds}}"},"ticks":{"current":"უახლესი","history":"{{timestamp, timestamp_date}}"}},"statusAgePyramid":{"title":"ასაკობრივი პირამიდა სტატუსის მიხედვით","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"უახლესი ანგარიში ({{timestamp, timestamp_long_no_seconds}})","history":"ანგარიში {{timestamp, timestamp_long_no_seconds}}"},"ticks":{"current":"უახლესი","history":"{{timestamp, timestamp_date}}"}},"trSeverities":{"title":"ტესტის შედეგები სიმძიმის მიხედვით","no-results":"$t(empty:no-results)","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"severity":{"blocker":"$t(severity:blocker, capitalize)","critical":"$t(severity:critical, capitalize)","normal":"$t(severity:normal, capitalize)","minor":"$t(severity:minor, capitalize)","trivial":"$t(severity:trivial, capitalize)","unset":"სიმძიმე არ არის"}},"durationDynamics":{"title":"ხანგრძლივობის დინამიკა","durations":{"sequential":"თანმიმდევრული ხანგრძლივობა","duration":"ტესტის ხანგრძლივობა","speedup":"აჩქარება"},"no-results":"$t(empty:no-results)","tooltips":{"current":"ბოლო ანგარიში ({{timestamp, timestamp_long_no_seconds}})","history":"{{timestamp, timestamp_long_no_seconds}} ანგარიში"},"ticks":{"current":"ბოლო","history":"{{timestamp, timestamp_date}}"},"legend":{"duration":"{{duration, format_duration}}","speedup":"{{speedup}}x"}}},"transitions":{"description":{"new":"ამ ტესტის შედეგის პირველი გამოჩენა ანგარიშში","fixed":"ადრე \\"წარუმატებელი\\" ან \\"დამტვრეული\\" ტესტი, რომელიც ახლა \\"წარმატებული\\"ა","regressed":"ადრე \\"წარმატებული\\" ან \\"დამტვრეული\\" ტესტი, რომელიც ახლა \\"წარუმატებელი\\"ა","malfunctioned":"ადრე \\"წარმატებული\\" ან \\"წარუმატებელი\\" ტესტი, რომელიც ახლა \\"დამტვრეული\\"ა","retries":"{{count}} ხელახალი ცდა","flaky":"შედეგები არასტაბილურია გაშვებებს შორის"},"new":"ახალი","fixed":"გასწორებული","regressed":"რეგრესია","malfunctioned":"დაზიანებული"},"trHistory":{"unknown-date":"უცნობი თარიღი"},"attachments":{"imageDiff":{"mode":{"diff":"სხვაობა","actual":"ფაქტობრივი","expected":"მოსალოდნელი","side-by-side":"გვერდიგვერდ","overlay":"ფენა"},"empty":{"failed-to-load":"სურათების შედარების ჩატვირთვა ვერ მოხერხდა"},"image":{"diff":"სხვაობა","actual":"ფაქტობრივი","expected":"მოსალოდნელი"}}}}')}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_allurereport_web_awesome=self.webpackChunk_allurereport_web_awesome||[]).push([[174],{4174:function(t){t.exports=JSON.parse('{"statuses":{"passed":"passed","failed":"failed","broken":"broken","skipped":"skipped","unknown":"unknown","total":"total","flakyTests":"flaky","newTests":"new","retryTests":"retry"},"testSummary":{"total":"Total","flaky":"Flaky tests","retries":"Retried tests","new":"New tests"},"tabs":{"total":"All","results":"Results","globalAttachments":"Global Attachments","globalErrors":"Global Errors","qualityGates":"Quality Gates","categories":"Categories"},"search":{"search":"Search","search-placeholder":"Name or ID"},"filters":{"flaky":"Flaky","nonFlaky":"Non-flaky","retry":"Retry","new":"New","fixed":"Fixed","regressed":"Regressed","malfunctioned":"Malfunctioned","transition":"Transition","status":"Status","severity":"Severity","owner":"Owner","layer":"Layer","tags":"Tags","categories":"Categories","goto_filter":"Go to filter","errors":{"max_values_one":"Only the first {{count}} value is used for filtering.\\nAdditional values are ignored","max_values_other":"Only the first {{count}} values are used for filtering.\\nAdditional values are ignored"},"description":{"flaky":"Show unstable tests","retry":"Show test results that were rerun","new":"Show test results that appear for the first time in this report","fixed":"Show tests that are passed now but had been \\"failed\\" or \\"broken\\" in a previous report","regressed":"Show test results that changed to \\"failed\\" status from \\"passed\\" or \\"broken\\" status","malfunctioned":"Show test results that changed to \\"broken\\" status from \\"passed\\" or \\"failed\\" status","tags":"Show test results that have the specified tags","categories":"Show test results that have the specified categories"}},"sort-by":{"sort-by-text":"Sort by:","sort-by-category":"Sort by","direction-category":"Direction"},"sort-by.values":{"order":"Order","alphabet":"Alphabet","duration":"Duration","status":"Status"},"sort-by.directions":{"order-desc":"Latest – Earliest","order-asc":"Earliest – Latest","order-asc-short":"Earliest","order-desc-short":"Latest","alphabet-asc":"A – Z","alphabet-desc":"Z – A","alphabet-asc-short":"A – Z","alphabet-desc-short":"Z – A","duration-asc":"1 – 9","duration-desc":"9 – 1","duration-asc-short":"1 – 9","duration-desc-short":"9 – 1","status-asc":"As in the filter list","status-desc":"Reversed","status-asc-short":"Regular","status-desc-short":"Reversed"},"empty":{"no-results":"No results","no-value":"No value","no-value-for":"No value: {{entity}}","no-transition":"No transition","no-layer":"No layer","no-owner":"No owner","no-severity":"No severity","no-status":"No status","no-environment":"No environment","no-flaky":"No flaky","empty-value":"Empty","no-tests-found":"No results found","no-message-provided":"No message is provided","clear-filters":"Clear filters","no-attachments-results":"No attachments information available","no-global-errors-results":"No global errors information available","no-quality-gate-results":"No quality gate results available","no-history-results":"No history information available","no-retries-results":"No retries information available","no-test-steps-results":"No test steps information available","no-test-case-results":"No test case results","no-environments-results":"No environments information available","no-categories-results":"No categories results available"},"severity":{"blocker":"blocker","critical":"critical","normal":"normal","minor":"minor","trivial":"trivial"},"execution":{"name":"Execution","body":"Test body","setup":"Set up","teardown":"Tear down"},"environments":{"environment_one":"Environment","environment_other":"Environments","all":"All"},"ui":{"labels":"Labels","metadata":"Metadata","parameters":"Parameters","category":"Category","description":"Description","links":"Links","overview":"Overview","history":"History","attachments":"Attachments","retries":"Retries","environments":"Environments","error":"Error","goToStep":"Go to step","showLess":"Show less","showMore":"Show more","copy":"Copy","copy-email":"Copy email","attempt":"Attempt {{attempt}} of {{total}}","at":"at","variables":"Variables","openPwTrace":"Open Playwright Trace","finishedAtOriginal":"{{formattedCreatedAt}}, with exit code {{original}}","finishedAtBoth":"{{formattedCreatedAt}}, with exit code {{actual}} (original {{original}})"},"controls":{"newTabAttachment":"Open attachment in new tab","nextTR":"Next Test result","prevTR":"Previous Test result","downloadAttachment":"Download attachment","backto":"Back to","clipboard":"Copy to clipboard","clipboardError":"Can not copy value to clipboard. Seems like this feature is not supported for your browser","clipboardSuccess":"Successfully copied","collapse":"Collapse","expand":"Expand","fullscreen":"Full screen","language":"Change language","openInNewTab":"Open in new tab","openPreview":"Open preview","noSelectedTR":"No selected Test result","comparison":"Comparison","showDiff":"Show difference","viewMode":"View mode","unified":"Unified","side-by-side":"Side by Side","compareBy":"Compare by","chars":"chars","words":"words","lines":"lines","actual":"Actual","expected":"Expected"},"errors":{"missedAttachment":"Attachment not found"},"sections":{"report":"Report","charts":"Graphs","timeline":"Timeline"},"timeline":{"empty":"No data","empty_host":"No data for {{ host }}","selected_one":"Selected {{ count }} test ({{ percentage }}%) with duration more than {{ minDuration }} and less than {{ maxDuration }}","selected_other":"Selected {{ count }} tests ({{ percentage }}%) with duration more than {{ minDuration }} and less than {{ maxDuration }}","host":"Host: {{ host }}"},"charts":{"trend":{"title":"Trend Chart: {{type}}","type":{"status":"Status","severity":"Severity"}},"currentStatus":{"title":"Current Status","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"percentage":"{{percentage}}%","of":"of {{total}}","total":"total","tests":{"new_zero":"No new tests","new_one":"{{count}} new test","new_other":"{{count}} new tests","flaky_zero":"No flaky tests","flaky_one":"{{count}} flaky test","flaky_other":"{{count}} flaky tests","retries_zero":"No retried tests","retries_one":"{{count}} retried test","retries_other":"{{count}} retried tests"}},"statusDynamics":{"title":"Status dynamics","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"Latest report ({{timestamp, timestamp_long_no_seconds}})","history":"Report from {{timestamp, timestamp_long_no_seconds}}"},"ticks":{"current":"Latest","history":"{{timestamp, timestamp_date}}"}},"statusTransitions":{"title":"Status transitions","legend":{"trend":"Fix rate"},"transitions":{"new":"$t(transitions:new, capitalize)","fixed":"$t(transitions:fixed, capitalize)","regressed":"$t(transitions:regressed, capitalize)","malfunctioned":"$t(transitions:malfunctioned, capitalize)"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"Latest report ({{timestamp, timestamp_long_no_seconds}})","history":"Report from {{timestamp, timestamp_long_no_seconds}}"},"ticks":{"current":"Latest","history":"{{timestamp, timestamp_date}}"}},"durations":{"title":"Durations by {{groupBy}} histogram","title_none":"Durations histogram","no-results":"$t(empty:no-results)","groupBy":{"none":"None","layer":"Layer"},"ticks":{"durationRange":"{{from, format_duration}} - {{to, format_duration}}"},"tooltips":{"durationRange":"{{from, format_duration}} - {{to, format_duration}}"},"legend":{"value":"{{value}}","total":"Tests count"}},"stabilityDistribution":{"title":"Stability distribution","no-results":"$t(empty:no-results)","legend":{"stabilityRate":"Stability rate"}},"testBaseGrowthDynamics":{"title":"Test base growth dynamics","status":{"newpassed":"New $t(statuses:passed)","newfailed":"New $t(statuses:failed)","newbroken":"New $t(statuses:broken)","newskipped":"New $t(statuses:skipped)","newunknown":"New $t(statuses:unknown)","removedpassed":"Removed $t(statuses:passed)","removedfailed":"Removed $t(statuses:failed)","removedbroken":"Removed $t(statuses:broken)","removedskipped":"Removed $t(statuses:skipped)","removedunknown":"Removed $t(statuses:unknown)"},"legend":{"trend":"Growth trend"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"Latest report ({{timestamp, timestamp_long_no_seconds}})","history":"Report from {{timestamp, timestamp_long_no_seconds}}"},"ticks":{"current":"Latest","history":"{{timestamp, timestamp_date}}"}},"statusAgePyramid":{"title":"Status age pyramid","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"Latest report ({{timestamp, timestamp_long_no_seconds}})","history":"Report from {{timestamp, timestamp_long_no_seconds}}"},"ticks":{"current":"Latest","history":"{{timestamp, timestamp_date}}"}},"trSeverities":{"title":"Test results by severities","no-results":"$t(empty:no-results)","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"severity":{"blocker":"$t(severity:blocker, capitalize)","critical":"$t(severity:critical, capitalize)","normal":"$t(severity:normal, capitalize)","minor":"$t(severity:minor, capitalize)","trivial":"$t(severity:trivial, capitalize)","unset":"No severity"}},"durationDynamics":{"title":"Duration dynamics","durations":{"sequential":"Sequential duration","duration":"Test duration","speedup":"Speedup"},"no-results":"$t(empty:no-results)","tooltips":{"current":"Latest report ({{timestamp, timestamp_long_no_seconds}})","history":"Report from {{timestamp, timestamp_long_no_seconds}}"},"ticks":{"current":"Latest","history":"{{timestamp, timestamp_date}}"},"legend":{"duration":"{{duration, format_duration}}","speedup":"{{speedup}}x"}}},"transitions":{"description":{"new":"The first occurrence of this test result in the report","fixed":"A previously \\"failed\\" or \\"broken\\" test that is now \\"passed\\"","regressed":"A previously \\"passed\\" or \\"broken\\" test that is now \\"failed\\"","malfunctioned":"A previously \\"passed\\" or \\"failed\\" test that is now \\"broken\\"","retries":"{{count}} retries","flaky":"Inconsistent across runs"},"new":"new","fixed":"fixed","regressed":"regressed","malfunctioned":"malfunctioned"},"trHistory":{"unknown-date":"Unknown date"},"attachments":{"imageDiff":{"mode":{"diff":"Diff","actual":"Actual","expected":"Expected","side-by-side":"Side by side","overlay":"Overlay"},"empty":{"failed-to-load":"Failed to load image diff"},"image":{"diff":"Diff","actual":"Actual","expected":"Expected"}}}}')}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_allurereport_web_awesome=self.webpackChunk_allurereport_web_awesome||[]).push([[252],{8252:function(t){t.exports=JSON.parse('{"statuses":{"passed":"godkänd","failed":"misslyckad","broken":"trasig","skipped":"hoppad över","unknown":"okänd","total":"totalt","flakyTests":"ostadig","newTests":"ny","retryTests":"försök igen"},"testSummary":{"total":"Totalt","flaky":"Ostadiga tester","retries":"Omtagna tester","new":"Nya tester"},"tabs":{"total":"Alla","results":"Resultat","globalAttachments":"Globala Bilagor","globalErrors":"Globala Fel","qualityGates":"Kvalitetsportar","categories":"Kategorier"},"search":{"search":"Sök","search-placeholder":"Namn eller ID"},"filters":{"flaky":"Ostadig","nonFlaky":"Stabil","retry":"Försök igen","new":"Ny","fixed":"Åtgärdad","regressed":"Regresserad","malfunctioned":"Felaktig","transition":"Övergång","status":"Status","severity":"Allvarlighetsgrad","owner":"Ägare","layer":"Lager","tags":"Taggar","categories":"Kategorier","goto_filter":"Gå till filter","errors":{"max_values_one":"Endast det första {{count}} värdet används för filtrering.\\nYtterligare värden ignoreras","max_values_other":"Endast de första {{count}} värdena används för filtrering.\\nYtterligare värden ignoreras"},"description":{"flaky":"Visa ostadiga tester","retry":"Visa testresultat som kördes om","new":"Visa testresultat som visas för första gången i denna rapport","fixed":"Visa tester som nu är godkända men som tidigare var \\"misslyckade\\" eller \\"trasiga\\"","regressed":"Visa testresultat som ändrades från \\"godkänd\\" eller \\"trasig\\" till \\"misslyckad\\" status","malfunctioned":"Visa testresultat som ändrades från \\"godkänd\\" eller \\"misslyckad\\" till \\"trasig\\" status","tags":"Visa testresultat som har de angivna taggarna","categories":"Visa testresultat som har de angivna kategorierna"}},"sort-by":{"sort-by-text":"Sortera efter:","sort-by-category":"Sortera efter","direction-category":"Riktning"},"sort-by.values":{"order":"Ordning","alphabet":"Alfabet","duration":"Varaktighet","status":"Status"},"sort-by.directions":{"order-desc":"Senast – Tidigare","order-asc":"Tidigare – Senast","order-asc-short":"Tidigare","order-desc-short":"Senast","alphabet-asc":"A – Ö","alphabet-desc":"Ö – A","alphabet-asc-short":"A – Ö","alphabet-desc-short":"Ö – A","duration-asc":"1 – 9","duration-desc":"9 – 1","duration-asc-short":"1 – 9","duration-desc-short":"9 – 1","status-asc":"Som i filterlistan","status-desc":"Omvänd","status-asc-short":"Vanlig","status-desc-short":"Omvänd"},"empty":{"no-results":"Inga resultat","no-value":"Inget värde","no-value-for":"Inget värde: {{entity}}","no-transition":"Ingen övergång","no-layer":"Inget lager","no-owner":"Ingen ägare","no-severity":"Ingen allvarlighetsgrad","no-status":"Ingen status","no-environment":"Ingen miljö","no-flaky":"Ingen instabilitet","empty-value":"Tomt","no-tests-found":"Inga resultat hittades","no-message-provided":"Inget meddelande angavs","clear-filters":"Rensa filter","no-attachments-results":"Ingen bilaga information tillgänglig","no-global-errors-results":"Ingen global felinformation tillgänglig","no-quality-gate-results":"Inga kvalitetsport resultat tillgängliga","no-history-results":"Ingen historik information tillgänglig","no-retries-results":"Ingen omtagningar information tillgänglig","no-test-steps-results":"Ingen information om teststeg tillgänglig","no-test-case-results":"Inga testfallresultat","no-environments-results":"Ingen miljöinformation tillgänglig","no-categories-results":"Inga kategoriresultat tillgängliga"},"severity":{"blocker":"blockerare","critical":"kritisk","normal":"normal","minor":"mindre","trivial":"obetydlig"},"execution":{"name":"Utförande","body":"Testkropp","setup":"Förberedelse","teardown":"Avslutning"},"environments":{"environment_one":"Miljö","environment_other":"Miljöer","all":"Alla"},"ui":{"labels":"Etiketter","metadata":"Metadata","parameters":"Parametrar","category":"Kategori","description":"Beskrivning","links":"Länkar","overview":"Översikt","history":"Historik","attachments":"Bilagor","retries":"Omtagningar","environments":"Miljöer","error":"Fel","goToStep":"Gå till steg","showLess":"Visa mindre","showMore":"Visa mer","copy":"Kopiera","copy-email":"Kopiera e-post","attempt":"Försök {{attempt}} av {{total}}","at":"vid","variables":"Variabler","openPwTrace":"Öppna Playwright Trace","finishedAtOriginal":"{{formattedCreatedAt}}, med avslutningskod {{original}}","finishedAtBoth":"{{formattedCreatedAt}}, med avslutningskod {{actual}} (ursprunglig {{original}})"},"controls":{"newTabAttachment":"Öppna bilaga i ny flik","nextTR":"Nästa testresultat","prevTR":"Föregående testresultat","downloadAttachment":"Ladda ner bilaga","backto":"Tillbaka till","clipboard":"Kopiera till urklipp","clipboardError":"Kan inte kopiera värde till urklipp. Det verkar som om den här funktionen inte stöds av din webbläsare","clipboardSuccess":"Kopierat framgångsrikt","collapse":"Minimera","expand":"Expandera","fullscreen":"Helskärm","language":"Byt språk","openInNewTab":"Öppna i ny flik","openPreview":"Öppna förhandsgranskning","noSelectedTR":"Inget valt testresultat","comparison":"Jämförelse","showDiff":"Visa skillnad","viewMode":"Visningsläge","unified":"Enhetligt","side-by-side":"Sida vid sida","compareBy":"Jämför efter","chars":"tecken","words":"ord","lines":"rader","actual":"Faktisk","expected":"Förväntad"},"errors":{"missedAttachment":"Bilaga hittades inte"},"sections":{"report":"Report","charts":"Grafer","timeline":"Tidslinje"},"timeline":{"empty":"Inga data","empty_host":"Inga data för {{ host }}","selected_one":"{{ count }} test ({{ percentage }}%) med varaktighet mer än {{ minDuration }} och mindre än {{ maxDuration }} vald","selected_other":"{{ count }} tester ({{ percentage }}%) med varaktighet mer än {{ minDuration }} och mindre än {{ maxDuration }} valda","host":"Värd: {{ host }}"},"charts":{"trend":{"title":"Trenddiagram: {{type}}","type":{"status":"Status","severity":"Allvarlighetsgrad"}},"currentStatus":{"title":"Nuvarande status","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"percentage":"{{percentage}}%","of":"av {{total}}","total":"totalt","tests":{"new_zero":"Inga nya tester","new_one":"{{count}} nytt test","new_other":"{{count}} nya tester","flaky_zero":"Inga instabila tester","flaky_one":"{{count}} instabilt test","flaky_other":"{{count}} instabila tester","retries_zero":"Inga försökta tester","retries_one":"{{count}} försökt test","retries_other":"{{count}} försökta tester"}},"statusDynamics":{"title":"Statusdynamik","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"Senaste rapporten ({{timestamp, timestamp_long_no_seconds}})","history":"Rapport från {{timestamp, timestamp_long_no_seconds}}"},"ticks":{"current":"Senast","history":"{{timestamp, timestamp_date}}"}},"statusTransitions":{"title":"Statusövergångar","legend":{"trend":"Korrigeringsgrad"},"transitions":{"new":"$t(transitions:new, capitalize)","fixed":"$t(transitions:fixed, capitalize)","regressed":"$t(transitions:regressed, capitalize)","malfunctioned":"$t(transitions:malfunctioned, capitalize)"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"Senaste rapporten ({{timestamp, timestamp_long_no_seconds}})","history":"Rapport från {{timestamp, timestamp_long_no_seconds}}"},"ticks":{"current":"Senast","history":"{{timestamp, timestamp_date}}"}},"durations":{"title":"Varaktighetshistogram efter {{groupBy}}","title_none":"Varaktighetshistogram","no-results":"$t(empty:no-results)","groupBy":{"none":"Ingen","layer":"Lager"},"ticks":{"durationRange":"{{from, format_duration}} - {{to, format_duration}}"},"tooltips":{"durationRange":"{{from, format_duration}} - {{to, format_duration}}"},"legend":{"value":"{{value}}","total":"Antal tester"}},"stabilityDistribution":{"title":"Stabilitetsfördelning","no-results":"$t(empty:no-results)","legend":{"stabilityRate":"Stabilitetsgrad"}},"testBaseGrowthDynamics":{"title":"Tillväxtdynamik för testbas","status":{"newpassed":"Ny $t(statuses:passed)","newfailed":"Ny $t(statuses:failed)","newbroken":"Ny $t(statuses:broken)","newskipped":"Ny $t(statuses:skipped)","newunknown":"Ny $t(statuses:unknown)","removedpassed":"Borttagen $t(statuses:passed)","removedfailed":"Borttagen $t(statuses:failed)","removedbroken":"Borttagen $t(statuses:broken)","removedskipped":"Borttagen $t(statuses:skipped)","removedunknown":"Borttagen $t(statuses:unknown)"},"legend":{"trend":"Tillväxttrend"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"Senaste rapport ({{timestamp, timestamp_long_no_seconds}})","history":"Rapport från {{timestamp, timestamp_long_no_seconds}}"},"ticks":{"current":"Senaste","history":"{{timestamp, timestamp_date}}"}},"statusAgePyramid":{"title":"Ålderspyramid per status","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"Senaste rapport ({{timestamp, timestamp_long_no_seconds}})","history":"Rapport från {{timestamp, timestamp_long_no_seconds}}"},"ticks":{"current":"Senaste","history":"{{timestamp, timestamp_date}}"}},"trSeverities":{"title":"Testresultat per allvarlighetsgrad","no-results":"$t(empty:no-results)","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"severity":{"blocker":"$t(severity:blocker, capitalize)","critical":"$t(severity:critical, capitalize)","normal":"$t(severity:normal, capitalize)","minor":"$t(severity:minor, capitalize)","trivial":"$t(severity:trivial, capitalize)","unset":"Ingen allvarlighetsgrad"}},"durationDynamics":{"title":"Varaktighetsdynamik","durations":{"sequential":"Sekventiell varaktighet","duration":"Testvaraktighet","speedup":"Snabbhet"},"no-results":"$t(empty:no-results)","tooltips":{"current":"Senaste rapporten ({{timestamp, timestamp_long_no_seconds}})","history":"Rapport från {{timestamp, timestamp_long_no_seconds}}"},"ticks":{"current":"Senast","history":"{{timestamp, timestamp_date}}"},"legend":{"duration":"{{duration, format_duration}}","speedup":"{{speedup}}x"}}},"transitions":{"description":{"new":"Första förekomsten av detta testresultat i rapporten","fixed":"Tidigare \\"misslyckad\\" eller \\"trasig\\" test som nu är \\"godkänd\\"","regressed":"Tidigare \\"godkänd\\" eller \\"trasig\\" test som nu är \\"misslyckad\\"","malfunctioned":"Tidigare \\"godkänd\\" eller \\"misslyckad\\" test som nu är \\"trasig\\"","retries":"{{count}} omkörningar","flaky":"Inkonsekvent mellan körningar"},"new":"Ny","fixed":"Åtgärdad","regressed":"Regresserad","malfunctioned":"Felaktig"},"trHistory":{"unknown-date":"Okänt datum"},"attachments":{"imageDiff":{"mode":{"diff":"Diff","actual":"Faktisk","expected":"Förväntad","side-by-side":"Sida vid sida","overlay":"Överlägg"},"empty":{"failed-to-load":"Kunde inte ladda bildjämförelse"},"image":{"diff":"Diff","actual":"Faktisk","expected":"Förväntad"}}}}')}}]);
|