@allurereport/web-awesome 3.0.1 → 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.
- package/dist/multi/173.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/174.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/252.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/282.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/29.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/416.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/527.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/600.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/605.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/638.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/672.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/686.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/725.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/741.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/755.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/894.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/91.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/943.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/980.app-79c65c7bff941abcbc51.js +1 -0
- package/dist/multi/app-79c65c7bff941abcbc51.js +2 -0
- package/dist/multi/{app-bae2a0fe5738d77cd976.js.LICENSE.txt → app-79c65c7bff941abcbc51.js.LICENSE.txt} +7 -0
- package/dist/multi/manifest.json +21 -21
- package/dist/multi/styles-9e390bad7ce54a807a8e.css +49 -0
- package/dist/single/app-3ca67f29d0f1166c08ca.js +2 -0
- package/dist/single/{app-996d3b5869f8fc942b66.js.LICENSE.txt → app-3ca67f29d0f1166c08ca.js.LICENSE.txt} +7 -0
- package/dist/single/manifest.json +1 -1
- package/package.json +7 -7
- package/src/assets/scss/vars.scss +3 -0
- package/src/components/BaseLayout/index.tsx +25 -21
- package/src/components/BaseLayout/styles.scss +1 -0
- package/src/components/Charts/index.tsx +5 -2
- package/src/components/Footer/FooterVersion.tsx +14 -8
- package/src/components/Header/index.tsx +9 -7
- package/src/components/HeaderControls/index.tsx +5 -2
- package/src/components/MainReport/styles.scss +1 -0
- package/src/components/Metadata/index.tsx +24 -7
- package/src/components/ReportBody/HeaderActions.tsx +4 -13
- package/src/components/ReportBody/SortBy.tsx +27 -13
- package/src/components/ReportBody/index.tsx +1 -1
- package/src/components/ReportBody/styles.scss +4 -1
- package/src/components/ReportFilters/BaseFilters.tsx +345 -0
- package/src/components/ReportFilters/RetryFlaky.tsx +29 -0
- package/src/components/ReportFilters/TagsFilter.tsx +41 -0
- package/src/components/ReportFilters/TransitionFilter.tsx +49 -0
- package/src/components/ReportFilters/index.tsx +44 -0
- package/src/components/ReportFilters/styles.scss +55 -0
- package/src/components/ReportSearch/index.tsx +29 -0
- package/src/components/ReportTabs/index.tsx +1 -1
- package/src/components/SectionPicker/index.tsx +1 -1
- package/src/components/SplitLayout/index.tsx +7 -3
- package/src/components/TestResult/TrEnvironmentItem/index.tsx +2 -2
- package/src/components/TestResult/TrHeader/TrBreadcrumbs.tsx +2 -2
- package/src/components/TestResult/TrHistory/TrHistoryItem.tsx +38 -7
- package/src/components/TestResult/TrHistory/index.tsx +18 -8
- package/src/components/TestResult/TrHistory/styles.scss +4 -7
- package/src/components/TestResult/TrInfo/styles.scss +1 -0
- package/src/components/TestResult/TrNavigation/index.tsx +109 -68
- package/src/components/TestResult/TrNavigation/styles.scss +15 -25
- package/src/components/TestResult/TrPwTraces/PwTraceButton.tsx +1 -8
- package/src/components/TestResult/TrRetriesView/TrRetriesItem.tsx +2 -3
- package/src/components/TestResult/TrRetriesView/index.tsx +4 -3
- package/src/components/TestResult/TrSteps/TrAttachment.tsx +5 -3
- package/src/components/TestResult/TrSteps/TrAttachmentInfo.tsx +10 -3
- package/src/components/TestResult/TrTabs/index.tsx +7 -23
- package/src/components/TestResult/index.tsx +9 -4
- package/src/components/TestResult/styles.scss +1 -0
- package/src/components/Tree/index.tsx +14 -9
- package/src/index.html +19 -18
- package/src/index.tsx +20 -27
- package/src/locales/az.json +39 -11
- package/src/locales/de.json +39 -11
- package/src/locales/en.json +39 -11
- package/src/locales/es.json +39 -11
- package/src/locales/fr.json +39 -11
- package/src/locales/he.json +39 -11
- package/src/locales/hy.json +39 -11
- package/src/locales/it.json +39 -11
- package/src/locales/ja.json +39 -11
- package/src/locales/ka.json +39 -11
- package/src/locales/kr.json +39 -11
- package/src/locales/nl.json +39 -11
- package/src/locales/pl.json +39 -11
- package/src/locales/pt.json +39 -11
- package/src/locales/ru.json +39 -11
- package/src/locales/sv.json +39 -11
- package/src/locales/tr.json +39 -11
- package/src/locales/ua.json +39 -11
- package/src/locales/zh.json +39 -11
- package/src/stores/chart.ts +2 -2
- package/src/stores/env.ts +6 -6
- package/src/stores/envInfo.ts +2 -2
- package/src/stores/globals.ts +1 -1
- package/src/stores/index.ts +0 -1
- package/src/stores/layout.ts +20 -11
- package/src/stores/locale.ts +2 -1
- package/src/stores/qualityGate.ts +2 -2
- package/src/stores/router.ts +25 -91
- package/src/stores/sections.ts +32 -45
- package/src/stores/stats.ts +4 -4
- package/src/stores/testResult.ts +5 -0
- package/src/stores/testResults.ts +7 -5
- package/src/stores/tree.ts +20 -13
- package/src/stores/treeFilters/actions.ts +48 -52
- package/src/stores/treeFilters/constants.ts +11 -5
- package/src/stores/treeFilters/model.ts +51 -0
- package/src/stores/treeFilters/store.ts +260 -60
- package/src/stores/treeFilters/utils.ts +132 -0
- package/src/stores/treeSort.ts +71 -0
- package/src/stores/variables.ts +3 -3
- package/src/utils/treeFilters.ts +48 -66
- package/test/components/Header.test.tsx +49 -58
- package/test/utils/treeFilters.test.ts +18 -321
- package/types.d.ts +2 -1
- package/dist/multi/173.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/174.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/252.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/282.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/29.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/416.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/527.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/600.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/605.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/638.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/672.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/686.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/725.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/741.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/755.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/894.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/91.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/943.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/980.app-bae2a0fe5738d77cd976.js +0 -1
- package/dist/multi/app-bae2a0fe5738d77cd976.js +0 -2
- package/dist/multi/styles-bbf68b2ba63c38b53c38.css +0 -48
- package/dist/single/app-996d3b5869f8fc942b66.js +0 -2
- package/src/components/ReportBody/Filters.tsx +0 -122
- package/src/stores/theme.ts +0 -30
- package/src/stores/treeFilters/index.ts +0 -3
- package/src/stores/treeFilters/types.ts +0 -12
- package/test/stores/treeFilters.test.ts +0 -302
|
@@ -4,17 +4,22 @@ import { MetadataButton } from "@/components/MetadataButton";
|
|
|
4
4
|
import { reportStatsStore, statsByEnvStore } from "@/stores";
|
|
5
5
|
import { collapsedEnvironments, currentEnvironment, environmentsStore } from "@/stores/env";
|
|
6
6
|
import { useI18n } from "@/stores/locale";
|
|
7
|
-
import {
|
|
7
|
+
import { navigateToTestResult } from "@/stores/router";
|
|
8
|
+
import { currentTrId } from "@/stores/testResult";
|
|
8
9
|
import { collapsedTrees, filteredTree, noTests, noTestsFound, toggleTree, treeStore } from "@/stores/tree";
|
|
9
|
-
import { clearTreeFilters, treeStatus } from "@/stores/treeFilters";
|
|
10
|
+
import { clearTreeFilters, treeStatus } from "@/stores/treeFilters/store";
|
|
10
11
|
import { createTreeLocalizer } from "@/utils/tree";
|
|
11
12
|
import * as styles from "./styles.scss";
|
|
12
13
|
|
|
14
|
+
const treeNavigateTo = (id: string) => {
|
|
15
|
+
navigateToTestResult({ testResultId: id });
|
|
16
|
+
};
|
|
17
|
+
|
|
13
18
|
export const TreeList = () => {
|
|
14
19
|
const { t } = useI18n("empty");
|
|
15
20
|
const { t: tEnvironments } = useI18n("environments");
|
|
16
21
|
const { t: tooltip } = useI18n("transitions");
|
|
17
|
-
const
|
|
22
|
+
const trId = currentTrId.value;
|
|
18
23
|
|
|
19
24
|
const currentTreeStatus = treeStatus.value;
|
|
20
25
|
|
|
@@ -72,10 +77,10 @@ export const TreeList = () => {
|
|
|
72
77
|
statistic={statsByEnvStore.value.data[currentEnvironment.value]}
|
|
73
78
|
collapsedTrees={collapsedTrees.value}
|
|
74
79
|
toggleTree={toggleTree}
|
|
75
|
-
navigateTo={
|
|
80
|
+
navigateTo={treeNavigateTo}
|
|
76
81
|
tree={treeLocalizer(filteredTree.value.default)}
|
|
77
82
|
statusFilter={currentTreeStatus}
|
|
78
|
-
routeId={
|
|
83
|
+
routeId={trId}
|
|
79
84
|
root
|
|
80
85
|
/>
|
|
81
86
|
</div>
|
|
@@ -92,10 +97,10 @@ export const TreeList = () => {
|
|
|
92
97
|
statistic={statsByEnvStore.value.data[currentEnvironment.value]}
|
|
93
98
|
collapsedTrees={collapsedTrees.value}
|
|
94
99
|
toggleTree={toggleTree}
|
|
95
|
-
navigateTo={
|
|
100
|
+
navigateTo={treeNavigateTo}
|
|
96
101
|
tree={treeLocalizer(currentTree)}
|
|
97
102
|
statusFilter={currentTreeStatus}
|
|
98
|
-
routeId={
|
|
103
|
+
routeId={trId}
|
|
99
104
|
root
|
|
100
105
|
/>
|
|
101
106
|
</div>
|
|
@@ -144,9 +149,9 @@ export const TreeList = () => {
|
|
|
144
149
|
collapsedTrees={collapsedTrees.value}
|
|
145
150
|
toggleTree={toggleTree}
|
|
146
151
|
statusFilter={currentTreeStatus}
|
|
147
|
-
navigateTo={
|
|
152
|
+
navigateTo={treeNavigateTo}
|
|
148
153
|
tree={treeLocalizer(value)}
|
|
149
|
-
routeId={
|
|
154
|
+
routeId={trId}
|
|
150
155
|
root
|
|
151
156
|
/>
|
|
152
157
|
</div>
|
package/src/index.html
CHANGED
|
@@ -4,33 +4,18 @@
|
|
|
4
4
|
<title>Allure Awesome</title>
|
|
5
5
|
<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" />
|
|
6
6
|
<base href="http://localhost:8080" />
|
|
7
|
-
</head>
|
|
8
|
-
<body>
|
|
9
|
-
<div id="app"></div>
|
|
10
|
-
<script>
|
|
11
|
-
window.allure = window.allure || {};
|
|
12
|
-
</script>
|
|
13
|
-
|
|
14
|
-
<script>
|
|
15
|
-
const { origin, pathname } = window.location;
|
|
16
|
-
const url = new URL(pathname, origin);
|
|
17
|
-
const baseEl = document.createElement("base");
|
|
18
|
-
|
|
19
|
-
baseEl.href = url.toString();
|
|
20
|
-
|
|
21
|
-
window.document.head.appendChild(baseEl);
|
|
22
|
-
</script>
|
|
23
7
|
<script>
|
|
24
8
|
window.allureReportOptions = {
|
|
25
9
|
"reportName": "Allure Report",
|
|
26
10
|
"logo": "",
|
|
27
|
-
"theme": "
|
|
11
|
+
"theme": "auto",
|
|
28
12
|
"reportLanguage": "en",
|
|
29
13
|
"createdAt": 1739819870336,
|
|
30
14
|
"reportUuid": "51b36daf-614b-409c-b6a1-e8e401b2c144",
|
|
31
15
|
"groupBy": ["parentSuite", "suite", "subSuite"],
|
|
32
16
|
"layout": "split",
|
|
33
|
-
"allureVersion": "3.0.
|
|
17
|
+
"allureVersion": "3.0.1-develop",
|
|
18
|
+
"sections": ["charts", "timeline"],
|
|
34
19
|
"ci": {
|
|
35
20
|
"type": "github",
|
|
36
21
|
"detected": true,
|
|
@@ -46,6 +31,22 @@
|
|
|
46
31
|
}
|
|
47
32
|
};
|
|
48
33
|
</script>
|
|
34
|
+
</head>
|
|
35
|
+
<body>
|
|
36
|
+
<div id="app"></div>
|
|
37
|
+
<script>
|
|
38
|
+
window.allure = window.allure || {};
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
<script>
|
|
42
|
+
const { origin, pathname } = window.location;
|
|
43
|
+
const url = new URL(pathname, origin);
|
|
44
|
+
const baseEl = document.createElement("base");
|
|
45
|
+
|
|
46
|
+
baseEl.href = url.toString();
|
|
47
|
+
|
|
48
|
+
window.document.head.appendChild(baseEl);
|
|
49
|
+
</script>
|
|
49
50
|
<script async>
|
|
50
51
|
window.allureReportDataReady = true;
|
|
51
52
|
</script>
|
package/src/index.tsx
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ensureReportDataReady } from "@allurereport/web-commons";
|
|
2
2
|
import { Spinner, SvgIcon, allureIcons } from "@allurereport/web-components";
|
|
3
3
|
import "@allurereport/web-components/index.css";
|
|
4
|
+
import { computed, useSignalEffect } from "@preact/signals";
|
|
4
5
|
import clsx from "clsx";
|
|
5
6
|
import { render } from "preact";
|
|
6
7
|
import { useEffect, useState } from "preact/hooks";
|
|
@@ -9,18 +10,21 @@ import { Footer } from "@/components/Footer";
|
|
|
9
10
|
import { Header } from "@/components/Header";
|
|
10
11
|
import { ModalComponent } from "@/components/Modal";
|
|
11
12
|
import { SectionSwitcher } from "@/components/SectionSwitcher";
|
|
12
|
-
import { fetchEnvStats, fetchReportStats, getLocale,
|
|
13
|
+
import { fetchEnvStats, fetchReportStats, getLocale, waitForI18next } from "@/stores";
|
|
13
14
|
import { fetchPieChartData } from "@/stores/chart";
|
|
14
15
|
import { currentEnvironment, environmentsStore, fetchEnvironments } from "@/stores/env";
|
|
15
16
|
import { fetchEnvInfo } from "@/stores/envInfo";
|
|
16
17
|
import { fetchGlobals } from "@/stores/globals";
|
|
17
|
-
import {
|
|
18
|
-
import { handleHashChange, route } from "@/stores/router";
|
|
19
|
-
import { currentSection, getSection } from "@/stores/sections";
|
|
18
|
+
import { isLayoutLoading, layoutStore } from "@/stores/layout";
|
|
20
19
|
import { fetchTestResult, fetchTestResultNav } from "@/stores/testResults";
|
|
21
20
|
import { fetchEnvTreesData } from "@/stores/tree";
|
|
22
21
|
import { isMac } from "@/utils/isMac";
|
|
23
22
|
import { fetchQualityGateResults } from "./stores/qualityGate";
|
|
23
|
+
import { testResultRoute } from "./stores/router";
|
|
24
|
+
import { currentSection } from "./stores/sections";
|
|
25
|
+
import { currentTrId } from "./stores/testResult";
|
|
26
|
+
import { fetchTreeFiltersData } from "./stores/treeFilters/actions";
|
|
27
|
+
import { migrateFilterParam } from "./stores/treeFilters/utils";
|
|
24
28
|
import * as styles from "./styles.scss";
|
|
25
29
|
|
|
26
30
|
const Loader = () => {
|
|
@@ -32,10 +36,12 @@ const Loader = () => {
|
|
|
32
36
|
);
|
|
33
37
|
};
|
|
34
38
|
|
|
39
|
+
const isTestResultRoute = computed(() => testResultRoute.value.matches);
|
|
40
|
+
|
|
35
41
|
const App = () => {
|
|
36
|
-
const className = styles[`layout-${currentSection.value !== "" ? currentSection.value : layoutStore.value}`];
|
|
42
|
+
const className = styles[`layout-${currentSection.value !== "default" ? currentSection.value : layoutStore.value}`];
|
|
37
43
|
const [prefetched, setPrefetched] = useState(false);
|
|
38
|
-
|
|
44
|
+
|
|
39
45
|
const prefetchData = async () => {
|
|
40
46
|
const fns = [
|
|
41
47
|
ensureReportDataReady,
|
|
@@ -48,12 +54,7 @@ const App = () => {
|
|
|
48
54
|
];
|
|
49
55
|
|
|
50
56
|
if (globalThis) {
|
|
51
|
-
fns.unshift(
|
|
52
|
-
getSection as () => Promise<void>,
|
|
53
|
-
getLocale,
|
|
54
|
-
getLayout as () => Promise<void>,
|
|
55
|
-
getTheme as () => Promise<void>,
|
|
56
|
-
);
|
|
57
|
+
fns.unshift(getLocale);
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
await waitForI18next;
|
|
@@ -74,22 +75,16 @@ const App = () => {
|
|
|
74
75
|
prefetchData();
|
|
75
76
|
}, [currentEnvironment.value]);
|
|
76
77
|
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
useSignalEffect(() => {
|
|
79
|
+
const testResultId = currentTrId.value;
|
|
80
|
+
if (isTestResultRoute.value && testResultId) {
|
|
79
81
|
fetchTestResult(testResultId);
|
|
80
82
|
fetchTestResultNav(currentEnvironment.value);
|
|
81
83
|
}
|
|
82
|
-
}
|
|
84
|
+
});
|
|
83
85
|
|
|
84
86
|
useEffect(() => {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
handleHashChange();
|
|
88
|
-
globalThis.addEventListener("hashchange", onHashChange);
|
|
89
|
-
|
|
90
|
-
return () => {
|
|
91
|
-
globalThis.removeEventListener("hashchange", onHashChange);
|
|
92
|
-
};
|
|
87
|
+
fetchTreeFiltersData();
|
|
93
88
|
}, []);
|
|
94
89
|
|
|
95
90
|
return (
|
|
@@ -107,10 +102,6 @@ const App = () => {
|
|
|
107
102
|
);
|
|
108
103
|
};
|
|
109
104
|
|
|
110
|
-
export const openInNewTab = (path: string) => {
|
|
111
|
-
window.open(`#${path}`, "_blank");
|
|
112
|
-
};
|
|
113
|
-
|
|
114
105
|
const rootElement = document.getElementById("app");
|
|
115
106
|
|
|
116
107
|
document.addEventListener("DOMContentLoaded", () => {
|
|
@@ -119,4 +110,6 @@ document.addEventListener("DOMContentLoaded", () => {
|
|
|
119
110
|
}
|
|
120
111
|
});
|
|
121
112
|
|
|
113
|
+
migrateFilterParam();
|
|
114
|
+
|
|
122
115
|
render(<App />, rootElement);
|
package/src/locales/az.json
CHANGED
|
@@ -28,22 +28,28 @@
|
|
|
28
28
|
"search-placeholder": "Ad və ya ID"
|
|
29
29
|
},
|
|
30
30
|
"filters": {
|
|
31
|
-
"more-filters": "Daha çox filtr",
|
|
32
|
-
"enable-filter": "\"{{filter}}\" filtrlərini aktiv edin",
|
|
33
31
|
"flaky": "Etibarsız",
|
|
34
32
|
"retry": "Təkrar",
|
|
35
33
|
"new": "Yeni",
|
|
36
34
|
"fixed": "Düzəldilmiş",
|
|
37
35
|
"regressed": "Reqressiya",
|
|
38
|
-
"malfunctioned": "Sınıq"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
36
|
+
"malfunctioned": "Sınıq",
|
|
37
|
+
"transition": "Keçid",
|
|
38
|
+
"tags": "Teqlər",
|
|
39
|
+
"goto_filter": "Filtre keç",
|
|
40
|
+
"errors": {
|
|
41
|
+
"max_values_one": "Filtrasiya üçün yalnız ilk {{count}} dəyər istifadə olunur.\nƏlavə dəyərlər nəzərə alınmır",
|
|
42
|
+
"max_values_other": "Filtrasiya üçün yalnız ilk {{count}} dəyərlər istifadə olunur.\nƏlavə dəyərlər nəzərə alınmır"
|
|
43
|
+
},
|
|
44
|
+
"description": {
|
|
45
|
+
"flaky": "Qeyri-sabit testləri göstərir",
|
|
46
|
+
"retry": "Yenidən işə salınan test nəticələrini göstərir",
|
|
47
|
+
"new": "Bu hesabatda ilk dəfə görünən test nəticələrini göstərir",
|
|
48
|
+
"fixed": "İndi uğurlu olan, əvvəl \"uğursuz\" və ya \"sınıq\" olan testləri göstərir",
|
|
49
|
+
"regressed": "Statusu \"uğursuz\" olan, əvvəl \"uğurlu\" və ya \"sınıq\" olan test nəticələrini göstərir",
|
|
50
|
+
"malfunctioned": "Statusu \"sınıq\" olan, əvvəl \"uğurlu\" və ya \"uğursuz\" olan test nəticələrini göstərir",
|
|
51
|
+
"tags": "Müəyyən edilmiş teqləri olan test nəticələrini göstərir"
|
|
52
|
+
}
|
|
47
53
|
},
|
|
48
54
|
"sort-by": {
|
|
49
55
|
"sort-by-text": "Sıralamaq üzrə:",
|
|
@@ -374,5 +380,27 @@
|
|
|
374
380
|
"fixed": "Düzəldilmiş",
|
|
375
381
|
"regressed": "Reqressiya",
|
|
376
382
|
"malfunctioned": "Sınıq"
|
|
383
|
+
},
|
|
384
|
+
"trHistory": {
|
|
385
|
+
"unknown-date": "Naməlum tarix"
|
|
386
|
+
},
|
|
387
|
+
"attachments": {
|
|
388
|
+
"imageDiff": {
|
|
389
|
+
"mode": {
|
|
390
|
+
"diff": "Fərq",
|
|
391
|
+
"actual": "Faktiki",
|
|
392
|
+
"expected": "Gözlənilən",
|
|
393
|
+
"side-by-side": "Yan-yana",
|
|
394
|
+
"overlay": "Üst-üstə"
|
|
395
|
+
},
|
|
396
|
+
"empty": {
|
|
397
|
+
"failed-to-load": "Şəkil müqayisəsi yüklənə bilmədi"
|
|
398
|
+
},
|
|
399
|
+
"image": {
|
|
400
|
+
"diff": "Fərq",
|
|
401
|
+
"actual": "Faktiki",
|
|
402
|
+
"expected": "Gözlənilən"
|
|
403
|
+
}
|
|
404
|
+
}
|
|
377
405
|
}
|
|
378
406
|
}
|
package/src/locales/de.json
CHANGED
|
@@ -28,22 +28,28 @@
|
|
|
28
28
|
"search-placeholder": "Name oder ID"
|
|
29
29
|
},
|
|
30
30
|
"filters": {
|
|
31
|
-
"more-filters": "Filter",
|
|
32
|
-
"enable-filter": "Filter nach \"{{filter}}\" aktivieren",
|
|
33
31
|
"flaky": "Instabil",
|
|
34
32
|
"retry": "Wiederholt",
|
|
35
33
|
"new": "Neu",
|
|
36
34
|
"fixed": "Behoben",
|
|
37
35
|
"regressed": "Regressiert",
|
|
38
|
-
"malfunctioned": "Defekt"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
36
|
+
"malfunctioned": "Defekt",
|
|
37
|
+
"transition": "Übergang",
|
|
38
|
+
"tags": "Tags",
|
|
39
|
+
"goto_filter": "Zum Filter gehen",
|
|
40
|
+
"errors": {
|
|
41
|
+
"max_values_one": "Nur der erste {{count}} Wert wird für die Filterung verwendet.\nZusätzliche Werte werden ignoriert",
|
|
42
|
+
"max_values_other": "Nur die ersten {{count}} Werte werden für die Filterung verwendet.\nZusätzliche Werte werden ignoriert"
|
|
43
|
+
},
|
|
44
|
+
"description": {
|
|
45
|
+
"flaky": "Instabile Tests anzeigen",
|
|
46
|
+
"retry": "Testergebnisse anzeigen, die wiederholt wurden",
|
|
47
|
+
"new": "Testergebnisse anzeigen, die zum ersten Mal in diesem Bericht erscheinen",
|
|
48
|
+
"fixed": "Tests anzeigen, die jetzt erfolgreich sind, aber zuvor \"fehlgeschlagen\" oder \"defekt\" waren",
|
|
49
|
+
"regressed": "Testergebnisse anzeigen, die den Status von \"erfolgreich\" oder \"defekt\" zu \"fehlgeschlagen\" geändert haben",
|
|
50
|
+
"malfunctioned": "Testergebnisse anzeigen, die den Status von \"erfolgreich\" oder \"fehlgeschlagen\" zu \"defekt\" geändert haben",
|
|
51
|
+
"tags": "Testergebnisse anzeigen, die die angegebenen Tags haben"
|
|
52
|
+
}
|
|
47
53
|
},
|
|
48
54
|
"sort-by": {
|
|
49
55
|
"sort-by-text": "Sortieren nach:",
|
|
@@ -374,5 +380,27 @@
|
|
|
374
380
|
"fixed": "Behoben",
|
|
375
381
|
"regressed": "Regressiert",
|
|
376
382
|
"malfunctioned": "Defekt"
|
|
383
|
+
},
|
|
384
|
+
"trHistory": {
|
|
385
|
+
"unknown-date": "Unbekanntes Datum"
|
|
386
|
+
},
|
|
387
|
+
"attachments": {
|
|
388
|
+
"imageDiff": {
|
|
389
|
+
"mode": {
|
|
390
|
+
"diff": "Diff",
|
|
391
|
+
"actual": "Tatsächlich",
|
|
392
|
+
"expected": "Erwartet",
|
|
393
|
+
"side-by-side": "Nebeneinander",
|
|
394
|
+
"overlay": "Überlagerung"
|
|
395
|
+
},
|
|
396
|
+
"empty": {
|
|
397
|
+
"failed-to-load": "Bildvergleich konnte nicht geladen werden"
|
|
398
|
+
},
|
|
399
|
+
"image": {
|
|
400
|
+
"diff": "Diff",
|
|
401
|
+
"actual": "Tatsächlich",
|
|
402
|
+
"expected": "Erwartet"
|
|
403
|
+
}
|
|
404
|
+
}
|
|
377
405
|
}
|
|
378
406
|
}
|
package/src/locales/en.json
CHANGED
|
@@ -28,22 +28,28 @@
|
|
|
28
28
|
"search-placeholder": "Name or ID"
|
|
29
29
|
},
|
|
30
30
|
"filters": {
|
|
31
|
-
"more-filters": "More filters",
|
|
32
|
-
"enable-filter": "Enable \"{{filter}}\" filter",
|
|
33
31
|
"flaky": "Flaky",
|
|
34
32
|
"retry": "Retry",
|
|
35
33
|
"new": "New",
|
|
36
34
|
"fixed": "Fixed",
|
|
37
35
|
"regressed": "Regressed",
|
|
38
|
-
"malfunctioned": "Malfunctioned"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
36
|
+
"malfunctioned": "Malfunctioned",
|
|
37
|
+
"transition": "Transition",
|
|
38
|
+
"tags": "Tags",
|
|
39
|
+
"goto_filter": "Go to filter",
|
|
40
|
+
"errors": {
|
|
41
|
+
"max_values_one": "Only the first {{count}} value is used for filtering.\nAdditional values are ignored",
|
|
42
|
+
"max_values_other": "Only the first {{count}} values are used for filtering.\nAdditional values are ignored"
|
|
43
|
+
},
|
|
44
|
+
"description": {
|
|
45
|
+
"flaky": "Show unstable tests",
|
|
46
|
+
"retry": "Show test results that were rerun",
|
|
47
|
+
"new": "Show test results that appear for the first time in this report",
|
|
48
|
+
"fixed": "Show tests that are passed now but had been \"failed\" or \"broken\" in a previous report",
|
|
49
|
+
"regressed": "Show test results that changed to \"failed\" status from \"passed\" or \"broken\" status",
|
|
50
|
+
"malfunctioned": "Show test results that changed to \"broken\" status from \"passed\" or \"failed\" status",
|
|
51
|
+
"tags": "Show test results that have the specified tags"
|
|
52
|
+
}
|
|
47
53
|
},
|
|
48
54
|
"sort-by": {
|
|
49
55
|
"sort-by-text": "Sort by:",
|
|
@@ -374,5 +380,27 @@
|
|
|
374
380
|
"fixed": "fixed",
|
|
375
381
|
"regressed": "regressed",
|
|
376
382
|
"malfunctioned": "malfunctioned"
|
|
383
|
+
},
|
|
384
|
+
"trHistory": {
|
|
385
|
+
"unknown-date": "Unknown date"
|
|
386
|
+
},
|
|
387
|
+
"attachments": {
|
|
388
|
+
"imageDiff": {
|
|
389
|
+
"mode": {
|
|
390
|
+
"diff": "Diff",
|
|
391
|
+
"actual": "Actual",
|
|
392
|
+
"expected": "Expected",
|
|
393
|
+
"side-by-side": "Side by side",
|
|
394
|
+
"overlay": "Overlay"
|
|
395
|
+
},
|
|
396
|
+
"empty": {
|
|
397
|
+
"failed-to-load": "Failed to load image diff"
|
|
398
|
+
},
|
|
399
|
+
"image": {
|
|
400
|
+
"diff": "Diff",
|
|
401
|
+
"actual": "Actual",
|
|
402
|
+
"expected": "Expected"
|
|
403
|
+
}
|
|
404
|
+
}
|
|
377
405
|
}
|
|
378
406
|
}
|
package/src/locales/es.json
CHANGED
|
@@ -28,22 +28,28 @@
|
|
|
28
28
|
"search-placeholder": "Nombre o ID"
|
|
29
29
|
},
|
|
30
30
|
"filters": {
|
|
31
|
-
"more-filters": "Más filtros",
|
|
32
|
-
"enable-filter": "Habilitar filtro para \"{{filter}}\"",
|
|
33
31
|
"flaky": "Inestable",
|
|
34
32
|
"retry": "Reintento",
|
|
35
33
|
"new": "Nuevo",
|
|
36
34
|
"fixed": "Corregido",
|
|
37
35
|
"regressed": "Regresado",
|
|
38
|
-
"malfunctioned": "Defectuoso"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
36
|
+
"malfunctioned": "Defectuoso",
|
|
37
|
+
"transition": "Transición",
|
|
38
|
+
"tags": "Etiquetas",
|
|
39
|
+
"goto_filter": "Ir al filtro",
|
|
40
|
+
"errors": {
|
|
41
|
+
"max_values_one": "Solo se usa el primer {{count}} valor para el filtrado.\nLos valores adicionales se ignoran",
|
|
42
|
+
"max_values_other": "Solo se usan los primeros {{count}} valores para el filtrado.\nLos valores adicionales se ignoran"
|
|
43
|
+
},
|
|
44
|
+
"description": {
|
|
45
|
+
"flaky": "Mostrar pruebas inestables",
|
|
46
|
+
"retry": "Mostrar resultados de pruebas que se volvieron a ejecutar",
|
|
47
|
+
"new": "Mostrar resultados de pruebas que aparecen por primera vez en este informe",
|
|
48
|
+
"fixed": "Mostrar pruebas que ahora están aprobadas pero anteriormente fueron \"fallidas\" o \"rotas\"",
|
|
49
|
+
"regressed": "Mostrar resultados de pruebas que cambiaron de estado \"aprobado\" o \"roto\" a \"fallido\"",
|
|
50
|
+
"malfunctioned": "Mostrar resultados de pruebas que cambiaron de estado \"aprobado\" o \"fallido\" a \"roto\"",
|
|
51
|
+
"tags": "Mostrar resultados de pruebas que tienen las etiquetas especificadas"
|
|
52
|
+
}
|
|
47
53
|
},
|
|
48
54
|
"sort-by": {
|
|
49
55
|
"sort-by-text": "Ordenar por:",
|
|
@@ -374,5 +380,27 @@
|
|
|
374
380
|
"fixed": "Corregido",
|
|
375
381
|
"regressed": "Regresado",
|
|
376
382
|
"malfunctioned": "Defectuoso"
|
|
383
|
+
},
|
|
384
|
+
"trHistory": {
|
|
385
|
+
"unknown-date": "Fecha desconocida"
|
|
386
|
+
},
|
|
387
|
+
"attachments": {
|
|
388
|
+
"imageDiff": {
|
|
389
|
+
"mode": {
|
|
390
|
+
"diff": "Diff",
|
|
391
|
+
"actual": "Real",
|
|
392
|
+
"expected": "Esperado",
|
|
393
|
+
"side-by-side": "Lado a lado",
|
|
394
|
+
"overlay": "Superposición"
|
|
395
|
+
},
|
|
396
|
+
"empty": {
|
|
397
|
+
"failed-to-load": "Error al cargar la comparación de imágenes"
|
|
398
|
+
},
|
|
399
|
+
"image": {
|
|
400
|
+
"diff": "Diff",
|
|
401
|
+
"actual": "Real",
|
|
402
|
+
"expected": "Esperado"
|
|
403
|
+
}
|
|
404
|
+
}
|
|
377
405
|
}
|
|
378
406
|
}
|
package/src/locales/fr.json
CHANGED
|
@@ -28,22 +28,28 @@
|
|
|
28
28
|
"search-placeholder": "Nom ou ID"
|
|
29
29
|
},
|
|
30
30
|
"filters": {
|
|
31
|
-
"more-filters": "Plus de filtres",
|
|
32
|
-
"enable-filter": "Activer le filtre \"{{filter}}\"",
|
|
33
31
|
"flaky": "Instables",
|
|
34
32
|
"retry": "Réessais",
|
|
35
33
|
"new": "Nouveaux",
|
|
36
34
|
"fixed": "Corrigés",
|
|
37
35
|
"regressed": "Régression",
|
|
38
|
-
"malfunctioned": "Défectueux"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
36
|
+
"malfunctioned": "Défectueux",
|
|
37
|
+
"transition": "Transition",
|
|
38
|
+
"tags": "Tags",
|
|
39
|
+
"goto_filter": "Aller au filtre",
|
|
40
|
+
"errors": {
|
|
41
|
+
"max_values_one": "Seule la première {{count}} valeur est utilisée pour le filtrage.\nLes valeurs supplémentaires sont ignorées",
|
|
42
|
+
"max_values_other": "Seules les premières {{count}} valeurs sont utilisées pour le filtrage.\nLes valeurs supplémentaires sont ignorées"
|
|
43
|
+
},
|
|
44
|
+
"description": {
|
|
45
|
+
"flaky": "Afficher les tests instables",
|
|
46
|
+
"retry": "Afficher les résultats des tests qui ont été réexécutés",
|
|
47
|
+
"new": "Afficher les résultats des tests qui apparaissent pour la première fois dans ce rapport",
|
|
48
|
+
"fixed": "Afficher les tests qui sont maintenant réussis mais qui étaient précédemment \"échoués\" ou \"cassés\"",
|
|
49
|
+
"regressed": "Afficher les résultats des tests qui sont passés du statut \"réussi\" ou \"cassé\" à \"échoué\"",
|
|
50
|
+
"malfunctioned": "Afficher les résultats des tests qui sont passés du statut \"réussi\" ou \"échoué\" à \"cassé\"",
|
|
51
|
+
"tags": "Afficher les résultats des tests qui ont les tags spécifiés"
|
|
52
|
+
}
|
|
47
53
|
},
|
|
48
54
|
"sort-by": {
|
|
49
55
|
"sort-by-text": "Trier par :",
|
|
@@ -374,5 +380,27 @@
|
|
|
374
380
|
"fixed": "Corrigés",
|
|
375
381
|
"regressed": "Régression",
|
|
376
382
|
"malfunctioned": "Défectueux"
|
|
383
|
+
},
|
|
384
|
+
"trHistory": {
|
|
385
|
+
"unknown-date": "Date inconnue"
|
|
386
|
+
},
|
|
387
|
+
"attachments": {
|
|
388
|
+
"imageDiff": {
|
|
389
|
+
"mode": {
|
|
390
|
+
"diff": "Diff",
|
|
391
|
+
"actual": "Réel",
|
|
392
|
+
"expected": "Attendu",
|
|
393
|
+
"side-by-side": "Côte à côte",
|
|
394
|
+
"overlay": "Superposition"
|
|
395
|
+
},
|
|
396
|
+
"empty": {
|
|
397
|
+
"failed-to-load": "Échec du chargement de la comparaison d'images"
|
|
398
|
+
},
|
|
399
|
+
"image": {
|
|
400
|
+
"diff": "Diff",
|
|
401
|
+
"actual": "Réel",
|
|
402
|
+
"expected": "Attendu"
|
|
403
|
+
}
|
|
404
|
+
}
|
|
377
405
|
}
|
|
378
406
|
}
|
package/src/locales/he.json
CHANGED
|
@@ -28,22 +28,28 @@
|
|
|
28
28
|
"search-placeholder": "שם או מזהה"
|
|
29
29
|
},
|
|
30
30
|
"filters": {
|
|
31
|
-
"more-filters": "עוד מסננים",
|
|
32
|
-
"enable-filter": "אפשר מסנן \"{{filter}}\"",
|
|
33
31
|
"flaky": "לא יציב",
|
|
34
32
|
"retry": "חוזר",
|
|
35
33
|
"new": "חדש",
|
|
36
34
|
"fixed": "מתוקן",
|
|
37
35
|
"regressed": "נסוג",
|
|
38
|
-
"malfunctioned": "פגום"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
36
|
+
"malfunctioned": "פגום",
|
|
37
|
+
"transition": "מעבר",
|
|
38
|
+
"tags": "תגיות",
|
|
39
|
+
"goto_filter": "עבור למסנן",
|
|
40
|
+
"errors": {
|
|
41
|
+
"max_values_one": "רק הערך הראשון {{count}} משמש לסינון.\nערכים נוספים מתעלמים",
|
|
42
|
+
"max_values_other": "רק {{count}} הערכים הראשונים משמשים לסינון.\nערכים נוספים מתעלמים"
|
|
43
|
+
},
|
|
44
|
+
"description": {
|
|
45
|
+
"flaky": "הצג בדיקות לא יציבות",
|
|
46
|
+
"retry": "הצג תוצאות בדיקות שחזרו על עצמן",
|
|
47
|
+
"new": "הצג תוצאות בדיקות שמופיעות לראשונה בדוח זה",
|
|
48
|
+
"fixed": "הצג בדיקות שעוברות עכשיו אבל היו קודם \"נכשלות\" או \"שבורות\"",
|
|
49
|
+
"regressed": "הצג תוצאות בדיקות ששינו סטטוס מ-\"עבר\" או \"שבור\" ל-\"נכשל\"",
|
|
50
|
+
"malfunctioned": "הצג תוצאות בדיקות ששינו סטטוס מ-\"עבר\" או \"נכשל\" ל-\"שבור\"",
|
|
51
|
+
"tags": "הצג תוצאות בדיקות שיש להן את התגים שצוינו"
|
|
52
|
+
}
|
|
47
53
|
},
|
|
48
54
|
"sort-by": {
|
|
49
55
|
"sort-by-text": "מיין לפי:",
|
|
@@ -374,5 +380,27 @@
|
|
|
374
380
|
"fixed": "מתוקן",
|
|
375
381
|
"regressed": "נסוג",
|
|
376
382
|
"malfunctioned": "פגום"
|
|
383
|
+
},
|
|
384
|
+
"trHistory": {
|
|
385
|
+
"unknown-date": "תאריך לא ידוע"
|
|
386
|
+
},
|
|
387
|
+
"attachments": {
|
|
388
|
+
"imageDiff": {
|
|
389
|
+
"mode": {
|
|
390
|
+
"diff": "הבדל",
|
|
391
|
+
"actual": "ממשי",
|
|
392
|
+
"expected": "צפוי",
|
|
393
|
+
"side-by-side": "צד אל צד",
|
|
394
|
+
"overlay": "שכבה"
|
|
395
|
+
},
|
|
396
|
+
"empty": {
|
|
397
|
+
"failed-to-load": "טעינת השוואת תמונות נכשלה"
|
|
398
|
+
},
|
|
399
|
+
"image": {
|
|
400
|
+
"diff": "הבדל",
|
|
401
|
+
"actual": "ממשי",
|
|
402
|
+
"expected": "צפוי"
|
|
403
|
+
}
|
|
404
|
+
}
|
|
377
405
|
}
|
|
378
406
|
}
|