@allurereport/web-awesome 3.0.0-beta.9 → 3.0.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.
Files changed (279) hide show
  1. package/dist/multi/173.app-9931797d1602fc52db5b.js +1 -0
  2. package/dist/multi/174.app-9931797d1602fc52db5b.js +1 -0
  3. package/dist/multi/252.app-9931797d1602fc52db5b.js +1 -0
  4. package/dist/multi/282.app-9931797d1602fc52db5b.js +1 -0
  5. package/dist/multi/29.app-9931797d1602fc52db5b.js +1 -0
  6. package/dist/multi/416.app-9931797d1602fc52db5b.js +1 -0
  7. package/dist/multi/527.app-9931797d1602fc52db5b.js +1 -0
  8. package/dist/multi/600.app-9931797d1602fc52db5b.js +1 -0
  9. package/dist/multi/605.app-9931797d1602fc52db5b.js +1 -0
  10. package/dist/multi/638.app-9931797d1602fc52db5b.js +1 -0
  11. package/dist/multi/672.app-9931797d1602fc52db5b.js +1 -0
  12. package/dist/multi/686.app-9931797d1602fc52db5b.js +1 -0
  13. package/dist/multi/725.app-9931797d1602fc52db5b.js +1 -0
  14. package/dist/multi/741.app-9931797d1602fc52db5b.js +1 -0
  15. package/dist/multi/755.app-9931797d1602fc52db5b.js +1 -0
  16. package/dist/multi/894.app-9931797d1602fc52db5b.js +1 -0
  17. package/dist/multi/91.app-9931797d1602fc52db5b.js +1 -0
  18. package/dist/multi/943.app-9931797d1602fc52db5b.js +1 -0
  19. package/dist/multi/980.app-9931797d1602fc52db5b.js +1 -0
  20. package/dist/multi/app-9931797d1602fc52db5b.js +2 -0
  21. package/dist/multi/app-9931797d1602fc52db5b.js.LICENSE.txt +10 -0
  22. package/dist/multi/manifest.json +25 -24
  23. package/dist/multi/styles-8fe37354d1c2270c691e.css +48 -0
  24. package/dist/single/app-6199dc1c2fd3bddc2526.js +2 -0
  25. package/dist/single/app-6199dc1c2fd3bddc2526.js.LICENSE.txt +10 -0
  26. package/dist/single/manifest.json +1 -1
  27. package/package.json +29 -17
  28. package/src/assets/scss/day.scss +2 -0
  29. package/src/assets/scss/index.scss +1 -3
  30. package/src/assets/scss/night.scss +2 -0
  31. package/src/assets/scss/palette.scss +391 -391
  32. package/src/assets/scss/theme.scss +292 -79
  33. package/src/components/BaseLayout/index.tsx +10 -32
  34. package/src/components/BaseLayout/styles.scss +14 -4
  35. package/src/components/Charts/index.tsx +245 -0
  36. package/src/components/Charts/styles.scss +27 -0
  37. package/src/components/EnvironmentPicker/index.tsx +60 -0
  38. package/src/components/EnvironmentPicker/styles.scss +9 -0
  39. package/src/components/Footer/FooterLogo.tsx +1 -2
  40. package/src/components/Footer/FooterVersion.tsx +7 -3
  41. package/src/components/Footer/index.tsx +6 -2
  42. package/src/components/Header/CiInfo/index.tsx +67 -0
  43. package/src/components/Header/CiInfo/styles.scss +7 -0
  44. package/src/components/Header/index.tsx +21 -8
  45. package/src/components/Header/styles.scss +9 -1
  46. package/src/components/HeaderControls/index.tsx +20 -0
  47. package/src/components/MainReport/index.tsx +84 -6
  48. package/src/components/MainReport/styles.scss +20 -0
  49. package/src/components/Metadata/index.tsx +6 -4
  50. package/src/components/MetadataButton/index.tsx +14 -6
  51. package/src/components/MetadataButton/styles.scss +3 -0
  52. package/src/components/Modal/index.tsx +15 -167
  53. package/src/components/NavTabs/index.tsx +70 -0
  54. package/src/components/{TestResult/TestResultTabs → NavTabs}/styles.scss +0 -3
  55. package/src/components/Report/index.tsx +7 -0
  56. package/src/components/ReportBody/Filters.tsx +45 -64
  57. package/src/components/ReportBody/index.tsx +26 -15
  58. package/src/components/ReportBody/styles.scss +9 -3
  59. package/src/components/ReportGlobalAttachments/index.tsx +34 -0
  60. package/src/components/ReportGlobalAttachments/styles.scss +11 -0
  61. package/src/components/ReportGlobalErrors/index.tsx +30 -0
  62. package/src/components/ReportGlobalErrors/styles.scss +12 -0
  63. package/src/components/ReportHeader/ReportHeaderLogo.tsx +6 -2
  64. package/src/components/ReportHeader/ReportHeaderPie.tsx +1 -2
  65. package/src/components/ReportHeader/index.tsx +38 -12
  66. package/src/components/ReportHeader/styles.scss +9 -1
  67. package/src/components/ReportMetadata/MetadataSummary.tsx +57 -65
  68. package/src/components/ReportMetadata/MetadataWithIcon.tsx +11 -13
  69. package/src/components/ReportMetadata/index.tsx +50 -3
  70. package/src/components/ReportMetadata/styles.scss +0 -2
  71. package/src/components/ReportQualityGateResults/index.tsx +42 -0
  72. package/src/components/ReportQualityGateResults/styles.scss +44 -0
  73. package/src/components/SectionPicker/index.tsx +55 -0
  74. package/src/components/SectionPicker/styles.scss +5 -0
  75. package/src/components/SectionSwitcher/index.tsx +16 -0
  76. package/src/components/SectionSwitcher/styles.scss +4 -0
  77. package/src/components/SectionTabs/index.tsx +0 -0
  78. package/src/components/SideBySide/index.tsx +52 -0
  79. package/src/components/SideBySide/styles.scss +64 -0
  80. package/src/components/SplitLayout/index.tsx +73 -0
  81. package/src/components/SplitLayout/styles.scss +84 -0
  82. package/src/components/Tabs/index.tsx +2 -2
  83. package/src/components/TestResult/TestStepsEmpty/index.tsx +2 -2
  84. package/src/components/TestResult/TrAttachmentsView/index.tsx +29 -0
  85. package/src/components/TestResult/{TestResultDescription → TrDescription}/index.tsx +5 -5
  86. package/src/components/TestResult/{TestResultDropdown → TrDropdown}/index.tsx +7 -5
  87. package/src/components/TestResult/{TestResultEmpty → TrEmpty}/index.tsx +6 -6
  88. package/src/components/TestResult/TrEnvironmentItem/index.tsx +82 -0
  89. package/src/components/TestResult/TrEnvironmentItem/styles.scss +60 -0
  90. package/src/components/TestResult/TrEnvironmentsView/index.tsx +64 -0
  91. package/src/components/TestResult/TrEnvironmentsView/styles.scss +11 -0
  92. package/src/components/TestResult/TrError/TrDiff.tsx +121 -0
  93. package/src/components/TestResult/TrError/index.tsx +104 -0
  94. package/src/components/TestResult/TrError/styles.scss +223 -0
  95. package/src/components/TestResult/TrHeader/TrBreadcrumbs.tsx +44 -0
  96. package/src/components/TestResult/TrHeader/index.tsx +15 -0
  97. package/src/components/TestResult/{TestResultHeader → TrHeader}/styles.scss +7 -2
  98. package/src/components/TestResult/TrHistory/TrHistoryItem.tsx +94 -0
  99. package/src/components/TestResult/TrHistory/index.tsx +26 -0
  100. package/src/components/TestResult/{TestResultHistory → TrHistory}/styles.scss +2 -1
  101. package/src/components/TestResult/{TestResultInfo/TestResultInfoStatuses.tsx → TrInfo/TrInfoStatuses.tsx} +6 -4
  102. package/src/components/TestResult/TrInfo/index.tsx +99 -0
  103. package/src/components/TestResult/{TestResultInfo → TrInfo}/styles.scss +18 -0
  104. package/src/components/TestResult/{TestResultLinks → TrLinks}/index.tsx +8 -8
  105. package/src/components/TestResult/{TestResultMetadata → TrMetadata}/index.tsx +6 -6
  106. package/src/components/TestResult/{TestResultNavigation → TrNavigation}/index.tsx +7 -9
  107. package/src/components/TestResult/TrOverview.tsx +46 -0
  108. package/src/components/TestResult/{TestResultParameters → TrParameters}/index.tsx +4 -4
  109. package/src/components/TestResult/TrPrevStatuses/index.tsx +63 -0
  110. package/src/components/TestResult/TrPwTraces/PwTrace.tsx +34 -0
  111. package/src/components/TestResult/TrPwTraces/PwTraceButton.tsx +32 -0
  112. package/src/components/TestResult/TrPwTraces/index.tsx +32 -0
  113. package/src/components/TestResult/TrPwTraces/styles.scss +20 -0
  114. package/src/components/TestResult/TrRetriesView/TrRetriesItem.tsx +70 -0
  115. package/src/components/TestResult/TrRetriesView/index.tsx +29 -0
  116. package/src/components/TestResult/{TestResultSetup → TrSetup}/index.tsx +13 -13
  117. package/src/components/TestResult/{TestResultSeverity → TrSeverity}/index.tsx +2 -2
  118. package/src/components/TestResult/{TestResultStatus → TrStatus}/index.tsx +5 -5
  119. package/src/components/TestResult/TrSteps/TrAttachment.tsx +118 -0
  120. package/src/components/TestResult/{TestResultSteps/testResultAttachmentInfo.tsx → TrSteps/TrAttachmentInfo.tsx} +11 -11
  121. package/src/components/TestResult/TrSteps/TrStep.tsx +98 -0
  122. package/src/components/TestResult/TrSteps/TrStepInfo.tsx +90 -0
  123. package/src/components/TestResult/{TestResultSteps → TrSteps}/index.tsx +12 -12
  124. package/src/components/TestResult/{TestResultSteps → TrSteps}/styles.scss +49 -10
  125. package/src/components/TestResult/{TestResultSteps → TrSteps}/wrongAttachment.tsx +1 -1
  126. package/src/components/TestResult/TrTabs/index.tsx +42 -0
  127. package/src/components/TestResult/{TestResultTeardown → TrTeardown}/index.tsx +13 -13
  128. package/src/components/TestResult/index.tsx +54 -38
  129. package/src/components/TestResult/styles.scss +12 -0
  130. package/src/components/Timeline/index.tsx +100 -0
  131. package/src/components/Timeline/styles.scss +45 -0
  132. package/src/components/ToggleLayout/index.tsx +17 -0
  133. package/src/components/Tree/index.tsx +123 -9
  134. package/src/components/Tree/styles.scss +23 -5
  135. package/src/index.html +22 -6
  136. package/src/index.tsx +91 -20
  137. package/src/locales/az.json +376 -0
  138. package/src/locales/de.json +376 -0
  139. package/src/locales/en.json +376 -0
  140. package/src/locales/es.json +376 -0
  141. package/src/locales/fr.json +376 -0
  142. package/src/locales/he.json +376 -0
  143. package/src/locales/hy.json +376 -0
  144. package/src/locales/it.json +376 -0
  145. package/src/locales/ja.json +376 -0
  146. package/src/locales/ka.json +376 -0
  147. package/src/locales/kr.json +376 -0
  148. package/src/locales/nl.json +376 -0
  149. package/src/locales/pl.json +384 -0
  150. package/src/locales/pt.json +376 -0
  151. package/src/locales/ru.json +384 -0
  152. package/src/locales/sv.json +376 -0
  153. package/src/locales/tr.json +376 -0
  154. package/src/locales/ua.json +327 -0
  155. package/src/locales/zh.json +376 -0
  156. package/src/stores/chart.ts +41 -6
  157. package/src/stores/env.ts +88 -0
  158. package/src/stores/envInfo.ts +2 -2
  159. package/src/stores/globals.ts +28 -0
  160. package/src/stores/layout.ts +36 -0
  161. package/src/stores/locale.ts +77 -29
  162. package/src/stores/modal.ts +22 -0
  163. package/src/stores/qualityGate.ts +28 -0
  164. package/src/stores/router.ts +108 -0
  165. package/src/stores/sections.ts +63 -0
  166. package/src/stores/stats.ts +52 -7
  167. package/src/stores/testResults.ts +13 -9
  168. package/src/stores/theme.ts +15 -18
  169. package/src/stores/timeline.ts +39 -0
  170. package/src/stores/tree.ts +61 -22
  171. package/src/stores/variables.ts +40 -0
  172. package/src/styles.scss +66 -0
  173. package/src/utils/time.ts +1 -0
  174. package/src/utils/tree.ts +23 -0
  175. package/src/utils/treeFilters.ts +27 -21
  176. package/test/components/Header/CiInfo.test.tsx +177 -0
  177. package/test/components/Header.test.tsx +122 -0
  178. package/test/utils/treeFilters.test.ts +44 -44
  179. package/tsconfig.json +7 -2
  180. package/tsconfig.node.json +8 -0
  181. package/types.d.ts +43 -24
  182. package/vitest.config.ts +15 -2
  183. package/vitest.setup.ts +1 -0
  184. package/webpack.config.js +35 -5
  185. package/dist/multi/141.app-f32e4213.js +0 -1
  186. package/dist/multi/222.app-f32e4213.js +0 -1
  187. package/dist/multi/335.app-f32e4213.js +0 -1
  188. package/dist/multi/34.app-f32e4213.js +0 -1
  189. package/dist/multi/349.app-f32e4213.js +0 -1
  190. package/dist/multi/378.app-f32e4213.js +0 -1
  191. package/dist/multi/406.app-f32e4213.js +0 -1
  192. package/dist/multi/476.app-f32e4213.js +0 -1
  193. package/dist/multi/53.app-f32e4213.js +0 -1
  194. package/dist/multi/584.app-f32e4213.js +0 -1
  195. package/dist/multi/690.app-f32e4213.js +0 -1
  196. package/dist/multi/747.app-f32e4213.js +0 -1
  197. package/dist/multi/767.app-f32e4213.js +0 -1
  198. package/dist/multi/816.app-f32e4213.js +0 -1
  199. package/dist/multi/83.app-f32e4213.js +0 -1
  200. package/dist/multi/873.app-f32e4213.js +0 -1
  201. package/dist/multi/920.app-f32e4213.js +0 -1
  202. package/dist/multi/991.app-f32e4213.js +0 -1
  203. package/dist/multi/app-f32e4213.js +0 -2
  204. package/dist/multi/app-f32e4213.js.LICENSE.txt +0 -16
  205. package/dist/multi/styles-f32e4213.css +0 -284
  206. package/dist/single/app-7fa8e43f.js +0 -2
  207. package/dist/single/app-7fa8e43f.js.LICENSE.txt +0 -16
  208. package/src/assets/scss/code.scss +0 -71
  209. package/src/assets/scss/typography.scss +0 -218
  210. package/src/components/ArrowButton/index.tsx +0 -36
  211. package/src/components/ArrowButton/styles.scss +0 -35
  212. package/src/components/LanguagePicker/index.tsx +0 -40
  213. package/src/components/Modal/styles.scss +0 -126
  214. package/src/components/ReportLogo/index.tsx +0 -16
  215. package/src/components/ReportLogo/styles.scss +0 -20
  216. package/src/components/ReportLogoFull/index.tsx +0 -20
  217. package/src/components/ReportLogoFull/styles.scss +0 -7
  218. package/src/components/TestResult/TestResultAttachmentsView/index.tsx +0 -27
  219. package/src/components/TestResult/TestResultError/index.tsx +0 -59
  220. package/src/components/TestResult/TestResultError/styles.scss +0 -51
  221. package/src/components/TestResult/TestResultHeader/index.tsx +0 -55
  222. package/src/components/TestResult/TestResultHistory/TestResultHistoryItem.tsx +0 -67
  223. package/src/components/TestResult/TestResultHistory/index.tsx +0 -26
  224. package/src/components/TestResult/TestResultInfo/index.tsx +0 -79
  225. package/src/components/TestResult/TestResultOverview.tsx +0 -43
  226. package/src/components/TestResult/TestResultPrevStatuses/index.tsx +0 -49
  227. package/src/components/TestResult/TestResultRetriesView/TestResultRetriesItem.tsx +0 -52
  228. package/src/components/TestResult/TestResultRetriesView/index.tsx +0 -24
  229. package/src/components/TestResult/TestResultSteps/HtmlAttachmentPreview.tsx +0 -12
  230. package/src/components/TestResult/TestResultSteps/attachment.tsx +0 -68
  231. package/src/components/TestResult/TestResultSteps/attachmentCode.tsx +0 -20
  232. package/src/components/TestResult/TestResultSteps/attachmentImage.tsx +0 -32
  233. package/src/components/TestResult/TestResultSteps/attachmentVideo.tsx +0 -15
  234. package/src/components/TestResult/TestResultSteps/testResultAttachment.tsx +0 -77
  235. package/src/components/TestResult/TestResultSteps/testResultStep.tsx +0 -85
  236. package/src/components/TestResult/TestResultSteps/testResultStepInfo.tsx +0 -30
  237. package/src/components/TestResult/TestResultTabs/index.tsx +0 -59
  238. package/src/components/ThemeButton/ThemeButton.tsx +0 -20
  239. package/src/components/Tree/Tree.tsx +0 -75
  240. package/src/components/Tree/TreeHeader.tsx +0 -82
  241. package/src/components/Tree/TreeItem.tsx +0 -35
  242. package/src/components/Tree/TreeItemIcon.tsx +0 -32
  243. package/src/i18n/constants.ts +0 -124
  244. package/src/i18n/locales/am.json +0 -120
  245. package/src/i18n/locales/az.json +0 -120
  246. package/src/i18n/locales/de.json +0 -120
  247. package/src/i18n/locales/en.json +0 -121
  248. package/src/i18n/locales/es.json +0 -120
  249. package/src/i18n/locales/fr.json +0 -120
  250. package/src/i18n/locales/he.json +0 -120
  251. package/src/i18n/locales/it.json +0 -120
  252. package/src/i18n/locales/ja.json +0 -120
  253. package/src/i18n/locales/ka.json +0 -120
  254. package/src/i18n/locales/kr.json +0 -120
  255. package/src/i18n/locales/nl.json +0 -120
  256. package/src/i18n/locales/pl.json +0 -118
  257. package/src/i18n/locales/pt.json +0 -120
  258. package/src/i18n/locales/ru.json +0 -118
  259. package/src/i18n/locales/sv.json +0 -120
  260. package/src/i18n/locales/tr.json +0 -120
  261. package/src/i18n/locales/zh.json +0 -120
  262. package/src/utils/attachments.ts +0 -156
  263. package/src/utils/capitalize.ts +0 -6
  264. /package/dist/multi/{JetBrainsMono_vf-b9a9c326..woff → JetBrainsMono_vf.woff} +0 -0
  265. /package/dist/multi/{JetBrainsMono_vf-9e9649b6..woff2 → JetBrainsMono_vf.woff2} +0 -0
  266. /package/dist/multi/{pt-root-ui_vf-22fe60ca..woff → pt-root-ui_vf.woff} +0 -0
  267. /package/dist/multi/{pt-root-ui_vf-9d251e8b..woff2 → pt-root-ui_vf.woff2} +0 -0
  268. /package/src/components/TestResult/{TestResultAttachmentsView → TrAttachmentsView}/styles.scss +0 -0
  269. /package/src/components/TestResult/{TestResultDescription → TrDescription}/styles.scss +0 -0
  270. /package/src/components/TestResult/{TestResultDropdown → TrDropdown}/styles.scss +0 -0
  271. /package/src/components/TestResult/{TestResultEmpty → TrEmpty}/styles.scss +0 -0
  272. /package/src/components/TestResult/{TestResultLinks → TrLinks}/styles.scss +0 -0
  273. /package/src/components/TestResult/{TestResultMetadata → TrMetadata}/styles.scss +0 -0
  274. /package/src/components/TestResult/{TestResultNavigation → TrNavigation}/styles.scss +0 -0
  275. /package/src/components/TestResult/{TestResultParameters → TrParameters}/styles.scss +0 -0
  276. /package/src/components/TestResult/{TestResultPrevStatuses → TrPrevStatuses}/styles.scss +0 -0
  277. /package/src/components/TestResult/{TestResultRetriesView → TrRetriesView}/styles.scss +0 -0
  278. /package/src/components/TestResult/{TestResultSeverity → TrSeverity}/styles.scss +0 -0
  279. /package/src/components/TestResult/{TestResultStatus → TrStatus}/styles.scss +0 -0
package/src/index.tsx CHANGED
@@ -1,38 +1,111 @@
1
+ import { ensureReportDataReady } from "@allurereport/web-commons";
2
+ import { Spinner, SvgIcon, allureIcons } from "@allurereport/web-components";
1
3
  import "@allurereport/web-components/index.css";
4
+ import clsx from "clsx";
2
5
  import { render } from "preact";
6
+ import "preact/debug";
3
7
  import { useEffect, useState } from "preact/hooks";
4
8
  import "@/assets/scss/index.scss";
5
- import { BaseLayout } from "@/components/BaseLayout";
9
+ import { Footer } from "@/components/Footer";
10
+ import { Header } from "@/components/Header";
11
+ import { ModalComponent } from "@/components/Modal";
12
+ import { SectionSwitcher } from "@/components/SectionSwitcher";
13
+ import { fetchEnvStats, fetchReportStats, getLocale, getTheme, waitForI18next } from "@/stores";
14
+ import { fetchPieChartData } from "@/stores/chart";
15
+ import { currentEnvironment, environmentsStore, fetchEnvironments } from "@/stores/env";
16
+ import { fetchEnvInfo } from "@/stores/envInfo";
17
+ import { fetchGlobals } from "@/stores/globals";
18
+ import { getLayout, isLayoutLoading, layoutStore } from "@/stores/layout";
19
+ import { handleHashChange, route } from "@/stores/router";
20
+ import { currentSection, getSection } from "@/stores/sections";
21
+ import { fetchTestResult, fetchTestResultNav } from "@/stores/testResults";
22
+ import { fetchEnvTreesData } from "@/stores/tree";
6
23
  import { isMac } from "@/utils/isMac";
24
+ import { fetchQualityGateResults } from "./stores/qualityGate";
25
+ import * as styles from "./styles.scss";
26
+
27
+ const Loader = () => {
28
+ return (
29
+ <div className={clsx(styles.loader, isLayoutLoading.value ? styles.loading : "")} data-testid="loader">
30
+ <SvgIcon id={allureIcons.reportLogo} size={"m"} />
31
+ <Spinner />
32
+ </div>
33
+ );
34
+ };
7
35
 
8
36
  const App = () => {
9
- const [testResultId, setTestResultId] = useState<string>("");
37
+ const className = styles[`layout-${currentSection.value !== "" ? currentSection.value : layoutStore.value}`];
38
+ const [prefetched, setPrefetched] = useState(false);
39
+ const testResultId = route.value.params?.testResultId ?? null;
40
+ const prefetchData = async () => {
41
+ const fns = [
42
+ ensureReportDataReady,
43
+ fetchReportStats,
44
+ fetchPieChartData,
45
+ fetchEnvironments,
46
+ fetchEnvInfo,
47
+ fetchGlobals,
48
+ fetchQualityGateResults,
49
+ ];
50
+
51
+ if (globalThis) {
52
+ fns.unshift(
53
+ getSection as () => Promise<void>,
54
+ getLocale,
55
+ getLayout as () => Promise<void>,
56
+ getTheme as () => Promise<void>,
57
+ );
58
+ }
10
59
 
11
- const getLocationHashId = () => {
12
- const hash = globalThis.location.hash;
13
- const match = hash.match(/[^#/]+$/);
14
- return match ? match[0] : null;
60
+ await waitForI18next;
61
+ await Promise.all(fns.map((fn) => fn(currentEnvironment.value)));
62
+
63
+ if (currentEnvironment.value) {
64
+ await fetchEnvTreesData([currentEnvironment.value]);
65
+ await fetchEnvStats(environmentsStore.value.data);
66
+ } else {
67
+ await fetchEnvTreesData(environmentsStore.value.data);
68
+ await fetchEnvStats(environmentsStore.value.data);
69
+ }
70
+
71
+ setPrefetched(true);
15
72
  };
16
73
 
17
74
  useEffect(() => {
18
- const handleHashChange = () => {
19
- const id = getLocationHashId();
20
- setTestResultId(id);
21
- };
75
+ prefetchData();
76
+ }, [currentEnvironment.value]);
77
+
78
+ useEffect(() => {
79
+ if (testResultId) {
80
+ fetchTestResult(testResultId);
81
+ fetchTestResultNav(currentEnvironment.value);
82
+ }
83
+ }, [testResultId, currentEnvironment]);
84
+
85
+ useEffect(() => {
86
+ const onHashChange = () => handleHashChange();
22
87
 
23
88
  handleHashChange();
24
- globalThis.addEventListener("hashchange", handleHashChange);
89
+ globalThis.addEventListener("hashchange", onHashChange);
25
90
 
26
91
  return () => {
27
- globalThis.removeEventListener("hashchange", handleHashChange);
92
+ globalThis.removeEventListener("hashchange", onHashChange);
28
93
  };
29
94
  }, []);
30
95
 
31
- return <BaseLayout testResultId={testResultId} />;
32
- };
33
-
34
- export const navigateTo = (path: string) => {
35
- globalThis.location.hash = path;
96
+ return (
97
+ <>
98
+ {!prefetched && <Loader />}
99
+ {prefetched && (
100
+ <div className={styles.main}>
101
+ <Header className={className} />
102
+ <SectionSwitcher />
103
+ <Footer className={className} />
104
+ <ModalComponent />
105
+ </div>
106
+ )}
107
+ </>
108
+ );
36
109
  };
37
110
 
38
111
  export const openInNewTab = (path: string) => {
@@ -47,6 +120,4 @@ document.addEventListener("DOMContentLoaded", () => {
47
120
  }
48
121
  });
49
122
 
50
- (async () => {
51
- render(<App />, rootElement);
52
- })();
123
+ render(<App />, rootElement);
@@ -0,0 +1,376 @@
1
+ {
2
+ "statuses": {
3
+ "passed": "keçdi",
4
+ "failed": "uğursuz",
5
+ "broken": "sınıq",
6
+ "skipped": "keçildi",
7
+ "unknown": "naməlum",
8
+ "total": "cəmi",
9
+ "flakyTests": "etibarsız",
10
+ "newTests": "yeni",
11
+ "retryTests": "təkrar"
12
+ },
13
+ "testSummary": {
14
+ "total": "Cəmi",
15
+ "flaky": "Etibarsız testlər",
16
+ "retries": "Təkrar testlər",
17
+ "new": "Yeni testlər"
18
+ },
19
+ "tabs": {
20
+ "total": "Hamısı",
21
+ "results": "Nəticələr",
22
+ "globalAttachments": "Qlobal Əlavələr",
23
+ "globalErrors": "Qlobal Xətalar",
24
+ "qualityGates": "Keyfiyyət Darvazaları"
25
+ },
26
+ "search": {
27
+ "search": "Axtarış",
28
+ "search-placeholder": "Ad və ya ID"
29
+ },
30
+ "filters": {
31
+ "more-filters": "Daha çox filtr",
32
+ "enable-filter": "\"{{filter}}\" filtrlərini aktiv edin",
33
+ "flaky": "Etibarsız",
34
+ "retry": "Təkrar",
35
+ "new": "Yeni",
36
+ "fixed": "Düzəldilmiş",
37
+ "regressed": "Reqressiya",
38
+ "malfunctioned": "Sınıq"
39
+ },
40
+ "filters.description": {
41
+ "flaky": "Qeyri-sabit testləri göstərir",
42
+ "retry": "Yenidən işə salınan test nəticələrini göstərir",
43
+ "new": "Bu hesabatda ilk dəfə görünən test nəticələrini göstərir",
44
+ "fixed": "İndi uğurlu olan, əvvəl \"uğursuz\" və ya \"sınıq\" olan testləri göstərir",
45
+ "regressed": "Statusu \"uğursuz\" olan, əvvəl \"uğurlu\" və ya \"sınıq\" olan test nəticələrini göstərir",
46
+ "malfunctioned": "Statusu \"sınıq\" olan, əvvəl \"uğurlu\" və ya \"uğursuz\" olan test nəticələrini göstərir"
47
+ },
48
+ "sort-by": {
49
+ "sort-by-text": "Sıralamaq üzrə:",
50
+ "sort-by-category": "Sıralamaq üzrə",
51
+ "direction-category": "İstiqamət"
52
+ },
53
+ "sort-by.values": {
54
+ "order": "Sıra",
55
+ "alphabet": "Əlifba",
56
+ "duration": "Müddət",
57
+ "status": "Status"
58
+ },
59
+ "sort-by.directions": {
60
+ "order-desc": "Sonuncu – Birinci",
61
+ "order-asc": "Birinci – Sonuncu",
62
+ "order-asc-short": "Birinci",
63
+ "order-desc-short": "Sonuncu",
64
+ "alphabet-asc": "A – Z",
65
+ "alphabet-desc": "Z – A",
66
+ "alphabet-asc-short": "A – Z",
67
+ "alphabet-desc-short": "Z – A",
68
+ "duration-asc": "1 – 9",
69
+ "duration-desc": "9 – 1",
70
+ "duration-asc-short": "1 – 9",
71
+ "duration-desc-short": "9 – 1",
72
+ "status-asc": "Filtr siyahısına uyğun",
73
+ "status-desc": "Tərsinə çevrilmiş",
74
+ "status-asc-short": "Adi",
75
+ "status-desc-short": "Tərs"
76
+ },
77
+ "empty": {
78
+ "no-results": "Nəticə tapılmadı",
79
+ "no-tests-found": "Nəticə tapılmadı",
80
+ "no-message-provided": "Mesaj təqdim edilməyib",
81
+ "clear-filters": "Filtrləri təmizlə",
82
+ "no-attachments-results": "Əlavə məlumatı mövcud deyil",
83
+ "no-global-errors-results": "Qlobal səhvlər haqqında məlumat mövcud deyil",
84
+ "no-quality-gate-results": "Keyfiyyət darvazası nəticələri mövcud deyil",
85
+ "no-history-results": "Tarixçə məlumatı mövcud deyil",
86
+ "no-retries-results": "Təkrar məlumatı mövcud deyil",
87
+ "no-test-steps-results": "Test addımları haqqında məlumat mövcud deyil",
88
+ "no-test-case-results": "Test halları haqqında nəticələr yoxdur",
89
+ "no-environments-results": "Mühitlər haqqında məlumat mövcud deyil"
90
+ },
91
+ "severity": {
92
+ "blocker": "bloklayıcı",
93
+ "critical": "kritik",
94
+ "normal": "normal",
95
+ "minor": "kiçik",
96
+ "trivial": "əhəmiyyətsiz"
97
+ },
98
+ "execution": {
99
+ "name": "İcra",
100
+ "body": "Test məzmunu",
101
+ "setup": "Hazırlıq",
102
+ "teardown": "Yekunlaşma"
103
+ },
104
+ "environments": {
105
+ "environment_one": "Mühit",
106
+ "environment_other": "Mühitlər",
107
+ "all": "Hamısı"
108
+ },
109
+ "ui": {
110
+ "labels": "Etiketlər",
111
+ "metadata": "Metaməlumat",
112
+ "parameters": "Parametrlər",
113
+ "description": "Təsvir",
114
+ "links": "Keçidlər",
115
+ "overview": "Ümumi baxış",
116
+ "history": "Tarixçə",
117
+ "attachments": "Əlavələr",
118
+ "retries": "Təkrarlar",
119
+ "environments": "Mühitlər",
120
+ "error": "Səhv",
121
+ "goToStep": "Addıma keç",
122
+ "showLess": "Daha az göstər",
123
+ "showMore": "Daha çox göstər",
124
+ "copy": "Kopyala",
125
+ "attempt": "Cəhd {{attempt}} / {{total}}",
126
+ "at": "üçün",
127
+ "variables": "Dəyişənlər",
128
+ "openPwTrace": "Playwright Trace aç",
129
+ "finishedAtOriginal": "{{formattedCreatedAt}}, çıxış kodu {{original}} ilə",
130
+ "finishedAtBoth": "{{formattedCreatedAt}}, çıxış kodu {{actual}} ilə (əsas {{original}})"
131
+ },
132
+ "controls": {
133
+ "newTabAttachment": "Yeni sekmede aç",
134
+ "nextTR": "Növbəti test nəticəsi",
135
+ "prevTR": "Əvvəlki test nəticəsi",
136
+ "downloadAttachment": "Əlavəni yüklə",
137
+ "backto": "Geri dön",
138
+ "clipboard": "Panoya kopyala",
139
+ "clipboardError": "Səhv. Görünür, bu xüsusiyyət brauzeriniz tərəfindən dəstəklənmir",
140
+ "clipboardSuccess": "Uğurla kopyalandı",
141
+ "collapse": "Daralt",
142
+ "expand": "Genişləndir",
143
+ "fullscreen": "Tam ekran",
144
+ "language": "Dili dəyiş",
145
+ "openInNewTab": "Yeni tabda aç",
146
+ "openPreview": "Önizləməni aç",
147
+ "noSelectedTR": "Seçilmiş Test nəticəsi yoxdur",
148
+ "comparison": "Müqayisə",
149
+ "showDiff": "Fərqi göstər",
150
+ "viewMode": "Baxış rejimi",
151
+ "unified": "Birləşdirilmiş",
152
+ "side-by-side": "Yan-yana",
153
+ "compareBy": "Müqayisə üsulu",
154
+ "chars": "simvollar",
155
+ "words": "sözlər",
156
+ "lines": "sətirlər",
157
+ "actual": "Faktiki",
158
+ "expected": "Gözlənilən"
159
+ },
160
+ "errors": {
161
+ "missedAttachment": "Əlavə tapılmadı"
162
+ },
163
+ "sections": {
164
+ "report": "Report",
165
+ "charts": "Qrafiklər",
166
+ "timeline": "Zaman xətti"
167
+ },
168
+ "timeline": {
169
+ "empty": "Məlumat yoxdur",
170
+ "empty_host": "{{ host }} üçün məlumat yoxdur",
171
+ "selected_one": "{{ count }} test ({{ percentage }}%) {{ minDuration }}-dən çox və {{ maxDuration }}-dən az müddətlə seçildi",
172
+ "selected_other": "{{ count }} test ({{ percentage }}%) {{ minDuration }}-dən çox və {{ maxDuration }}-dən az müddətlə seçildi",
173
+ "host": "Host: {{ host }}"
174
+ },
175
+ "charts": {
176
+ "trend": {
177
+ "title": "Trend qrafiki: {{type}}",
178
+ "type": {
179
+ "status": "Status",
180
+ "severity": "Ciddilik"
181
+ }
182
+ },
183
+ "currentStatus": {
184
+ "title": "Cari Status",
185
+ "status": {
186
+ "passed": "$t(statuses:passed, capitalize)",
187
+ "failed": "$t(statuses:failed, capitalize)",
188
+ "broken": "$t(statuses:broken, capitalize)",
189
+ "skipped": "$t(statuses:skipped, capitalize)",
190
+ "unknown": "$t(statuses:unknown, capitalize)"
191
+ },
192
+ "percentage": "{{percentage}}%",
193
+ "of": "{{total}} dən",
194
+ "total": "cəmi",
195
+ "tests": {
196
+ "new_zero": "Yeni test yoxdur",
197
+ "new_one": "{{count}} yeni test",
198
+ "new_other": "{{count}} yeni test",
199
+ "flaky_zero": "Qeyri-sabit test yoxdur",
200
+ "flaky_one": "{{count}} qeyri-sabit test",
201
+ "flaky_other": "{{count}} qeyri-sabit test",
202
+ "retries_zero": "Yenidən cəhd edilmiş test yoxdur",
203
+ "retries_one": "{{count}} yenidən cəhd edilmiş test",
204
+ "retries_other": "{{count}} yenidən cəhd edilmiş test"
205
+ }
206
+ },
207
+ "statusDynamics": {
208
+ "title": "Status dinamikası",
209
+ "status": {
210
+ "passed": "$t(statuses:passed, capitalize)",
211
+ "failed": "$t(statuses:failed, capitalize)",
212
+ "broken": "$t(statuses:broken, capitalize)",
213
+ "skipped": "$t(statuses:skipped, capitalize)",
214
+ "unknown": "$t(statuses:unknown, capitalize)"
215
+ },
216
+ "no-history": "$t(empty:no-history-results)",
217
+ "no-results": "$t(empty:no-results)",
218
+ "tooltips": {
219
+ "current": "Son hesabat ({{timestamp, timestamp_long_no_seconds}})",
220
+ "history": "{{timestamp, timestamp_long_no_seconds}} hesabatı"
221
+ },
222
+ "ticks": {
223
+ "current": "Sonuncu",
224
+ "history": "{{timestamp, timestamp_date}}"
225
+ }
226
+ },
227
+ "statusTransitions": {
228
+ "title": "Status keçidləri",
229
+ "legend": {
230
+ "trend": "Düzəltmə dərəcəsi"
231
+ },
232
+ "transitions": {
233
+ "new": "$t(transitions:new, capitalize)",
234
+ "fixed": "$t(transitions:fixed, capitalize)",
235
+ "regressed": "$t(transitions:regressed, capitalize)",
236
+ "malfunctioned": "$t(transitions:malfunctioned, capitalize)"
237
+ },
238
+ "no-history": "$t(empty:no-history-results)",
239
+ "no-results": "$t(empty:no-results)",
240
+ "tooltips": {
241
+ "current": "Son hesabat ({{timestamp, timestamp_long_no_seconds}})",
242
+ "history": "{{timestamp, timestamp_long_no_seconds}} hesabatı"
243
+ },
244
+ "ticks": {
245
+ "current": "Sonuncu",
246
+ "history": "{{timestamp, timestamp_date}}"
247
+ }
248
+ },
249
+ "durations": {
250
+ "title": "{{groupBy}} görə müddət histogramı",
251
+ "title_none": "Müddət histogramı",
252
+ "no-results": "$t(empty:no-results)",
253
+ "groupBy": {
254
+ "none": "Yoxdur",
255
+ "layer": "Qat"
256
+ },
257
+ "ticks": {
258
+ "durationRange": "{{from, format_duration}} - {{to, format_duration}}"
259
+ },
260
+ "tooltips": {
261
+ "durationRange": "{{from, format_duration}} - {{to, format_duration}}"
262
+ },
263
+ "legend": {
264
+ "value": "{{value}}",
265
+ "total": "Test sayı"
266
+ }
267
+ },
268
+ "stabilityDistribution": {
269
+ "title": "Sabitlik paylanması",
270
+ "no-results": "$t(empty:no-results)",
271
+ "legend": {
272
+ "stabilityRate": "Sabitlik dərəcəsi"
273
+ }
274
+ },
275
+ "testBaseGrowthDynamics": {
276
+ "title": "Test bazasının artım dinamikası",
277
+ "status": {
278
+ "newpassed": "Yeni $t(statuses:passed)",
279
+ "newfailed": "Yeni $t(statuses:failed)",
280
+ "newbroken": "Yeni $t(statuses:broken)",
281
+ "newskipped": "Yeni $t(statuses:skipped)",
282
+ "newunknown": "Yeni $t(statuses:unknown)",
283
+ "removedpassed": "Silinmiş $t(statuses:passed)",
284
+ "removedfailed": "Silinmiş $t(statuses:failed)",
285
+ "removedbroken": "Silinmiş $t(statuses:broken)",
286
+ "removedskipped": "Silinmiş $t(statuses:skipped)",
287
+ "removedunknown": "Silinmiş $t(statuses:unknown)"
288
+ },
289
+ "legend": {
290
+ "trend": "Artım trendi"
291
+ },
292
+ "no-history": "$t(empty:no-history-results)",
293
+ "no-results": "$t(empty:no-results)",
294
+ "tooltips": {
295
+ "current": "Son hesabat ({{timestamp, timestamp_long_no_seconds}})",
296
+ "history": "{{timestamp, timestamp_long_no_seconds}} tarixli hesabat"
297
+ },
298
+ "ticks": {
299
+ "current": "Son",
300
+ "history": "{{timestamp, timestamp_date}}"
301
+ }
302
+ },
303
+ "fbsuAgePyramid": {
304
+ "title": "FBSU yaş piramidası",
305
+ "status": {
306
+ "passed": "$t(statuses:passed, capitalize)",
307
+ "failed": "$t(statuses:failed, capitalize)",
308
+ "broken": "$t(statuses:broken, capitalize)",
309
+ "skipped": "$t(statuses:skipped, capitalize)",
310
+ "unknown": "$t(statuses:unknown, capitalize)"
311
+ },
312
+ "no-history": "$t(empty:no-history-results)",
313
+ "no-results": "$t(empty:no-results)",
314
+ "tooltips": {
315
+ "current": "Son hesabat ({{timestamp, timestamp_long_no_seconds}})",
316
+ "history": "{{timestamp, timestamp_long_no_seconds}} tarixli hesabat"
317
+ },
318
+ "ticks": {
319
+ "current": "Son",
320
+ "history": "{{timestamp, timestamp_date}}"
321
+ }
322
+ },
323
+ "trSeverities": {
324
+ "title": "Ciddilik dərəcəsinə görə test nəticələri",
325
+ "no-results": "$t(empty:no-results)",
326
+ "status": {
327
+ "passed": "$t(statuses:passed, capitalize)",
328
+ "failed": "$t(statuses:failed, capitalize)",
329
+ "broken": "$t(statuses:broken, capitalize)",
330
+ "skipped": "$t(statuses:skipped, capitalize)",
331
+ "unknown": "$t(statuses:unknown, capitalize)"
332
+ },
333
+ "severity": {
334
+ "blocker": "$t(severity:blocker, capitalize)",
335
+ "critical": "$t(severity:critical, capitalize)",
336
+ "normal": "$t(severity:normal, capitalize)",
337
+ "minor": "$t(severity:minor, capitalize)",
338
+ "trivial": "$t(severity:trivial, capitalize)",
339
+ "unset": "Ciddilik dərəcəsi yoxdur"
340
+ }
341
+ },
342
+ "durationDynamics": {
343
+ "title": "Müddət dinamikası",
344
+ "durations": {
345
+ "sequential": "Ardıcıl müddət",
346
+ "duration": "Test müddəti",
347
+ "speedup": "Sürətləndirmə"
348
+ },
349
+ "no-results": "$t(empty:no-results)",
350
+ "tooltips": {
351
+ "current": "Son hesabat ({{timestamp, timestamp_long_no_seconds}})",
352
+ "history": "{{timestamp, timestamp_long_no_seconds}} hesabatı"
353
+ },
354
+ "ticks": {
355
+ "current": "Son",
356
+ "history": "{{timestamp, timestamp_date}}"
357
+ },
358
+ "legend": {
359
+ "duration": "{{duration, format_duration}}",
360
+ "speedup": "{{speedup}}x"
361
+ }
362
+ }
363
+ },
364
+ "transitions": {
365
+ "description": {
366
+ "new": "Bu test nəticəsinin hesabatda ilk dəfə görünməsi",
367
+ "fixed": "Əvvəl \"uğursuz\" və ya \"sınıq\" olan, indi \"uğurlu\" olan test",
368
+ "regressed": "Əvvəl \"uğurlu\" və ya \"sınıq\" olan, indi \"uğursuz\" olan test",
369
+ "malfunctioned": "Əvvəl \"uğurlu\" və ya \"uğursuz\" olan, indi \"sınıq\" olan test"
370
+ },
371
+ "new": "Yeni",
372
+ "fixed": "Düzəldilmiş",
373
+ "regressed": "Reqressiya",
374
+ "malfunctioned": "Sınıq"
375
+ }
376
+ }