@allurereport/web-awesome 3.0.0-beta.15 → 3.0.0-beta.16

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 (98) hide show
  1. package/dist/multi/173.app-1e7b32b35927de455ae2.js +1 -0
  2. package/dist/multi/174.app-1e7b32b35927de455ae2.js +1 -0
  3. package/dist/multi/252.app-1e7b32b35927de455ae2.js +1 -0
  4. package/dist/multi/282.app-1e7b32b35927de455ae2.js +1 -0
  5. package/dist/multi/29.app-1e7b32b35927de455ae2.js +1 -0
  6. package/dist/multi/416.app-1e7b32b35927de455ae2.js +1 -0
  7. package/dist/multi/527.app-1e7b32b35927de455ae2.js +1 -0
  8. package/dist/multi/600.app-1e7b32b35927de455ae2.js +1 -0
  9. package/dist/multi/605.app-1e7b32b35927de455ae2.js +1 -0
  10. package/dist/multi/638.app-1e7b32b35927de455ae2.js +1 -0
  11. package/dist/multi/672.app-1e7b32b35927de455ae2.js +1 -0
  12. package/dist/multi/686.app-1e7b32b35927de455ae2.js +1 -0
  13. package/dist/multi/725.app-1e7b32b35927de455ae2.js +1 -0
  14. package/dist/multi/741.app-1e7b32b35927de455ae2.js +1 -0
  15. package/dist/multi/755.app-1e7b32b35927de455ae2.js +1 -0
  16. package/dist/multi/894.app-1e7b32b35927de455ae2.js +1 -0
  17. package/dist/multi/943.app-1e7b32b35927de455ae2.js +1 -0
  18. package/dist/multi/980.app-1e7b32b35927de455ae2.js +1 -0
  19. package/dist/multi/app-1e7b32b35927de455ae2.js +2 -0
  20. package/dist/multi/manifest.json +24 -24
  21. package/dist/multi/styles-99f5e45d3e35c8c13cd6.css +43 -0
  22. package/dist/single/app-b4be944c6ebe4a83f366.js +2 -0
  23. package/dist/single/manifest.json +1 -1
  24. package/package.json +16 -16
  25. package/src/assets/scss/day.scss +2 -0
  26. package/src/assets/scss/night.scss +2 -0
  27. package/src/assets/scss/theme.scss +4 -0
  28. package/src/components/Charts/index.tsx +2 -2
  29. package/src/components/MetadataButton/index.tsx +1 -1
  30. package/src/components/ReportBody/Filters.tsx +44 -63
  31. package/src/components/ReportMetadata/MetadataSummary.tsx +1 -1
  32. package/src/components/ReportMetadata/MetadataWithIcon.tsx +9 -11
  33. package/src/components/TestResult/TrDescription/index.tsx +1 -1
  34. package/src/components/TestResult/TrError/TrDiff.tsx +0 -1
  35. package/src/components/TestResult/TrHistory/TrHistoryItem.tsx +63 -34
  36. package/src/components/TestResult/TrHistory/styles.scss +2 -1
  37. package/src/components/TestResult/TrInfo/TrInfoStatuses.tsx +4 -2
  38. package/src/components/TestResult/TrOverview.tsx +0 -1
  39. package/src/components/TestResult/TrPrevStatuses/index.tsx +20 -5
  40. package/src/components/TestResult/TrPwTraces/index.tsx +6 -3
  41. package/src/components/TestResult/TrSteps/TrAttachment.tsx +13 -1
  42. package/src/components/TestResult/TrSteps/TrStep.tsx +4 -3
  43. package/src/components/TestResult/TrSteps/TrStepInfo.tsx +61 -1
  44. package/src/components/TestResult/TrSteps/styles.scss +31 -0
  45. package/src/components/Tree/index.tsx +17 -3
  46. package/src/locales/az.json +39 -16
  47. package/src/locales/de.json +39 -15
  48. package/src/locales/en.json +25 -2
  49. package/src/locales/es.json +36 -12
  50. package/src/locales/fr.json +36 -12
  51. package/src/locales/he.json +26 -2
  52. package/src/locales/hy.json +26 -2
  53. package/src/locales/it.json +29 -5
  54. package/src/locales/ja.json +29 -5
  55. package/src/locales/ka.json +36 -12
  56. package/src/locales/kr.json +26 -2
  57. package/src/locales/nl.json +36 -12
  58. package/src/locales/pl.json +46 -20
  59. package/src/locales/pt.json +37 -12
  60. package/src/locales/ru.json +47 -21
  61. package/src/locales/sv.json +36 -12
  62. package/src/locales/tr.json +36 -12
  63. package/src/locales/zh.json +36 -12
  64. package/src/stores/locale.ts +3 -0
  65. package/src/stores/tree.ts +7 -1
  66. package/src/utils/charts.ts +16 -18
  67. package/src/utils/tree.ts +25 -0
  68. package/src/utils/treeFilters.ts +14 -3
  69. package/tsconfig.json +1 -1
  70. package/types.d.ts +3 -1
  71. package/webpack.config.js +5 -5
  72. package/dist/multi/173.app-35b67161.js +0 -1
  73. package/dist/multi/174.app-35b67161.js +0 -1
  74. package/dist/multi/252.app-35b67161.js +0 -1
  75. package/dist/multi/282.app-35b67161.js +0 -1
  76. package/dist/multi/29.app-35b67161.js +0 -1
  77. package/dist/multi/416.app-35b67161.js +0 -1
  78. package/dist/multi/527.app-35b67161.js +0 -1
  79. package/dist/multi/600.app-35b67161.js +0 -1
  80. package/dist/multi/605.app-35b67161.js +0 -1
  81. package/dist/multi/638.app-35b67161.js +0 -1
  82. package/dist/multi/672.app-35b67161.js +0 -1
  83. package/dist/multi/686.app-35b67161.js +0 -1
  84. package/dist/multi/725.app-35b67161.js +0 -1
  85. package/dist/multi/741.app-35b67161.js +0 -1
  86. package/dist/multi/755.app-35b67161.js +0 -1
  87. package/dist/multi/894.app-35b67161.js +0 -1
  88. package/dist/multi/943.app-35b67161.js +0 -1
  89. package/dist/multi/980.app-35b67161.js +0 -1
  90. package/dist/multi/app-35b67161.js +0 -2
  91. package/dist/multi/styles-35b67161.css +0 -43
  92. package/dist/single/app-f5ecfcd9.js +0 -2
  93. /package/dist/multi/{JetBrainsMono_vf-b9a9c326..woff → JetBrainsMono_vf.woff} +0 -0
  94. /package/dist/multi/{JetBrainsMono_vf-9e9649b6..woff2 → JetBrainsMono_vf.woff2} +0 -0
  95. /package/dist/multi/{app-35b67161.js.LICENSE.txt → app-1e7b32b35927de455ae2.js.LICENSE.txt} +0 -0
  96. /package/dist/multi/{pt-root-ui_vf-22fe60ca..woff → pt-root-ui_vf.woff} +0 -0
  97. /package/dist/multi/{pt-root-ui_vf-9d251e8b..woff2 → pt-root-ui_vf.woff2} +0 -0
  98. /package/dist/single/{app-f5ecfcd9.js.LICENSE.txt → app-b4be944c6ebe4a83f366.js.LICENSE.txt} +0 -0
@@ -5,7 +5,10 @@
5
5
  "broken": "сломанный",
6
6
  "skipped": "пропущенный",
7
7
  "unknown": "неизвестный",
8
- "total": "все"
8
+ "total": "все",
9
+ "flakyTests": "нестабильный",
10
+ "newTests": "новый",
11
+ "retryTests": "повторный"
9
12
  },
10
13
  "testSummary": {
11
14
  "total": "Всего",
@@ -22,10 +25,21 @@
22
25
  },
23
26
  "filters": {
24
27
  "more-filters": "Фильтры",
25
- "enable-filter": "Включить фильтр по \"{filter}\"",
28
+ "enable-filter": "Включить фильтр по \"{{filter}}\"",
26
29
  "flaky": "Нестабильные",
27
30
  "retry": "Повторенные",
28
- "new": "Новые"
31
+ "new": "Новые",
32
+ "fixed": "Исправленные",
33
+ "regressed": "Регрессированные",
34
+ "malfunctioned": "Сломанные"
35
+ },
36
+ "filters.description": {
37
+ "flaky": "Показать нестабильные тесты",
38
+ "retry": "Показать результаты тестов, которые были перезапущены",
39
+ "new": "Показать результаты тестов, которые впервые появляются в этом отчёте",
40
+ "fixed": "Показать тесты, которые теперь успешны, но ранее были \"неуспешными\" или \"сломанными\" в предыдущем отчёте",
41
+ "regressed": "Показать результаты тестов, которые изменили статус на \"неуспешный\" с \"успешный\" или \"сломанный\"",
42
+ "malfunctioned": "Показать результаты тестов, которые изменили статус на \"сломанный\" с \"успешный\" или \"неуспешный\""
29
43
  },
30
44
  "sort-by": {
31
45
  "sort-by-text": "Сортировать по:",
@@ -39,26 +53,27 @@
39
53
  "status": "Статус"
40
54
  },
41
55
  "sort-by.directions": {
42
- "order-asc": "Поздние – Ранние",
43
- "order-desc": "Ранние – Поздние",
56
+ "order-desc": "Ранние – Поздние",
57
+ "order-asc": "Поздние – Ранние",
44
58
  "order-asc-short": "Поздние",
45
59
  "order-desc-short": "Ранние",
46
- "alphabet-asc": "Я – А",
47
- "alphabet-desc": "А – Я",
48
- "alphabet-asc-short": "Я – А",
49
- "alphabet-desc-short": "ЯА",
50
- "duration-asc": "9 – 1",
51
- "duration-desc": "1 – 9",
52
- "duration-asc-short": "9 – 1",
53
- "duration-desc-short": "1 – 9",
54
- "status-asc": "Инвертировано",
55
- "status-desc": "Как в списке фильтра",
56
- "status-asc-short": "Инвертировано",
57
- "status-desc-short": "По обычному"
60
+ "alphabet-asc": "А – Я",
61
+ "alphabet-desc": "Я – А",
62
+ "alphabet-asc-short": "А – Я",
63
+ "alphabet-desc-short": "Я А",
64
+ "duration-asc": "1 – 9",
65
+ "duration-desc": "9 – 1",
66
+ "duration-asc-short": "1 – 9",
67
+ "duration-desc-short": "9 – 1",
68
+ "status-asc": "Как в списке фильтра",
69
+ "status-desc": "Инвертировано",
70
+ "status-asc-short": "По обычному",
71
+ "status-desc-short": "Инвертировано"
58
72
  },
59
73
  "empty": {
60
74
  "no-results": "Нет результатов",
61
75
  "no-tests-found": "Результаты не найдены",
76
+ "no-message-provided": "Сообщение не предоставлено",
62
77
  "clear-filters": "Очистить фильтры",
63
78
  "no-attachments-results": "Информация о вложениях отсутствует",
64
79
  "no-history-results": "Информация об истории отсутствует",
@@ -68,7 +83,6 @@
68
83
  "no-environments-results": "Информация об окружениях отсутствует"
69
84
  },
70
85
  "severity": {
71
- "name": "Важность",
72
86
  "blocker": "блокер",
73
87
  "critical": "критическая",
74
88
  "normal": "обычная",
@@ -76,8 +90,8 @@
76
90
  "trivial": "минимальная"
77
91
  },
78
92
  "execution": {
79
- "body": "Тело теста",
80
93
  "name": "Выполнение",
94
+ "body": "Тело теста",
81
95
  "setup": "Подготовка",
82
96
  "teardown": "Завершение"
83
97
  },
@@ -108,9 +122,9 @@
108
122
  },
109
123
  "controls": {
110
124
  "newTabAttachment": "Открыть в новой вкладке",
111
- "downloadAttachment": "Загрузить вложение",
112
125
  "nextTR": "Следующий тест",
113
126
  "prevTR": "Предыдущий тест",
127
+ "downloadAttachment": "Загрузить вложение",
114
128
  "backto": "Вернуться на",
115
129
  "clipboard": "Скопировать в буфер обмена",
116
130
  "clipboardError": "Ошибка. Скорее всего ваш браузер не поддерживает данную функциональность",
@@ -138,7 +152,7 @@
138
152
  "missedAttachment": "Вложение не найдено"
139
153
  },
140
154
  "sections": {
141
- "report": "Report",
155
+ "report": "Отчет",
142
156
  "charts": "Графики"
143
157
  },
144
158
  "charts": {
@@ -152,5 +166,17 @@
152
166
  "pie": {
153
167
  "title": "Успешность тестирования"
154
168
  }
169
+ },
170
+ "transitions": {
171
+ "new": "Новый",
172
+ "fixed": "Исправленный",
173
+ "regressed": "Регрессированный",
174
+ "malfunctioned": "Сломанный"
175
+ },
176
+ "transitions.description": {
177
+ "new": "Первое появление этого результата теста в отчёте",
178
+ "fixed": "Ранее \"неуспешный\" или \"сломанный\" тест, который теперь \"успешный\"",
179
+ "regressed": "Ранее \"успешный\" или \"сломанный\" тест, который теперь \"неуспешный\"",
180
+ "malfunctioned": "Ранее \"успешный\" или \"неуспешный\" тест, который теперь \"сломанный\""
155
181
  }
156
182
  }
@@ -25,10 +25,21 @@
25
25
  },
26
26
  "filters": {
27
27
  "more-filters": "Fler filter",
28
- "enable-filter": "Aktivera filtret \"{filter}\"",
28
+ "enable-filter": "Aktivera filtret \"{{filter}}\"",
29
29
  "flaky": "Ostadig",
30
30
  "retry": "Försök igen",
31
- "new": "Ny"
31
+ "new": "Ny",
32
+ "fixed": "Åtgärdad",
33
+ "regressed": "Regresserad",
34
+ "malfunctioned": "Felaktig"
35
+ },
36
+ "filters.description": {
37
+ "flaky": "Visa ostadiga tester",
38
+ "retry": "Visa testresultat som kördes om",
39
+ "new": "Visa testresultat som visas för första gången i denna rapport",
40
+ "fixed": "Visa tester som nu är godkända men som tidigare var \"misslyckade\" eller \"trasiga\"",
41
+ "regressed": "Visa testresultat som ändrades från \"godkänd\" eller \"trasig\" till \"misslyckad\" status",
42
+ "malfunctioned": "Visa testresultat som ändrades från \"godkänd\" eller \"misslyckad\" till \"trasig\" status"
32
43
  },
33
44
  "sort-by": {
34
45
  "sort-by-text": "Sortera efter:",
@@ -42,18 +53,18 @@
42
53
  "status": "Status"
43
54
  },
44
55
  "sort-by.directions": {
45
- "order-desc": "SenastTidigare",
46
- "order-asc": "TidigareSenast",
56
+ "order-desc": "Senast Tidigare",
57
+ "order-asc": "Tidigare Senast",
47
58
  "order-asc-short": "Tidigare",
48
59
  "order-desc-short": "Senast",
49
- "alphabet-asc": "AÖ",
50
- "alphabet-desc": "ÖA",
51
- "alphabet-asc-short": "AÖ",
52
- "alphabet-desc-short": "ÖA",
53
- "duration-asc": "19",
54
- "duration-desc": "91",
55
- "duration-asc-short": "19",
56
- "duration-desc-short": "91",
60
+ "alphabet-asc": "A Ö",
61
+ "alphabet-desc": "Ö A",
62
+ "alphabet-asc-short": "A Ö",
63
+ "alphabet-desc-short": "Ö A",
64
+ "duration-asc": "1 9",
65
+ "duration-desc": "9 1",
66
+ "duration-asc-short": "1 9",
67
+ "duration-desc-short": "9 1",
57
68
  "status-asc": "Som i filterlistan",
58
69
  "status-desc": "Omvänd",
59
70
  "status-asc-short": "Vanlig",
@@ -62,6 +73,7 @@
62
73
  "empty": {
63
74
  "no-results": "Inga resultat",
64
75
  "no-tests-found": "Inga resultat hittades",
76
+ "no-message-provided": "Inget meddelande angavs",
65
77
  "clear-filters": "Rensa filter",
66
78
  "no-attachments-results": "Ingen bilaga information tillgänglig",
67
79
  "no-history-results": "Ingen historik information tillgänglig",
@@ -154,5 +166,17 @@
154
166
  "pie": {
155
167
  "title": "Testframgångsfrekvens"
156
168
  }
169
+ },
170
+ "transitions": {
171
+ "new": "Ny",
172
+ "fixed": "Åtgärdad",
173
+ "regressed": "Regresserad",
174
+ "malfunctioned": "Felaktig"
175
+ },
176
+ "transitions.description": {
177
+ "new": "Första förekomsten av detta testresultat i rapporten",
178
+ "fixed": "Tidigare \"misslyckad\" eller \"trasig\" test som nu är \"godkänd\"",
179
+ "regressed": "Tidigare \"godkänd\" eller \"trasig\" test som nu är \"misslyckad\"",
180
+ "malfunctioned": "Tidigare \"godkänd\" eller \"misslyckad\" test som nu är \"trasig\""
157
181
  }
158
182
  }
@@ -25,10 +25,21 @@
25
25
  },
26
26
  "filters": {
27
27
  "more-filters": "Daha fazla filtre",
28
- "enable-filter": "\"{filter}\" filtresini etkinleştir",
28
+ "enable-filter": "\"{{filter}}\" filtresini etkinleştir",
29
29
  "flaky": "İstikrarsız",
30
30
  "retry": "Tekrar",
31
- "new": "Yeni"
31
+ "new": "Yeni",
32
+ "fixed": "Düzeltildi",
33
+ "regressed": "Geri Döndü",
34
+ "malfunctioned": "Bozuk"
35
+ },
36
+ "filters.description": {
37
+ "flaky": "İstikrarsız testleri göster",
38
+ "retry": "Yeniden çalıştırılan test sonuçlarını göster",
39
+ "new": "Bu raporda ilk kez görünen test sonuçlarını göster",
40
+ "fixed": "Şimdi başarılı olan ancak daha önce \"başarısız\" veya \"bozuk\" olan testleri göster",
41
+ "regressed": "\"başarılı\" veya \"bozuk\" durumundan \"başarısız\" durumuna değişen test sonuçlarını göster",
42
+ "malfunctioned": "\"başarılı\" veya \"başarısız\" durumundan \"bozuk\" durumuna değişen test sonuçlarını göster"
32
43
  },
33
44
  "sort-by": {
34
45
  "sort-by-text": "Sıralama ölçütü:",
@@ -42,18 +53,18 @@
42
53
  "status": "Durum"
43
54
  },
44
55
  "sort-by.directions": {
45
- "order-desc": "Sonİlk",
46
- "order-asc": "İlkSon",
56
+ "order-desc": "Son İlk",
57
+ "order-asc": "İlk Son",
47
58
  "order-asc-short": "İlk",
48
59
  "order-desc-short": "Son",
49
- "alphabet-asc": "AZ",
50
- "alphabet-desc": "ZA",
51
- "alphabet-asc-short": "AZ",
52
- "alphabet-desc-short": "ZA",
53
- "duration-asc": "19",
54
- "duration-desc": "91",
55
- "duration-asc-short": "19",
56
- "duration-desc-short": "91",
60
+ "alphabet-asc": "A Z",
61
+ "alphabet-desc": "Z A",
62
+ "alphabet-asc-short": "A Z",
63
+ "alphabet-desc-short": "Z A",
64
+ "duration-asc": "1 9",
65
+ "duration-desc": "9 1",
66
+ "duration-asc-short": "1 9",
67
+ "duration-desc-short": "9 1",
57
68
  "status-asc": "Filtre listesi gibi",
58
69
  "status-desc": "Ters",
59
70
  "status-asc-short": "Normal",
@@ -62,6 +73,7 @@
62
73
  "empty": {
63
74
  "no-results": "Sonuç yok",
64
75
  "no-tests-found": "Sonuç bulunamadı",
76
+ "no-message-provided": "Mesaj belirtilmedi",
65
77
  "clear-filters": "Filtreleri temizle",
66
78
  "no-attachments-results": "Ek bilgisi mevcut değil",
67
79
  "no-history-results": "Geçmiş bilgisi mevcut değil",
@@ -154,5 +166,17 @@
154
166
  "pie": {
155
167
  "title": "Test Başarı Oranı"
156
168
  }
169
+ },
170
+ "transitions": {
171
+ "new": "Yeni",
172
+ "fixed": "Düzeltildi",
173
+ "regressed": "Geri Döndü",
174
+ "malfunctioned": "Bozuk"
175
+ },
176
+ "transitions.description": {
177
+ "new": "Bu test sonucunun rapordaki ilk görünümü",
178
+ "fixed": "Daha önce \"başarısız\" veya \"bozuk\" olan test artık \"başarılı\"",
179
+ "regressed": "Daha önce \"başarılı\" veya \"bozuk\" olan test artık \"başarısız\"",
180
+ "malfunctioned": "Daha önce \"başarılı\" veya \"başarısız\" olan test artık \"bozuk\""
157
181
  }
158
182
  }
@@ -25,10 +25,21 @@
25
25
  },
26
26
  "filters": {
27
27
  "more-filters": "更多过滤器",
28
- "enable-filter": "启用 \"{filter}\" 过滤器",
28
+ "enable-filter": "启用 \"{{filter}}\" 过滤器",
29
29
  "flaky": "不稳定",
30
30
  "retry": "重试",
31
- "new": "新的"
31
+ "new": "新的",
32
+ "fixed": "已修复",
33
+ "regressed": "已回归",
34
+ "malfunctioned": "已损坏"
35
+ },
36
+ "filters.description": {
37
+ "flaky": "显示不稳定的测试",
38
+ "retry": "显示重新运行的测试结果",
39
+ "new": "显示在此报告中首次出现的测试结果",
40
+ "fixed": "显示现在通过但之前\"失败\"或\"损坏\"的测试",
41
+ "regressed": "显示从\"通过\"或\"损坏\"状态变为\"失败\"状态的测试结果",
42
+ "malfunctioned": "显示从\"通过\"或\"失败\"状态变为\"损坏\"状态的测试结果"
32
43
  },
33
44
  "sort-by": {
34
45
  "sort-by-text": "排序依据:",
@@ -42,18 +53,18 @@
42
53
  "status": "状态"
43
54
  },
44
55
  "sort-by.directions": {
45
- "order-desc": "最新最早",
46
- "order-asc": "最早最新",
56
+ "order-desc": "最新 最早",
57
+ "order-asc": "最早 最新",
47
58
  "order-asc-short": "最早",
48
59
  "order-desc-short": "最新",
49
- "alphabet-asc": "AZ",
50
- "alphabet-desc": "ZA",
51
- "alphabet-asc-short": "AZ",
52
- "alphabet-desc-short": "ZA",
53
- "duration-asc": "19",
54
- "duration-desc": "91",
55
- "duration-asc-short": "19",
56
- "duration-desc-short": "91",
60
+ "alphabet-asc": "A Z",
61
+ "alphabet-desc": "Z A",
62
+ "alphabet-asc-short": "A Z",
63
+ "alphabet-desc-short": "Z A",
64
+ "duration-asc": "1 9",
65
+ "duration-desc": "9 1",
66
+ "duration-asc-short": "1 9",
67
+ "duration-desc-short": "9 1",
57
68
  "status-asc": "按照过滤列表",
58
69
  "status-desc": "反转",
59
70
  "status-asc-short": "正常",
@@ -62,6 +73,7 @@
62
73
  "empty": {
63
74
  "no-results": "没有结果",
64
75
  "no-tests-found": "未找到结果",
76
+ "no-message-provided": "未提供消息",
65
77
  "clear-filters": "清除过滤器",
66
78
  "no-attachments-results": "没有附件信息",
67
79
  "no-history-results": "没有历史信息",
@@ -154,5 +166,17 @@
154
166
  "pie": {
155
167
  "title": "测试成功率"
156
168
  }
169
+ },
170
+ "transitions": {
171
+ "new": "新的",
172
+ "fixed": "已修复",
173
+ "regressed": "已回归",
174
+ "malfunctioned": "已损坏"
175
+ },
176
+ "transitions.description": {
177
+ "new": "此测试结果在报告中的首次出现",
178
+ "fixed": "之前\"失败\"或\"损坏\"的测试现在\"通过\"了",
179
+ "regressed": "之前\"通过\"或\"损坏\"的测试现在\"失败\"了",
180
+ "malfunctioned": "之前\"通过\"或\"失败\"的测试现在\"损坏\"了"
157
181
  }
158
182
  }
@@ -7,6 +7,7 @@ const namespaces = [
7
7
  "empty",
8
8
  "execution",
9
9
  "filters",
10
+ "filters.description",
10
11
  "search",
11
12
  "severity",
12
13
  "sort-by",
@@ -24,6 +25,8 @@ const namespaces = [
24
25
  "environments",
25
26
  "charts",
26
27
  "sections",
28
+ "transitions",
29
+ "transitions.description",
27
30
  ];
28
31
 
29
32
  export const currentLocale = signal<LangLocale>("en" as LangLocale);
@@ -8,7 +8,7 @@ import { createRecursiveTree, isRecursiveTreeEmpty } from "@/utils/treeFilters";
8
8
 
9
9
  export type TreeSortBy = "order" | "duration" | "status" | "alphabet";
10
10
  export type TreeDirection = "asc" | "desc";
11
- export type TreeFilters = "flaky" | "retry" | "new";
11
+ export type TreeFilters = "flaky" | "retry" | "new" | "fixed" | "regressed" | "malfunctioned";
12
12
  export type TreeFiltersState = {
13
13
  query: string;
14
14
  status: AwesomeStatus;
@@ -59,6 +59,9 @@ export const treeFiltersStore = signal<TreeFiltersState>(
59
59
  flaky: false,
60
60
  retry: false,
61
61
  new: false,
62
+ fixed: false,
63
+ regressed: false,
64
+ malfunctioned: false,
62
65
  },
63
66
  sortBy: "order",
64
67
  direction: "asc",
@@ -104,6 +107,9 @@ export const clearTreeFilters = () => {
104
107
  flaky: false,
105
108
  retry: false,
106
109
  new: false,
110
+ fixed: false,
111
+ regressed: false,
112
+ malfunctioned: false,
107
113
  },
108
114
  sortBy: "order",
109
115
  direction: "asc",
@@ -1,16 +1,5 @@
1
1
  import { type SeverityLevel, type TestStatus, severityLevels, statusesList } from "@allurereport/core-api";
2
-
3
- export enum ChartType {
4
- Trend = "trend",
5
- Pie = "pie",
6
- }
7
-
8
- export enum ChartDataType {
9
- Status = "status",
10
- Severity = "severity",
11
- }
12
-
13
- export type ChartId = string;
2
+ import { ChartDataType, type ChartId, type ChartMode, ChartType } from "@allurereport/web-commons";
14
3
 
15
4
  export interface Point {
16
5
  x: Date | string | number;
@@ -23,15 +12,18 @@ export interface Slice {
23
12
  metadata: { executionId: string };
24
13
  }
25
14
 
26
- interface ResponseTrendChartData {
15
+ export type SeriesType = TestStatus | SeverityLevel;
16
+
17
+ interface ResponseTrendChartData<GroupBy extends string = SeriesType> {
27
18
  type: ChartType.Trend;
28
19
  dataType: ChartDataType;
20
+ mode: ChartMode;
29
21
  title?: string;
30
22
  min: number;
31
23
  max: number;
32
24
  points: Record<string, Point>;
33
25
  slices: Record<string, Slice>;
34
- series: Record<TestStatus | SeverityLevel, string[]>;
26
+ series: Record<GroupBy, string[]>;
35
27
  }
36
28
 
37
29
  interface TrendChartItem {
@@ -43,6 +35,7 @@ interface TrendChartItem {
43
35
  export interface TrendChartData {
44
36
  type: ChartType.Trend;
45
37
  dataType: ChartDataType;
38
+ mode: ChartMode;
46
39
  min: number;
47
40
  max: number;
48
41
  items: TrendChartItem[];
@@ -103,10 +96,14 @@ export const createTrendChartData = <T extends TestStatus | SeverityLevel>(
103
96
 
104
97
  const items = getGroups().reduce((acc, group) => {
105
98
  const pointsByGroupBy =
106
- chart.series[group]?.map((pointId) => ({
107
- x: chart.points[pointId].x,
108
- y: chart.points[pointId].y,
109
- })) ?? [];
99
+ chart.series[group]?.map((pointId) => {
100
+ const point = chart.points[pointId];
101
+
102
+ return {
103
+ x: point.x,
104
+ y: point.y,
105
+ };
106
+ }) ?? [];
110
107
 
111
108
  if (pointsByGroupBy.length) {
112
109
  acc.push({
@@ -122,6 +119,7 @@ export const createTrendChartData = <T extends TestStatus | SeverityLevel>(
122
119
  return {
123
120
  type: chart.type,
124
121
  dataType: chart.dataType,
122
+ mode: chart.mode,
125
123
  title: chart.title,
126
124
  items,
127
125
  slices: Object.values(chart.slices),
@@ -0,0 +1,25 @@
1
+ import type { RecursiveTree } from "@allurereport/web-components/global";
2
+ import type { AwesomeTreeLeaf } from "types";
3
+
4
+ type Localizer = (data: string) => string;
5
+
6
+ type Localizers = {
7
+ value: Localizer;
8
+ tooltip: Localizer;
9
+ };
10
+
11
+ export const createLeafLocalizer =
12
+ (t: Localizers) =>
13
+ (leaf: AwesomeTreeLeaf): AwesomeTreeLeaf => ({
14
+ ...leaf,
15
+ transitionText: t.value(leaf.transition),
16
+ transitionTooltip: t.tooltip(leaf.transition),
17
+ });
18
+
19
+ export const createTreeLocalizer =
20
+ (t: Localizers) =>
21
+ (tree: RecursiveTree): RecursiveTree => ({
22
+ ...tree,
23
+ leaves: tree.leaves.length ? tree.leaves.map(createLeafLocalizer(t)) : tree.leaves,
24
+ trees: tree.trees.length ? tree.trees.map(createTreeLocalizer(t)) : tree.trees,
25
+ });
@@ -20,10 +20,21 @@ export const isIncluded = (leaf: TreeLeaf<AwesomeTreeLeaf>, filterOptions: TreeF
20
20
  !filterOptions?.status || filterOptions?.status === "total" || leaf.status === filterOptions.status;
21
21
  const flakyMatched = !filterOptions?.filter?.flaky || leaf.flaky;
22
22
  const retryMatched = !filterOptions?.filter?.retry || leaf.retry;
23
- // TODO: at this moment we don't have a new field implementation even in the generator
24
- // const newMatched = !filterOptions?.filter?.new || leaf.new;
23
+ const newMatched = !filterOptions?.filter?.new || leaf.transition === "new";
24
+ const fixedMatched = !filterOptions?.filter?.fixed || leaf.transition === "fixed";
25
+ const regressedMatched = !filterOptions?.filter?.regressed || leaf.transition === "regressed";
26
+ const malfuctionedMatched = !filterOptions?.filter?.malfunctioned || leaf.transition === "malfunctioned";
25
27
 
26
- return [queryMatched, statusMatched, flakyMatched, retryMatched].every(Boolean);
28
+ return [
29
+ queryMatched,
30
+ statusMatched,
31
+ flakyMatched,
32
+ retryMatched,
33
+ newMatched,
34
+ fixedMatched,
35
+ regressedMatched,
36
+ malfuctionedMatched,
37
+ ].every(Boolean);
27
38
  };
28
39
 
29
40
  const leafComparatorByTreeSortBy = (sortBy: TreeSortBy = "status"): Comparator<TreeLeaf<AwesomeTreeLeaf>> => {
package/tsconfig.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "noImplicitAny": true,
18
18
  "resolveJsonModule": true,
19
19
  "esModuleInterop": true,
20
- "lib": ["ES2019", "dom"],
20
+ "lib": ["ES2019", "dom", "dom.iterable"],
21
21
  // node types should not be used in web-commons
22
22
  "types": [],
23
23
  "skipLibCheck": true
package/types.d.ts CHANGED
@@ -79,9 +79,11 @@ export type AwesomeTestResult = Omit<
79
79
 
80
80
  export type AwesomeTreeLeaf = Pick<
81
81
  AwesomeTestResult,
82
- "duration" | "name" | "start" | "status" | "groupOrder" | "flaky" | "retry" | "retriesCount"
82
+ "duration" | "name" | "start" | "status" | "groupOrder" | "flaky" | "transition" | "retry" | "retriesCount"
83
83
  > & {
84
84
  nodeId: string;
85
+ transitionText?: string;
86
+ transitionTooltip?: string;
85
87
  };
86
88
 
87
89
  export type AwesomeTreeGroup = WithChildren & DefaultTreeGroup & { nodeId: string };
package/webpack.config.js CHANGED
@@ -1,13 +1,13 @@
1
+ import ForkTsCheckerPlugin from "fork-ts-checker-webpack-plugin";
1
2
  import HtmlWebpackPlugin from "html-webpack-plugin";
2
3
  import MiniCssExtractPlugin from "mini-css-extract-plugin";
3
4
  import { dirname, join } from "node:path";
4
5
  import { env } from "node:process";
5
6
  import { fileURLToPath } from "node:url";
6
7
  import SpriteLoaderPlugin from "svg-sprite-loader/plugin.js";
8
+ import TerserPlugin from "terser-webpack-plugin";
7
9
  import webpack from "webpack";
8
10
  import { WebpackManifestPlugin } from "webpack-manifest-plugin";
9
- import ForkTsCheckerPlugin from "fork-ts-checker-webpack-plugin";
10
- import TerserPlugin from "terser-webpack-plugin";
11
11
 
12
12
  const { SINGLE_FILE_MODE } = env;
13
13
  const baseDir = dirname(fileURLToPath(import.meta.url));
@@ -18,8 +18,8 @@ export default (env, argv) => {
18
18
  entry: "./src/index.tsx",
19
19
  output: {
20
20
  path: join(baseDir, SINGLE_FILE_MODE ? "dist/single" : "dist/multi"),
21
- filename: devMode ? "app.js" : "app-[hash:8].js",
22
- assetModuleFilename: devMode ? `[name].[ext]` : `[name]-[hash:8].[ext]`,
21
+ filename: devMode ? "app.js" : "app-[fullhash].js",
22
+ assetModuleFilename: "[name][ext]",
23
23
  },
24
24
  devtool: devMode ? "inline-source-map" : false,
25
25
  optimization: {
@@ -88,7 +88,7 @@ export default (env, argv) => {
88
88
  DEVELOPMENT: devMode,
89
89
  }),
90
90
  new MiniCssExtractPlugin({
91
- filename: devMode ? "styles.css" : "styles-[hash:8].css",
91
+ filename: devMode ? "styles.css" : "styles-[contenthash].css",
92
92
  }),
93
93
  new SpriteLoaderPlugin(),
94
94
  new WebpackManifestPlugin({
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_allurereport_web_awesome=self.webpackChunk_allurereport_web_awesome||[]).push([[173],{173:function(e){e.exports=JSON.parse('{"statuses":{"passed":"წარმატებული","failed":"წარუმატებელი","broken":"დამტვრეული","skipped":"გამოტოვებული","unknown":"უცნობი","total":"ჯამი","flakyTests":"არასტაბილური","newTests":"ახალი","retryTests":"ხელახალი ცდა"},"testSummary":{"total":"ჯამი","flaky":"არასტაბილური ტესტები","retries":"ხელახალი ტესტები","new":"ახალი ტესტები"},"tabs":{"total":"ყველა"},"search":{"search":"ძებნა","search-placeholder":"სახელი ან ID"},"filters":{"more-filters":"დამატებითი ფილტრები","enable-filter":"ჩართეთ ფილტრი \\"{filter}\\"","flaky":"არასტაბილური","retry":"ხელახალი","new":"ახალი"},"sort-by":{"sort-by-text":"დალაგება:","sort-by-category":"დალაგება","direction-category":"მიმართულება"},"sort-by.values":{"order":"შეკვეთა","alphabet":"ანბანი","duration":"ხანგრძლივობა","status":"სტატუსი"},"sort-by.directions":{"order-desc":"ბოლო – პირველი","order-asc":"პირველი – ბოლო","order-asc-short":"პირველი","order-desc-short":"ბოლო","alphabet-asc":"ა – ჰ","alphabet-desc":"ჰ – ა","alphabet-asc-short":"ა – ჰ","alphabet-desc-short":"ჰ – ა","duration-asc":"1 – 9","duration-desc":"9 – 1","duration-asc-short":"1 – 9","duration-desc-short":"9 – 1","status-asc":"როგორც ფილტრის სიაში","status-desc":"შებრუნებული","status-asc-short":"ჩვეულებრივი","status-desc-short":"შებრუნებული"},"empty":{"no-results":"შედეგები არ არის","no-tests-found":"შედეგები არ მოიძებნა","clear-filters":"ფილტრების გასუფთავება","no-attachments-results":"დანართების ინფორმაცია არ არის ხელმისაწვდომი","no-history-results":"ისტორიის ინფორმაცია არ არის ხელმისაწვდომი","no-retries-results":"ხელახალი ცდების ინფორმაცია არ არის ხელმისაწვდომი","no-test-steps-results":"ტესტის ნაბიჯების ინფორმაცია ხელმისაწვდომი არ არის","no-test-case-results":"ტესტის შემთხვევის შედეგები არ არის","no-environments-results":"გარემობის ინფორმაცია არ არის ხელმისაწვდომი"},"severity":{"blocker":"ბლოკერი","critical":"კრიტიკული","normal":"ჩვეულებრივი","minor":"მნიშვნელობა","trivial":"უმნიშვნელო"},"execution":{"name":"შესრულება","body":"ტესტის შინაარსი","setup":"მომზადება","teardown":"დასრულება"},"environments":{"environment_one":"გარემობა","environment_other":"გარემობები","all":"ყველა"},"ui":{"labels":"ლეიბლები","metadata":"მეტამონაცემები","parameters":"პარამეტრები","description":"აღწერა","links":"ბმულები","overview":"მიმოხილვა","history":"ისტორია","attachments":"დანართები","retries":"ხელახალი ცდები","environments":"გარემობები","error":"შეცდომა","goToStep":"გადადით საფეხურზე","showLess":"ნაკლების ჩვენება","showMore":"მეტის ჩვენება","copy":"კოპირება","at":"ზე","variables":"ცვლადები","openPwTrace":"გახსენი Playwright Trace"},"controls":{"newTabAttachment":"დანართის გახსნა ახალ ჩანართში","nextTR":"შემდეგი ტესტის შედეგი","prevTR":"წინა ტესტის შედეგი","downloadAttachment":"დანართის ჩამოტვირთვა","backto":"უკან დაბრუნება","clipboard":"კოპირება ბუფერში","clipboardError":"ბუფერში კოპირება ვერ მოხერხდა. შესაძლოა, ფუნქცია არ იყოს მხარდაჭერილი თქვენს ბრაუზერში","clipboardSuccess":"წარმატებით დაკოპირდა","collapse":"ჩაკეცვა","expand":"გახსნა","fullscreen":"სრულ ეკრანზე","language":"ენის შეცვლა","openInNewTab":"გახსნა ახალ ჩანართში","openPreview":"გახსენი წინასწარი დათვალიერება","noSelectedTR":"არჩეული ტესტის შედეგი არ არის","comparison":"შედარება","showDiff":"მაჩვენე განსხვავება","viewMode":"ნახვის რეჟიმი","unified":"გაერთიანებული","side-by-side":"გვერდიგვერდ","compareBy":"შედარება","chars":"სიმბოლოები","words":"სიტყვები","lines":"ხაზები","actual":"ნამდვილი","expected":"მოსალოდნელი"},"errors":{"missedAttachment":"დანართი ვერ მოიძებნა"},"sections":{"report":"Report","charts":"გრაფიკები"},"charts":{"trend":{"title":"ტრენდის გრაფიკი: {{type}}","type":{"status":"სტატუსი","severity":"სიმძიმე"}},"pie":{"title":"ტესტების წარმატების მაჩვენებელი"}}}')}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_allurereport_web_awesome=self.webpackChunk_allurereport_web_awesome||[]).push([[174],{174:function(e){e.exports=JSON.parse('{"statuses":{"passed":"passed","failed":"failed","broken":"broken","skipped":"skipped","unknown":"unknown","total":"total","flakyTests":"flaky","newTests":"new","retryTests":"retry"},"testSummary":{"total":"Total","flaky":"Flaky tests","retries":"Retried tests","new":"New tests"},"tabs":{"total":"All"},"search":{"search":"Search","search-placeholder":"Name or ID"},"filters":{"more-filters":"More filters","enable-filter":"params(\'Enable \\"{filter}\\" filter\')","flaky":"Flaky","retry":"Retry","new":"New"},"sort-by":{"sort-by-text":"Sort by:","sort-by-category":"Sort by","direction-category":"Direction"},"sort-by.values":{"order":"Order","alphabet":"Alphabet","duration":"Duration","status":"Status"},"sort-by.directions":{"order-desc":"Latest – Earliest","order-asc":"Earliest – Latest","order-asc-short":"Earliest","order-desc-short":"Latest","alphabet-asc":"A – Z","alphabet-desc":"Z – A","alphabet-asc-short":"A – Z","alphabet-desc-short":"Z – A","duration-asc":"1 – 9","duration-desc":"9 – 1","duration-asc-short":"1 – 9","duration-desc-short":"9 – 1","status-asc":"As in the filter list","status-desc":"Reversed","status-asc-short":"Regular","status-desc-short":"Reversed"},"empty":{"no-results":"No results","no-tests-found":"No results found","no-message-provided":"No message is provided","clear-filters":"Clear filters","no-attachments-results":"No attachments information available","no-history-results":"No history information available","no-retries-results":"No retries information available","no-test-steps-results":"No test steps information available","no-test-case-results":"No test case results","no-environments-results":"No environments information available"},"severity":{"blocker":"blocker","critical":"critical","normal":"normal","minor":"minor","trivial":"trivial"},"execution":{"name":"Execution","body":"Test body","setup":"Set up","teardown":"Tear down"},"environments":{"environment_one":"Environment","environment_other":"Environments","all":"All"},"ui":{"labels":"Labels","metadata":"Metadata","parameters":"Parameters","description":"Description","links":"Links","overview":"Overview","history":"History","attachments":"Attachments","retries":"Retries","environments":"Environments","error":"Error","goToStep":"Go to step","showLess":"Show less","showMore":"Show more","copy":"Copy","at":"at","variables":"Variables","openPwTrace":"Open Playwright Trace"},"controls":{"newTabAttachment":"Open attachment in new tab","nextTR":"Next Test result","prevTR":"Previous Test result","downloadAttachment":"Download attachment","backto":"Back to","clipboard":"Copy to clipboard","clipboardError":"Can not copy value to clipboard. Seems like this feature is not supported for your browser","clipboardSuccess":"Successfully copied","collapse":"Collapse","expand":"Expand","fullscreen":"Full screen","language":"Change language","openInNewTab":"Open in new tab","openPreview":"Open preview","noSelectedTR":"No selected Test result","comparison":"Comparison","showDiff":"Show difference","viewMode":"View mode","unified":"Unified","side-by-side":"Side by Side","compareBy":"Compare by","chars":"chars","words":"words","lines":"lines","actual":"Actual","expected":"Expected"},"errors":{"missedAttachment":"Attachment not found"},"sections":{"report":"Report","charts":"Graphs"},"charts":{"trend":{"title":"Trend Chart: {{type}}","type":{"status":"Status","severity":"Severity"}},"pie":{"title":"Test Success Rate"}}}')}}]);