@allurereport/web-awesome 3.2.0 → 3.3.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 (113) hide show
  1. package/dist/multi/173.app-8be6acc0a596a2197dbf.js +1 -0
  2. package/dist/multi/174.app-8be6acc0a596a2197dbf.js +1 -0
  3. package/dist/multi/252.app-8be6acc0a596a2197dbf.js +1 -0
  4. package/dist/multi/282.app-8be6acc0a596a2197dbf.js +1 -0
  5. package/dist/multi/29.app-8be6acc0a596a2197dbf.js +1 -0
  6. package/dist/multi/416.app-8be6acc0a596a2197dbf.js +1 -0
  7. package/dist/multi/527.app-8be6acc0a596a2197dbf.js +1 -0
  8. package/dist/multi/600.app-8be6acc0a596a2197dbf.js +1 -0
  9. package/dist/multi/605.app-8be6acc0a596a2197dbf.js +1 -0
  10. package/dist/multi/638.app-8be6acc0a596a2197dbf.js +1 -0
  11. package/dist/multi/672.app-8be6acc0a596a2197dbf.js +1 -0
  12. package/dist/multi/686.app-8be6acc0a596a2197dbf.js +1 -0
  13. package/dist/multi/725.app-8be6acc0a596a2197dbf.js +1 -0
  14. package/dist/multi/741.app-8be6acc0a596a2197dbf.js +1 -0
  15. package/dist/multi/749.app-8be6acc0a596a2197dbf.js +1 -0
  16. package/dist/multi/755.app-8be6acc0a596a2197dbf.js +1 -0
  17. package/dist/multi/894.app-8be6acc0a596a2197dbf.js +1 -0
  18. package/dist/multi/943.app-8be6acc0a596a2197dbf.js +1 -0
  19. package/dist/multi/980.app-8be6acc0a596a2197dbf.js +1 -0
  20. package/dist/multi/app-8be6acc0a596a2197dbf.js +2 -0
  21. package/dist/multi/manifest.json +21 -21
  22. package/dist/multi/{styles-13107bbe6906beabc50f.css → styles-0b84e1ef76554ad2db9a.css} +15 -6
  23. package/dist/single/app-8221eb856e47b4ef50d6.js +2 -0
  24. package/dist/single/manifest.json +1 -1
  25. package/package.json +6 -6
  26. package/src/components/BaseLayout/index.tsx +5 -4
  27. package/src/components/Categories/CategoriesTree/index.tsx +14 -0
  28. package/src/components/Categories/CategoriesTree/styles.scss +14 -0
  29. package/src/components/Categories/CategoryHeaderItem/index.tsx +50 -0
  30. package/src/components/Categories/CategoryHeaderItem/styles.scss +32 -0
  31. package/src/components/Categories/CategoryTreeItem/index.tsx +309 -0
  32. package/src/components/Categories/CategoryTreeItem/styles.scss +47 -0
  33. package/src/components/Categories/GroupTreeItem/index.tsx +76 -0
  34. package/src/components/Categories/GroupTreeItem/styles.scss +47 -0
  35. package/src/components/Categories/HistoryTreeItem/index.tsx +71 -0
  36. package/src/components/Categories/HistoryTreeItem/styles.scss +53 -0
  37. package/src/components/Categories/LabelTreeItem/index.tsx +150 -0
  38. package/src/components/Categories/LabelTreeItem/styles.scss +102 -0
  39. package/src/components/Categories/MessageTreeItem/index.tsx +107 -0
  40. package/src/components/Categories/MessageTreeItem/styles.scss +178 -0
  41. package/src/components/Categories/SeverityTreeItem/index.tsx +50 -0
  42. package/src/components/Categories/SeverityTreeItem/styles.scss +12 -0
  43. package/src/components/Categories/sticky.ts +12 -0
  44. package/src/components/Header/index.tsx +4 -2
  45. package/src/components/MainReport/index.tsx +106 -10
  46. package/src/components/ReportBody/styles.scss +1 -1
  47. package/src/components/ReportCategories/index.tsx +26 -0
  48. package/src/components/ReportCategories/styles.scss +55 -0
  49. package/src/components/ReportFilters/CategoriesFilter.tsx +41 -0
  50. package/src/components/ReportFilters/index.tsx +12 -1
  51. package/src/components/SplitLayout/index.tsx +4 -2
  52. package/src/components/SplitLayout/styles.scss +1 -0
  53. package/src/components/TestResult/TrInfo/index.tsx +8 -1
  54. package/src/components/TestResult/TrInfo/styles.scss +4 -0
  55. package/src/components/TestResult/TrSeverity/index.tsx +13 -4
  56. package/src/components/TestResult/TrSeverity/styles.scss +1 -0
  57. package/src/components/TestResult/TrTabs/index.tsx +5 -0
  58. package/src/index.tsx +6 -2
  59. package/src/locales/az.json +106 -78
  60. package/src/locales/de.json +23 -3
  61. package/src/locales/en.json +23 -3
  62. package/src/locales/es.json +23 -3
  63. package/src/locales/fr.json +23 -3
  64. package/src/locales/he.json +23 -3
  65. package/src/locales/hy.json +23 -3
  66. package/src/locales/it.json +23 -3
  67. package/src/locales/ja.json +23 -3
  68. package/src/locales/ka.json +23 -3
  69. package/src/locales/kr.json +23 -3
  70. package/src/locales/nl.json +23 -3
  71. package/src/locales/pl.json +23 -3
  72. package/src/locales/pt.json +23 -3
  73. package/src/locales/ru.json +23 -3
  74. package/src/locales/sv.json +23 -3
  75. package/src/locales/tr.json +23 -3
  76. package/src/locales/uk.json +23 -3
  77. package/src/locales/zh.json +23 -3
  78. package/src/stores/categories.ts +44 -0
  79. package/src/stores/router.ts +55 -3
  80. package/src/stores/testResult.ts +14 -3
  81. package/src/stores/treeFilters/actions.ts +10 -1
  82. package/src/stores/treeFilters/constants.ts +1 -0
  83. package/src/stores/treeFilters/model.ts +2 -0
  84. package/src/stores/treeFilters/store.ts +45 -0
  85. package/src/stores/treeFilters/utils.ts +10 -0
  86. package/src/stores/treeSwitcher.ts +9 -0
  87. package/src/utils/treeFilters.ts +16 -9
  88. package/test/utils/treeFilters.test.ts +39 -0
  89. package/types.d.ts +1 -0
  90. package/dist/multi/173.app-d0210ed2e64d38a2ee8e.js +0 -1
  91. package/dist/multi/174.app-d0210ed2e64d38a2ee8e.js +0 -1
  92. package/dist/multi/252.app-d0210ed2e64d38a2ee8e.js +0 -1
  93. package/dist/multi/282.app-d0210ed2e64d38a2ee8e.js +0 -1
  94. package/dist/multi/29.app-d0210ed2e64d38a2ee8e.js +0 -1
  95. package/dist/multi/416.app-d0210ed2e64d38a2ee8e.js +0 -1
  96. package/dist/multi/527.app-d0210ed2e64d38a2ee8e.js +0 -1
  97. package/dist/multi/600.app-d0210ed2e64d38a2ee8e.js +0 -1
  98. package/dist/multi/605.app-d0210ed2e64d38a2ee8e.js +0 -1
  99. package/dist/multi/638.app-d0210ed2e64d38a2ee8e.js +0 -1
  100. package/dist/multi/672.app-d0210ed2e64d38a2ee8e.js +0 -1
  101. package/dist/multi/686.app-d0210ed2e64d38a2ee8e.js +0 -1
  102. package/dist/multi/725.app-d0210ed2e64d38a2ee8e.js +0 -1
  103. package/dist/multi/741.app-d0210ed2e64d38a2ee8e.js +0 -1
  104. package/dist/multi/749.app-d0210ed2e64d38a2ee8e.js +0 -1
  105. package/dist/multi/755.app-d0210ed2e64d38a2ee8e.js +0 -1
  106. package/dist/multi/894.app-d0210ed2e64d38a2ee8e.js +0 -1
  107. package/dist/multi/943.app-d0210ed2e64d38a2ee8e.js +0 -1
  108. package/dist/multi/980.app-d0210ed2e64d38a2ee8e.js +0 -1
  109. package/dist/multi/app-d0210ed2e64d38a2ee8e.js +0 -2
  110. package/dist/single/app-01fed10ad5f9083fd39c.js +0 -2
  111. package/src/components/SectionTabs/index.tsx +0 -0
  112. /package/dist/multi/{app-d0210ed2e64d38a2ee8e.js.LICENSE.txt → app-8be6acc0a596a2197dbf.js.LICENSE.txt} +0 -0
  113. /package/dist/single/{app-01fed10ad5f9083fd39c.js.LICENSE.txt → app-8221eb856e47b4ef50d6.js.LICENSE.txt} +0 -0
@@ -21,7 +21,8 @@
21
21
  "results": "Wyniki",
22
22
  "globalAttachments": "Globalne Załączniki",
23
23
  "globalErrors": "Globalne Błędy",
24
- "qualityGates": "Bramy Jakości"
24
+ "qualityGates": "Bramy Jakości",
25
+ "categories": "Kategorie"
25
26
  },
26
27
  "search": {
27
28
  "search": "Poszukiwanie",
@@ -29,13 +30,19 @@
29
30
  },
30
31
  "filters": {
31
32
  "flaky": "Niestabilne",
33
+ "nonFlaky": "Stabilne",
32
34
  "retry": "Powtórne",
33
35
  "new": "Nowe",
34
36
  "fixed": "Naprawione",
35
37
  "regressed": "Zaregresowane",
36
38
  "malfunctioned": "Uszkodzone",
37
39
  "transition": "Przejście",
40
+ "status": "Status",
41
+ "severity": "Ważność",
42
+ "owner": "Właściciel",
43
+ "layer": "Warstwa",
38
44
  "tags": "Tagi",
45
+ "categories": "Kategorie",
39
46
  "goto_filter": "Przejdź do filtra",
40
47
  "errors": {
41
48
  "max_values_one": "Tylko pierwsza {{count}} wartość jest używana do filtrowania.\nDodatkowe wartości są ignorowane",
@@ -48,7 +55,8 @@
48
55
  "fixed": "Pokaż testy, które teraz są udane, ale wcześniej były \"nieudane\" lub \"uszkodzone\"",
49
56
  "regressed": "Pokaż wyniki testów, które zmieniły status z \"udany\" lub \"uszkodzony\" na \"nieudany\"",
50
57
  "malfunctioned": "Pokaż wyniki testów, które zmieniły status z \"udany\" lub \"nieudany\" na \"uszkodzony\"",
51
- "tags": "Pokaż wyniki testów, które mają określone tagi"
58
+ "tags": "Pokaż wyniki testów, które mają określone tagi",
59
+ "categories": "Pokaż wyniki testów, które mają określone kategorie"
52
60
  }
53
61
  },
54
62
  "sort-by": {
@@ -82,6 +90,16 @@
82
90
  },
83
91
  "empty": {
84
92
  "no-results": "Brak wyników",
93
+ "no-value": "Brak wartości",
94
+ "no-value-for": "Brak wartości: {{entity}}",
95
+ "no-transition": "Brak przejścia",
96
+ "no-layer": "Brak warstwy",
97
+ "no-owner": "Brak właściciela",
98
+ "no-severity": "Brak ważności",
99
+ "no-status": "Brak statusu",
100
+ "no-environment": "Brak środowiska",
101
+ "no-flaky": "Brak niestabilności",
102
+ "empty-value": "Puste",
85
103
  "no-tests-found": "Nie znaleziono wyników",
86
104
  "no-message-provided": "Nie podano komunikatu",
87
105
  "clear-filters": "Wyczyść filtry",
@@ -92,7 +110,8 @@
92
110
  "no-retries-results": "Brak dostępnych informacji o ponownych próbach",
93
111
  "no-test-steps-results": "Brak dostępnych informacji o krokach testowych",
94
112
  "no-test-case-results": "Brak wyników przypadków testowych",
95
- "no-environments-results": "Brak dostępnych informacji o środowiskach"
113
+ "no-environments-results": "Brak dostępnych informacji o środowiskach",
114
+ "no-categories-results": "Brak dostępnych wyników kategorii"
96
115
  },
97
116
  "severity": {
98
117
  "blocker": "bloker",
@@ -116,6 +135,7 @@
116
135
  "labels": "Labelki",
117
136
  "metadata": "Metadane",
118
137
  "parameters": "Parametry",
138
+ "category": "Kategoria",
119
139
  "description": "Opis",
120
140
  "links": "Linki",
121
141
  "overview": "Przegląd",
@@ -21,7 +21,8 @@
21
21
  "results": "Resultados",
22
22
  "globalAttachments": "Anexos Globais",
23
23
  "globalErrors": "Erros Globais",
24
- "qualityGates": "Portões de Qualidade"
24
+ "qualityGates": "Portões de Qualidade",
25
+ "categories": "Categorias"
25
26
  },
26
27
  "search": {
27
28
  "search": "Pesquisar",
@@ -29,13 +30,19 @@
29
30
  },
30
31
  "filters": {
31
32
  "flaky": "Instável",
33
+ "nonFlaky": "Estável",
32
34
  "retry": "Repetir",
33
35
  "new": "Novo",
34
36
  "fixed": "Corrigido",
35
37
  "regressed": "Regredido",
36
38
  "malfunctioned": "Defeituoso",
37
39
  "transition": "Transição",
40
+ "status": "Estado",
41
+ "severity": "Severidade",
42
+ "owner": "Proprietário",
43
+ "layer": "Camada",
38
44
  "tags": "Tags",
45
+ "categories": "Categorias",
39
46
  "goto_filter": "Ir para o filtro",
40
47
  "errors": {
41
48
  "max_values_one": "Apenas o primeiro {{count}} valor é usado para filtragem.\nValores adicionais são ignorados",
@@ -48,7 +55,8 @@
48
55
  "fixed": "Mostra testes que agora estão aprovados mas que anteriormente \"falharam\" ou \"quebraram\"",
49
56
  "regressed": "Mostra resultados de testes que mudaram de status \"aprovado\" ou \"quebrado\" para \"falhou\"",
50
57
  "malfunctioned": "Mostra resultados de testes que mudaram de status \"aprovado\" ou \"falhou\" para \"quebrado\"",
51
- "tags": "Mostra resultados de testes que têm as tags especificadas"
58
+ "tags": "Mostra resultados de testes que têm as tags especificadas",
59
+ "categories": "Mostra resultados de testes que têm as categorias especificadas"
52
60
  }
53
61
  },
54
62
  "sort-by": {
@@ -82,6 +90,16 @@
82
90
  },
83
91
  "empty": {
84
92
  "no-results": "Sem resultados",
93
+ "no-value": "Sem valor",
94
+ "no-value-for": "Sem valor: {{entity}}",
95
+ "no-transition": "Sem transição",
96
+ "no-layer": "Sem camada",
97
+ "no-owner": "Sem proprietário",
98
+ "no-severity": "Sem severidade",
99
+ "no-status": "Sem estado",
100
+ "no-environment": "Sem ambiente",
101
+ "no-flaky": "Sem instabilidade",
102
+ "empty-value": "Vazio",
85
103
  "no-tests-found": "Nenhum resultado encontrado",
86
104
  "no-message-provided": "Nenhuma mensagem fornecida",
87
105
  "clear-filters": "Limpar filtros",
@@ -92,7 +110,8 @@
92
110
  "no-retries-results": "Nenhuma informação de repetições disponível",
93
111
  "no-test-steps-results": "Nenhuma informação disponível sobre as etapas do teste",
94
112
  "no-test-case-results": "Nenhum resultado de caso de teste",
95
- "no-environments-results": "Nenhuma informação de ambiente disponível"
113
+ "no-environments-results": "Nenhuma informação de ambiente disponível",
114
+ "no-categories-results": "Nenhum resultado de categorias disponível"
96
115
  },
97
116
  "severity": {
98
117
  "blocker": "bloqueador",
@@ -116,6 +135,7 @@
116
135
  "labels": "Etiquetas",
117
136
  "metadata": "Metadados",
118
137
  "parameters": "Parâmetros",
138
+ "category": "Categoria",
119
139
  "description": "Descrição",
120
140
  "links": "Links",
121
141
  "overview": "Visão geral",
@@ -21,7 +21,8 @@
21
21
  "results": "Результаты",
22
22
  "globalAttachments": "Глобальные Вложения",
23
23
  "globalErrors": "Глобальные Ошибки",
24
- "qualityGates": "Ворота Качества"
24
+ "qualityGates": "Ворота Качества",
25
+ "categories": "Категории"
25
26
  },
26
27
  "search": {
27
28
  "search": "Поиск",
@@ -29,13 +30,19 @@
29
30
  },
30
31
  "filters": {
31
32
  "flaky": "Нестабильные",
33
+ "nonFlaky": "Стабильные",
32
34
  "retry": "Повторенные",
33
35
  "new": "Новые",
34
36
  "fixed": "Исправленные",
35
37
  "regressed": "Регрессированные",
36
38
  "malfunctioned": "Сломанные",
37
39
  "transition": "Переход",
40
+ "status": "Статус",
41
+ "severity": "Важность",
42
+ "owner": "Владелец",
43
+ "layer": "Слой",
38
44
  "tags": "Теги",
45
+ "categories": "Категории",
39
46
  "goto_filter": "Перейти к фильтру",
40
47
  "errors": {
41
48
  "max_values_one": "Только первое {{count}} значение используется для фильтрации.\nДополнительные значения игнорируются",
@@ -48,7 +55,8 @@
48
55
  "fixed": "Показать тесты, которые теперь успешны, но ранее были \"неуспешными\" или \"сломанными\" в предыдущем отчёте",
49
56
  "regressed": "Показать результаты тестов, которые изменили статус на \"неуспешный\" с \"успешный\" или \"сломанный\"",
50
57
  "malfunctioned": "Показать результаты тестов, которые изменили статус на \"сломанный\" с \"успешный\" или \"неуспешный\"",
51
- "tags": "Показать результаты тестов, которые имеют указанные теги"
58
+ "tags": "Показать результаты тестов, которые имеют указанные теги",
59
+ "categories": "Показать результаты тестов, которые имеют указанные категории"
52
60
  }
53
61
  },
54
62
  "sort-by": {
@@ -82,6 +90,16 @@
82
90
  },
83
91
  "empty": {
84
92
  "no-results": "Нет результатов",
93
+ "no-value": "Нет значения",
94
+ "no-value-for": "Нет значения: {{entity}}",
95
+ "no-transition": "Нет перехода",
96
+ "no-layer": "Нет слоя",
97
+ "no-owner": "Нет владельца",
98
+ "no-severity": "Нет важности",
99
+ "no-status": "Нет статуса",
100
+ "no-environment": "Нет окружения",
101
+ "no-flaky": "Нет нестабильности",
102
+ "empty-value": "Пусто",
85
103
  "no-tests-found": "Результаты не найдены",
86
104
  "no-message-provided": "Сообщение не предоставлено",
87
105
  "clear-filters": "Очистить фильтры",
@@ -92,7 +110,8 @@
92
110
  "no-retries-results": "Информация о перезапусках отсутствует",
93
111
  "no-test-steps-results": "Нет информации о шагах тестирования",
94
112
  "no-test-case-results": "Нет результатов тест-кейсов",
95
- "no-environments-results": "Информация об окружениях отсутствует"
113
+ "no-environments-results": "Информация об окружениях отсутствует",
114
+ "no-categories-results": "Нет доступных результатов по категориям"
96
115
  },
97
116
  "severity": {
98
117
  "blocker": "блокер",
@@ -116,6 +135,7 @@
116
135
  "labels": "Лейблы",
117
136
  "metadata": "Метаданные",
118
137
  "parameters": "Параметры",
138
+ "category": "Категория",
119
139
  "description": "Описание",
120
140
  "links": "Ссылки",
121
141
  "overview": "Обзор",
@@ -21,7 +21,8 @@
21
21
  "results": "Resultat",
22
22
  "globalAttachments": "Globala Bilagor",
23
23
  "globalErrors": "Globala Fel",
24
- "qualityGates": "Kvalitetsportar"
24
+ "qualityGates": "Kvalitetsportar",
25
+ "categories": "Kategorier"
25
26
  },
26
27
  "search": {
27
28
  "search": "Sök",
@@ -29,13 +30,19 @@
29
30
  },
30
31
  "filters": {
31
32
  "flaky": "Ostadig",
33
+ "nonFlaky": "Stabil",
32
34
  "retry": "Försök igen",
33
35
  "new": "Ny",
34
36
  "fixed": "Åtgärdad",
35
37
  "regressed": "Regresserad",
36
38
  "malfunctioned": "Felaktig",
37
39
  "transition": "Övergång",
40
+ "status": "Status",
41
+ "severity": "Allvarlighetsgrad",
42
+ "owner": "Ägare",
43
+ "layer": "Lager",
38
44
  "tags": "Taggar",
45
+ "categories": "Kategorier",
39
46
  "goto_filter": "Gå till filter",
40
47
  "errors": {
41
48
  "max_values_one": "Endast det första {{count}} värdet används för filtrering.\nYtterligare värden ignoreras",
@@ -48,7 +55,8 @@
48
55
  "fixed": "Visa tester som nu är godkända men som tidigare var \"misslyckade\" eller \"trasiga\"",
49
56
  "regressed": "Visa testresultat som ändrades från \"godkänd\" eller \"trasig\" till \"misslyckad\" status",
50
57
  "malfunctioned": "Visa testresultat som ändrades från \"godkänd\" eller \"misslyckad\" till \"trasig\" status",
51
- "tags": "Visa testresultat som har de angivna taggarna"
58
+ "tags": "Visa testresultat som har de angivna taggarna",
59
+ "categories": "Visa testresultat som har de angivna kategorierna"
52
60
  }
53
61
  },
54
62
  "sort-by": {
@@ -82,6 +90,16 @@
82
90
  },
83
91
  "empty": {
84
92
  "no-results": "Inga resultat",
93
+ "no-value": "Inget värde",
94
+ "no-value-for": "Inget värde: {{entity}}",
95
+ "no-transition": "Ingen övergång",
96
+ "no-layer": "Inget lager",
97
+ "no-owner": "Ingen ägare",
98
+ "no-severity": "Ingen allvarlighetsgrad",
99
+ "no-status": "Ingen status",
100
+ "no-environment": "Ingen miljö",
101
+ "no-flaky": "Ingen instabilitet",
102
+ "empty-value": "Tomt",
85
103
  "no-tests-found": "Inga resultat hittades",
86
104
  "no-message-provided": "Inget meddelande angavs",
87
105
  "clear-filters": "Rensa filter",
@@ -92,7 +110,8 @@
92
110
  "no-retries-results": "Ingen omtagningar information tillgänglig",
93
111
  "no-test-steps-results": "Ingen information om teststeg tillgänglig",
94
112
  "no-test-case-results": "Inga testfallresultat",
95
- "no-environments-results": "Ingen miljöinformation tillgänglig"
113
+ "no-environments-results": "Ingen miljöinformation tillgänglig",
114
+ "no-categories-results": "Inga kategoriresultat tillgängliga"
96
115
  },
97
116
  "severity": {
98
117
  "blocker": "blockerare",
@@ -116,6 +135,7 @@
116
135
  "labels": "Etiketter",
117
136
  "metadata": "Metadata",
118
137
  "parameters": "Parametrar",
138
+ "category": "Kategori",
119
139
  "description": "Beskrivning",
120
140
  "links": "Länkar",
121
141
  "overview": "Översikt",
@@ -21,7 +21,8 @@
21
21
  "results": "Sonuçlar",
22
22
  "globalAttachments": "Küresel Ekler",
23
23
  "globalErrors": "Küresel Hatalar",
24
- "qualityGates": "Kalite Kapıları"
24
+ "qualityGates": "Kalite Kapıları",
25
+ "categories": "Kategoriler"
25
26
  },
26
27
  "search": {
27
28
  "search": "Ara",
@@ -29,13 +30,19 @@
29
30
  },
30
31
  "filters": {
31
32
  "flaky": "İstikrarsız",
33
+ "nonFlaky": "Kararlı",
32
34
  "retry": "Tekrar",
33
35
  "new": "Yeni",
34
36
  "fixed": "Düzeltildi",
35
37
  "regressed": "Geri Döndü",
36
38
  "malfunctioned": "Bozuk",
37
39
  "transition": "Geçiş",
40
+ "status": "Durum",
41
+ "severity": "Önem Derecesi",
42
+ "owner": "Sahip",
43
+ "layer": "Katman",
38
44
  "tags": "Etiketler",
45
+ "categories": "Kategoriler",
39
46
  "goto_filter": "Filtreye git",
40
47
  "errors": {
41
48
  "max_values_one": "Filtreleme için yalnızca ilk {{count}} değer kullanılır.\nEk değerler yok sayılır",
@@ -48,7 +55,8 @@
48
55
  "fixed": "Şimdi başarılı olan ancak daha önce \"başarısız\" veya \"bozuk\" olan testleri göster",
49
56
  "regressed": "\"başarılı\" veya \"bozuk\" durumundan \"başarısız\" durumuna değişen test sonuçlarını göster",
50
57
  "malfunctioned": "\"başarılı\" veya \"başarısız\" durumundan \"bozuk\" durumuna değişen test sonuçlarını göster",
51
- "tags": "Belirtilen etiketlere sahip test sonuçlarını göster"
58
+ "tags": "Belirtilen etiketlere sahip test sonuçlarını göster",
59
+ "categories": "Belirtilen kategorilere sahip test sonuçlarını göster"
52
60
  }
53
61
  },
54
62
  "sort-by": {
@@ -82,6 +90,16 @@
82
90
  },
83
91
  "empty": {
84
92
  "no-results": "Sonuç yok",
93
+ "no-value": "Değer yok",
94
+ "no-value-for": "Değer yok: {{entity}}",
95
+ "no-transition": "Geçiş yok",
96
+ "no-layer": "Katman yok",
97
+ "no-owner": "Sahip yok",
98
+ "no-severity": "Önem derecesi yok",
99
+ "no-status": "Durum yok",
100
+ "no-environment": "Ortam yok",
101
+ "no-flaky": "İstikrarsızlık yok",
102
+ "empty-value": "Boş",
85
103
  "no-tests-found": "Sonuç bulunamadı",
86
104
  "no-message-provided": "Mesaj belirtilmedi",
87
105
  "clear-filters": "Filtreleri temizle",
@@ -92,7 +110,8 @@
92
110
  "no-retries-results": "Tekrar deneme bilgisi mevcut değil",
93
111
  "no-test-steps-results": "Test adımları hakkında bilgi mevcut değil",
94
112
  "no-test-case-results": "Test vakası sonuçları yok",
95
- "no-environments-results": "Ortam bilgisi mevcut değil"
113
+ "no-environments-results": "Ortam bilgisi mevcut değil",
114
+ "no-categories-results": "Kategoriler için sonuç bulunamadı"
96
115
  },
97
116
  "severity": {
98
117
  "blocker": "engelleyici",
@@ -116,6 +135,7 @@
116
135
  "labels": "Etiketler",
117
136
  "metadata": "Meta Veriler",
118
137
  "parameters": "Parametreler",
138
+ "category": "Kategori",
119
139
  "description": "Açıklama",
120
140
  "links": "Bağlantılar",
121
141
  "overview": "Genel Bakış",
@@ -21,7 +21,8 @@
21
21
  "results": "Результати",
22
22
  "globalAttachments": "Глобальні Вкладення",
23
23
  "globalErrors": "Глобальні Помилки",
24
- "qualityGates": "Ворота Якості"
24
+ "qualityGates": "Ворота Якості",
25
+ "categories": "Категорії"
25
26
  },
26
27
  "search": {
27
28
  "search": "Пошук",
@@ -29,13 +30,19 @@
29
30
  },
30
31
  "filters": {
31
32
  "flaky": "Нестабільні",
33
+ "nonFlaky": "Стабільні",
32
34
  "retry": "Повторені",
33
35
  "new": "Нові",
34
36
  "fixed": "Виправлені",
35
37
  "regressed": "Регресовані",
36
38
  "malfunctioned": "Зламані",
37
39
  "transition": "Перехід",
40
+ "status": "Статус",
41
+ "severity": "Важливість",
42
+ "owner": "Власник",
43
+ "layer": "Шар",
38
44
  "tags": "Теги",
45
+ "categories": "Категорії",
39
46
  "goto_filter": "Перейти до фільтру",
40
47
  "errors": {
41
48
  "max_values_one": "Тільки перше {{count}} значення використовується для фільтрації.\nДодаткові значення ігноруються",
@@ -48,7 +55,8 @@
48
55
  "fixed": "Показати тести, які тепер успішні, але раніше були \"неуспішними\" або \"зламаними\" в попередньому звіті",
49
56
  "regressed": "Показати результати тестів, які змінили статус на \"неуспішний\" з \"успішний\" або \"зламаний\"",
50
57
  "malfunctioned": "Показати результати тестів, які змінили статус на \"зламаний\" з \"успішний\" або \"неуспішний\"",
51
- "tags": "Показати результати тестів, які мають вказані теги"
58
+ "tags": "Показати результати тестів, які мають вказані теги",
59
+ "categories": "Показати результати тестів, які мають зазначені категорії"
52
60
  }
53
61
  },
54
62
  "sort-by": {
@@ -82,6 +90,16 @@
82
90
  },
83
91
  "empty": {
84
92
  "no-results": "Немає результатів",
93
+ "no-value": "Немає значення",
94
+ "no-value-for": "Немає значення: {{entity}}",
95
+ "no-transition": "Немає переходу",
96
+ "no-layer": "Немає шару",
97
+ "no-owner": "Немає власника",
98
+ "no-severity": "Немає важливості",
99
+ "no-status": "Немає статусу",
100
+ "no-environment": "Немає середовища",
101
+ "no-flaky": "Немає нестабільності",
102
+ "empty-value": "Порожньо",
85
103
  "no-tests-found": "Результати не знайдено",
86
104
  "no-message-provided": "Повідомлення не надано",
87
105
  "clear-filters": "Очистити фільтри",
@@ -92,7 +110,8 @@
92
110
  "no-retries-results": "Інформація про перезапуски відсутня",
93
111
  "no-test-steps-results": "Немає інформації про кроки тестування",
94
112
  "no-test-case-results": "Немає результатів тест-кейсів",
95
- "no-environments-results": "Інформація про оточення відсутня"
113
+ "no-environments-results": "Інформація про оточення відсутня",
114
+ "no-categories-results": "Немає доступних результатів за категоріями"
96
115
  },
97
116
  "severity": {
98
117
  "blocker": "блокер",
@@ -116,6 +135,7 @@
116
135
  "labels": "Мітки",
117
136
  "metadata": "Метадані",
118
137
  "parameters": "Параметри",
138
+ "category": "Категорія",
119
139
  "description": "Опис",
120
140
  "links": "Посилання",
121
141
  "overview": "Огляд",
@@ -21,7 +21,8 @@
21
21
  "results": "结果",
22
22
  "globalAttachments": "全局附件",
23
23
  "globalErrors": "全局错误",
24
- "qualityGates": "质量门"
24
+ "qualityGates": "质量门",
25
+ "categories": "分类"
25
26
  },
26
27
  "search": {
27
28
  "search": "搜索",
@@ -29,13 +30,19 @@
29
30
  },
30
31
  "filters": {
31
32
  "flaky": "不稳定",
33
+ "nonFlaky": "稳定",
32
34
  "retry": "重试",
33
35
  "new": "新的",
34
36
  "fixed": "已修复",
35
37
  "regressed": "已回归",
36
38
  "malfunctioned": "已损坏",
37
39
  "transition": "过渡",
40
+ "status": "状态",
41
+ "severity": "严重程度",
42
+ "owner": "负责人",
43
+ "layer": "层",
38
44
  "tags": "标签",
45
+ "categories": "分类",
39
46
  "goto_filter": "转到过滤器",
40
47
  "errors": {
41
48
  "max_values_one": "仅使用第一个 {{count}} 值进行过滤。\n忽略其他值",
@@ -48,7 +55,8 @@
48
55
  "fixed": "显示现在通过但之前\"失败\"或\"损坏\"的测试",
49
56
  "regressed": "显示从\"通过\"或\"损坏\"状态变为\"失败\"状态的测试结果",
50
57
  "malfunctioned": "显示从\"通过\"或\"失败\"状态变为\"损坏\"状态的测试结果",
51
- "tags": "显示具有指定标签的测试结果"
58
+ "tags": "显示具有指定标签的测试结果",
59
+ "categories": "显示具有指定分类的测试结果"
52
60
  }
53
61
  },
54
62
  "sort-by": {
@@ -82,6 +90,16 @@
82
90
  },
83
91
  "empty": {
84
92
  "no-results": "没有结果",
93
+ "no-value": "无值",
94
+ "no-value-for": "无值:{{entity}}",
95
+ "no-transition": "无过渡",
96
+ "no-layer": "无层",
97
+ "no-owner": "无负责人",
98
+ "no-severity": "无严重程度",
99
+ "no-status": "无状态",
100
+ "no-environment": "无环境",
101
+ "no-flaky": "无不稳定",
102
+ "empty-value": "空",
85
103
  "no-tests-found": "未找到结果",
86
104
  "no-message-provided": "未提供消息",
87
105
  "clear-filters": "清除过滤器",
@@ -92,7 +110,8 @@
92
110
  "no-retries-results": "没有重试信息",
93
111
  "no-test-steps-results": "没有可用的测试步骤信息",
94
112
  "no-test-case-results": "没有测试用例结果",
95
- "no-environments-results": "没有环境信息"
113
+ "no-environments-results": "没有环境信息",
114
+ "no-categories-results": "暂无可用的分类结果"
96
115
  },
97
116
  "severity": {
98
117
  "blocker": "阻断",
@@ -116,6 +135,7 @@
116
135
  "labels": "标签",
117
136
  "metadata": "元数据",
118
137
  "parameters": "参数",
138
+ "category": "分类",
119
139
  "description": "描述",
120
140
  "links": "链接",
121
141
  "overview": "概览",
@@ -0,0 +1,44 @@
1
+ import type { TestCategories } from "@allurereport/core-api";
2
+ import { fetchReportJsonData } from "@allurereport/web-commons";
3
+ import { computed, signal } from "@preact/signals";
4
+ import type { StoreSignalState } from "@/stores/types";
5
+
6
+ export const categoriesStore = signal<StoreSignalState<TestCategories>>({
7
+ loading: true,
8
+ error: undefined,
9
+ data: undefined,
10
+ });
11
+
12
+ export const noCategories = computed(() => categoriesStore?.value?.data.roots.length);
13
+
14
+ let lastCategoriesEnv: string | undefined;
15
+
16
+ const resolveCategoriesPath = (env?: string) => (env ? `widgets/${env}/categories.json` : "widgets/categories.json");
17
+
18
+ export const fetchCategoriesData = async (env?: string) => {
19
+ if (lastCategoriesEnv === env && categoriesStore.peek().data) {
20
+ return;
21
+ }
22
+ lastCategoriesEnv = env;
23
+ categoriesStore.value = {
24
+ ...categoriesStore.value,
25
+ loading: true,
26
+ error: undefined,
27
+ };
28
+
29
+ try {
30
+ const res = await fetchReportJsonData<TestCategories>(resolveCategoriesPath(env));
31
+
32
+ categoriesStore.value = {
33
+ data: res,
34
+ error: undefined,
35
+ loading: false,
36
+ };
37
+ } catch (e) {
38
+ categoriesStore.value = {
39
+ ...categoriesStore.value,
40
+ error: undefined,
41
+ loading: false,
42
+ };
43
+ }
44
+ };
@@ -1,27 +1,79 @@
1
1
  import { createRoute, navigateTo as routerNavigateTo } from "@allurereport/web-commons";
2
2
  import { computed } from "@preact/signals";
3
3
 
4
+ const normalizeTab = (tab?: string) => (tab && tab !== "overview" ? tab : undefined);
5
+
4
6
  export const navigateToTestResult = (params: { testResultId: string; tab?: string }) => {
5
- routerNavigateTo({ path: "/:testResultId/:tab?", params, keepSearchParams: true });
7
+ const normalized = { ...params, tab: normalizeTab(params.tab) };
8
+ const path = rootTabRoute.value.matches ? "/:rootTab/:testResultId/:tab?" : "/:testResultId/:tab?";
9
+ const routeParams = rootTabRoute.value.matches
10
+ ? { ...normalized, rootTab: rootTabRoute.value.params.rootTab }
11
+ : normalized;
12
+ routerNavigateTo({ path, params: routeParams, keepSearchParams: true });
13
+ };
14
+
15
+ export const navigateToPlainTestResult = (params: { testResultId: string; tab?: string }) => {
16
+ const normalized = { ...params, tab: normalizeTab(params.tab) };
17
+ routerNavigateTo({ path: "/:testResultId/:tab?", params: normalized, keepSearchParams: true });
6
18
  };
7
19
 
8
20
  export const navigateToTestResultTab = (params: { testResultId: string; tab: string }) => {
9
- routerNavigateTo({ path: "/:testResultId/:tab?", params, keepSearchParams: true, replace: true });
21
+ const normalized = { ...params, tab: normalizeTab(params.tab) };
22
+ const path = rootTabRoute.value.matches ? "/:rootTab/:testResultId/:tab?" : "/:testResultId/:tab?";
23
+ const routeParams = rootTabRoute.value.matches
24
+ ? { ...normalized, rootTab: rootTabRoute.value.params.rootTab }
25
+ : normalized;
26
+ routerNavigateTo({ path, params: routeParams, keepSearchParams: true, replace: true });
10
27
  };
11
28
 
12
29
  export const navigateToRoot = () => {
13
30
  routerNavigateTo({ path: "/", keepSearchParams: true });
14
31
  };
15
32
 
33
+ export const navigateToCategoriesRoot = () => {
34
+ routerNavigateTo({ path: "/categories", keepSearchParams: true });
35
+ };
36
+
37
+ export const navigateToCategoriesTestResult = (params: { testResultId: string; tab?: string }) => {
38
+ const normalized = { ...params, tab: normalizeTab(params.tab) };
39
+ routerNavigateTo({ path: "/categories/:testResultId/:tab?", params: normalized, keepSearchParams: true });
40
+ };
41
+
42
+ export const navigateToRootTabRoot = (params: { rootTab: string }) => {
43
+ routerNavigateTo({ path: "/:rootTab", params, keepSearchParams: true });
44
+ };
45
+
46
+ export const navigateToRootTabTestResult = (params: { rootTab: string; testResultId: string; tab?: string }) => {
47
+ const normalized = { ...params, tab: normalizeTab(params.tab) };
48
+ routerNavigateTo({ path: "/:rootTab/:testResultId/:tab?", params: normalized, keepSearchParams: true });
49
+ };
50
+
16
51
  export const navigateToSection = (params: { section: "timeline" | "charts" }) => {
17
52
  routerNavigateTo({ path: "/:section", params, keepSearchParams: true, replace: false });
18
53
  };
19
54
 
20
55
  const sections = ["charts", "timeline"];
56
+ const rootTabs = ["categories", "qualityGate", "globalAttachments", "globalErrors"];
57
+
58
+ export const rootTabRoute = computed(() =>
59
+ createRoute<{ rootTab: string; testResultId?: string; tab?: string }>(
60
+ "/:rootTab/:testResultId?/:tab?",
61
+ ({ params }) => rootTabs.includes(params.rootTab) && params.rootTab !== params.testResultId,
62
+ ),
63
+ );
64
+
65
+ export const categoriesRoute = computed(() =>
66
+ createRoute<{ testResultId?: string; tab?: string }>("/categories/:testResultId?/:tab?"),
67
+ );
21
68
 
22
69
  export const testResultRoute = computed(() =>
23
70
  createRoute<{ testResultId: string; tab?: string }>("/:testResultId/:tab?", ({ params }) => {
24
- return params.testResultId && !sections.includes(params.testResultId);
71
+ return (
72
+ params.testResultId &&
73
+ params.testResultId !== "categories" &&
74
+ !sections.includes(params.testResultId) &&
75
+ !rootTabs.includes(params.testResultId)
76
+ );
25
77
  }),
26
78
  );
27
79