@allurereport/web-awesome 3.0.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/dist/multi/173.app-79c65c7bff941abcbc51.js +1 -0
  2. package/dist/multi/174.app-79c65c7bff941abcbc51.js +1 -0
  3. package/dist/multi/252.app-79c65c7bff941abcbc51.js +1 -0
  4. package/dist/multi/282.app-79c65c7bff941abcbc51.js +1 -0
  5. package/dist/multi/29.app-79c65c7bff941abcbc51.js +1 -0
  6. package/dist/multi/416.app-79c65c7bff941abcbc51.js +1 -0
  7. package/dist/multi/527.app-79c65c7bff941abcbc51.js +1 -0
  8. package/dist/multi/600.app-79c65c7bff941abcbc51.js +1 -0
  9. package/dist/multi/605.app-79c65c7bff941abcbc51.js +1 -0
  10. package/dist/multi/638.app-79c65c7bff941abcbc51.js +1 -0
  11. package/dist/multi/672.app-79c65c7bff941abcbc51.js +1 -0
  12. package/dist/multi/686.app-79c65c7bff941abcbc51.js +1 -0
  13. package/dist/multi/725.app-79c65c7bff941abcbc51.js +1 -0
  14. package/dist/multi/741.app-79c65c7bff941abcbc51.js +1 -0
  15. package/dist/multi/755.app-79c65c7bff941abcbc51.js +1 -0
  16. package/dist/multi/894.app-79c65c7bff941abcbc51.js +1 -0
  17. package/dist/multi/91.app-79c65c7bff941abcbc51.js +1 -0
  18. package/dist/multi/943.app-79c65c7bff941abcbc51.js +1 -0
  19. package/dist/multi/980.app-79c65c7bff941abcbc51.js +1 -0
  20. package/dist/multi/app-79c65c7bff941abcbc51.js +2 -0
  21. package/dist/multi/{app-bae2a0fe5738d77cd976.js.LICENSE.txt → app-79c65c7bff941abcbc51.js.LICENSE.txt} +7 -0
  22. package/dist/multi/manifest.json +21 -21
  23. package/dist/multi/styles-9e390bad7ce54a807a8e.css +49 -0
  24. package/dist/single/app-3ca67f29d0f1166c08ca.js +2 -0
  25. package/dist/single/{app-996d3b5869f8fc942b66.js.LICENSE.txt → app-3ca67f29d0f1166c08ca.js.LICENSE.txt} +7 -0
  26. package/dist/single/manifest.json +1 -1
  27. package/package.json +7 -7
  28. package/src/assets/scss/vars.scss +3 -0
  29. package/src/components/BaseLayout/index.tsx +25 -21
  30. package/src/components/BaseLayout/styles.scss +1 -0
  31. package/src/components/Charts/index.tsx +5 -2
  32. package/src/components/Footer/FooterVersion.tsx +14 -8
  33. package/src/components/Header/index.tsx +9 -7
  34. package/src/components/HeaderControls/index.tsx +5 -2
  35. package/src/components/MainReport/styles.scss +1 -0
  36. package/src/components/Metadata/index.tsx +24 -7
  37. package/src/components/ReportBody/HeaderActions.tsx +4 -13
  38. package/src/components/ReportBody/SortBy.tsx +27 -13
  39. package/src/components/ReportBody/index.tsx +1 -1
  40. package/src/components/ReportBody/styles.scss +4 -1
  41. package/src/components/ReportFilters/BaseFilters.tsx +345 -0
  42. package/src/components/ReportFilters/RetryFlaky.tsx +29 -0
  43. package/src/components/ReportFilters/TagsFilter.tsx +41 -0
  44. package/src/components/ReportFilters/TransitionFilter.tsx +49 -0
  45. package/src/components/ReportFilters/index.tsx +44 -0
  46. package/src/components/ReportFilters/styles.scss +55 -0
  47. package/src/components/ReportSearch/index.tsx +29 -0
  48. package/src/components/ReportTabs/index.tsx +1 -1
  49. package/src/components/SectionPicker/index.tsx +1 -1
  50. package/src/components/SplitLayout/index.tsx +7 -3
  51. package/src/components/TestResult/TrEnvironmentItem/index.tsx +2 -2
  52. package/src/components/TestResult/TrHeader/TrBreadcrumbs.tsx +2 -2
  53. package/src/components/TestResult/TrHistory/TrHistoryItem.tsx +38 -7
  54. package/src/components/TestResult/TrHistory/index.tsx +18 -8
  55. package/src/components/TestResult/TrHistory/styles.scss +4 -7
  56. package/src/components/TestResult/TrInfo/styles.scss +1 -0
  57. package/src/components/TestResult/TrNavigation/index.tsx +109 -68
  58. package/src/components/TestResult/TrNavigation/styles.scss +15 -25
  59. package/src/components/TestResult/TrPwTraces/PwTraceButton.tsx +1 -8
  60. package/src/components/TestResult/TrRetriesView/TrRetriesItem.tsx +2 -3
  61. package/src/components/TestResult/TrRetriesView/index.tsx +4 -3
  62. package/src/components/TestResult/TrSteps/TrAttachment.tsx +5 -3
  63. package/src/components/TestResult/TrSteps/TrAttachmentInfo.tsx +10 -3
  64. package/src/components/TestResult/TrTabs/index.tsx +7 -23
  65. package/src/components/TestResult/index.tsx +9 -4
  66. package/src/components/TestResult/styles.scss +1 -0
  67. package/src/components/Tree/index.tsx +14 -9
  68. package/src/index.html +19 -18
  69. package/src/index.tsx +20 -27
  70. package/src/locales/az.json +39 -11
  71. package/src/locales/de.json +39 -11
  72. package/src/locales/en.json +39 -11
  73. package/src/locales/es.json +39 -11
  74. package/src/locales/fr.json +39 -11
  75. package/src/locales/he.json +39 -11
  76. package/src/locales/hy.json +39 -11
  77. package/src/locales/it.json +39 -11
  78. package/src/locales/ja.json +39 -11
  79. package/src/locales/ka.json +39 -11
  80. package/src/locales/kr.json +39 -11
  81. package/src/locales/nl.json +39 -11
  82. package/src/locales/pl.json +39 -11
  83. package/src/locales/pt.json +39 -11
  84. package/src/locales/ru.json +39 -11
  85. package/src/locales/sv.json +39 -11
  86. package/src/locales/tr.json +39 -11
  87. package/src/locales/ua.json +39 -11
  88. package/src/locales/zh.json +39 -11
  89. package/src/stores/chart.ts +2 -2
  90. package/src/stores/env.ts +6 -6
  91. package/src/stores/envInfo.ts +2 -2
  92. package/src/stores/globals.ts +1 -1
  93. package/src/stores/index.ts +0 -1
  94. package/src/stores/layout.ts +20 -11
  95. package/src/stores/locale.ts +2 -1
  96. package/src/stores/qualityGate.ts +2 -2
  97. package/src/stores/router.ts +25 -91
  98. package/src/stores/sections.ts +32 -45
  99. package/src/stores/stats.ts +4 -4
  100. package/src/stores/testResult.ts +5 -0
  101. package/src/stores/testResults.ts +7 -5
  102. package/src/stores/tree.ts +20 -13
  103. package/src/stores/treeFilters/actions.ts +48 -52
  104. package/src/stores/treeFilters/constants.ts +11 -5
  105. package/src/stores/treeFilters/model.ts +51 -0
  106. package/src/stores/treeFilters/store.ts +260 -60
  107. package/src/stores/treeFilters/utils.ts +132 -0
  108. package/src/stores/treeSort.ts +71 -0
  109. package/src/stores/variables.ts +3 -3
  110. package/src/utils/treeFilters.ts +48 -66
  111. package/test/components/Header.test.tsx +49 -58
  112. package/test/utils/treeFilters.test.ts +18 -321
  113. package/types.d.ts +2 -1
  114. package/dist/multi/173.app-bae2a0fe5738d77cd976.js +0 -1
  115. package/dist/multi/174.app-bae2a0fe5738d77cd976.js +0 -1
  116. package/dist/multi/252.app-bae2a0fe5738d77cd976.js +0 -1
  117. package/dist/multi/282.app-bae2a0fe5738d77cd976.js +0 -1
  118. package/dist/multi/29.app-bae2a0fe5738d77cd976.js +0 -1
  119. package/dist/multi/416.app-bae2a0fe5738d77cd976.js +0 -1
  120. package/dist/multi/527.app-bae2a0fe5738d77cd976.js +0 -1
  121. package/dist/multi/600.app-bae2a0fe5738d77cd976.js +0 -1
  122. package/dist/multi/605.app-bae2a0fe5738d77cd976.js +0 -1
  123. package/dist/multi/638.app-bae2a0fe5738d77cd976.js +0 -1
  124. package/dist/multi/672.app-bae2a0fe5738d77cd976.js +0 -1
  125. package/dist/multi/686.app-bae2a0fe5738d77cd976.js +0 -1
  126. package/dist/multi/725.app-bae2a0fe5738d77cd976.js +0 -1
  127. package/dist/multi/741.app-bae2a0fe5738d77cd976.js +0 -1
  128. package/dist/multi/755.app-bae2a0fe5738d77cd976.js +0 -1
  129. package/dist/multi/894.app-bae2a0fe5738d77cd976.js +0 -1
  130. package/dist/multi/91.app-bae2a0fe5738d77cd976.js +0 -1
  131. package/dist/multi/943.app-bae2a0fe5738d77cd976.js +0 -1
  132. package/dist/multi/980.app-bae2a0fe5738d77cd976.js +0 -1
  133. package/dist/multi/app-bae2a0fe5738d77cd976.js +0 -2
  134. package/dist/multi/styles-bbf68b2ba63c38b53c38.css +0 -48
  135. package/dist/single/app-996d3b5869f8fc942b66.js +0 -2
  136. package/src/components/ReportBody/Filters.tsx +0 -122
  137. package/src/stores/theme.ts +0 -30
  138. package/src/stores/treeFilters/index.ts +0 -3
  139. package/src/stores/treeFilters/types.ts +0 -12
  140. package/test/stores/treeFilters.test.ts +0 -302
@@ -1,122 +0,0 @@
1
- import { Button, Menu, Toggle, TooltipWrapper, allureIcons } from "@allurereport/web-components";
2
- import { computed } from "@preact/signals";
3
- import { For } from "@preact/signals/utils";
4
- import { useEffect } from "preact/hooks";
5
- import { useI18n } from "@/stores/locale";
6
- import {
7
- type TreeFilters,
8
- setFilters,
9
- setTestTypeFilter,
10
- setTransitionFilter,
11
- testTypeFilters,
12
- transitionFilters,
13
- } from "@/stores/treeFilters";
14
- import { filtersList } from "@/stores/treeFilters/constants";
15
- import * as styles from "./styles.scss";
16
-
17
- const filterIcons: Record<TreeFilters, string> = {
18
- flaky: allureIcons.lineIconBomb2,
19
- retry: allureIcons.lineArrowsRefreshCcw1,
20
- new: allureIcons.lineAlertsNew,
21
- fixed: allureIcons.lineAlertsFixed,
22
- regressed: allureIcons.lineAlertsRegressed,
23
- malfunctioned: allureIcons.lineAlertsMalfunctioned,
24
- };
25
-
26
- const FilterItem = (props: { filter: TreeFilters; value: boolean; onChange: (value: boolean) => void }) => {
27
- const { filter, value, onChange } = props;
28
- const { t: tooltip } = useI18n("filters.description");
29
- const { t } = useI18n("filters");
30
-
31
- return (
32
- <TooltipWrapper data-testid="filter-tooltip" tooltipText={tooltip(filter)}>
33
- <Menu.Item
34
- closeMenuOnClick={false}
35
- ariaLabel={t("enable-filter", { filter: t(filter) })}
36
- onClick={() => onChange(!value)}
37
- leadingIcon={filterIcons[filter]}
38
- rightSlot={
39
- <div className={styles.filterToggle}>
40
- <Toggle
41
- focusable={false}
42
- value={value}
43
- label={t("enable-filter", { filter: t(filter) })}
44
- data-testid={`${filter}-filter`}
45
- onChange={(changeValue) => onChange(changeValue)}
46
- />
47
- </div>
48
- }
49
- >
50
- {t(filter)}
51
- </Menu.Item>
52
- </TooltipWrapper>
53
- );
54
- };
55
-
56
- const hasFilter = computed(
57
- () => transitionFilters.value.some(([, value]) => value) || testTypeFilters.value.some(([, value]) => value),
58
- );
59
-
60
- export const Filters = () => {
61
- const { t } = useI18n("filters");
62
-
63
- useEffect(() => {
64
- const params = new URLSearchParams(window.location.search);
65
- const filtersParams = params.getAll("filter");
66
-
67
- if (filtersParams.length > 0) {
68
- const activeFilters = filtersList.reduce(
69
- (acc, key) => ({
70
- ...acc,
71
- [key]: filtersParams.includes(key),
72
- }),
73
- {} as Record<string, boolean>,
74
- );
75
-
76
- setFilters(activeFilters);
77
- }
78
- }, []);
79
-
80
- return (
81
- <Menu
82
- menuTrigger={({ isOpened, onClick }) => (
83
- <div className={hasFilter.value && styles.filtersBtnWithFilters}>
84
- <Button
85
- icon={allureIcons.lineGeneralSettings1}
86
- text={t("more-filters")}
87
- size="m"
88
- style="outline"
89
- isActive={isOpened}
90
- data-testid="filters-button"
91
- onClick={onClick}
92
- />
93
- </div>
94
- )}
95
- >
96
- <Menu.Section>
97
- <For each={testTypeFilters}>
98
- {([filter, value]) => (
99
- <FilterItem
100
- key={filter}
101
- filter={filter}
102
- value={value}
103
- onChange={(newValue) => setTestTypeFilter(filter, newValue)}
104
- />
105
- )}
106
- </For>
107
- </Menu.Section>
108
- <Menu.Section data-testid="filters-menu">
109
- <For each={transitionFilters}>
110
- {([filter, value]) => (
111
- <FilterItem
112
- key={filter}
113
- filter={filter}
114
- value={value}
115
- onChange={(newValue) => setTransitionFilter(filter, newValue)}
116
- />
117
- )}
118
- </For>
119
- </Menu.Section>
120
- </Menu>
121
- );
122
- };
@@ -1,30 +0,0 @@
1
- import { getReportOptions } from "@allurereport/web-commons";
2
- import type { Theme } from "@allurereport/web-components";
3
- import { signal } from "@preact/signals";
4
- import type { AwesomeReportOptions } from "../../types.js";
5
-
6
- export const themeStore = signal<Theme>("auto");
7
-
8
- export const setTheme = (mode: "light" | "dark" | "auto") => {
9
- themeStore.value = mode;
10
-
11
- try {
12
- window.localStorage.setItem("theme", mode);
13
- } catch {}
14
-
15
- document.documentElement.setAttribute("data-theme", mode);
16
- };
17
-
18
- export const toggleTheme = () => {
19
- const order = ["light", "dark", "auto"];
20
- const current = themeStore.value;
21
- const next = order[(order.indexOf(current) + 1) % order.length] as Theme;
22
- setTheme(next);
23
- };
24
-
25
- export const getTheme = () => {
26
- const { theme } = getReportOptions<AwesomeReportOptions>() ?? {};
27
- const themeFromLS = (window.localStorage.getItem("theme") as Theme | null) || (theme as Theme);
28
-
29
- setTheme(themeFromLS);
30
- };
@@ -1,3 +0,0 @@
1
- export * from "./store";
2
- export * from "./actions";
3
- export type * from "./types";
@@ -1,12 +0,0 @@
1
- import type { AwesomeStatus } from "types";
2
-
3
- export type TreeSortBy = "order" | "duration" | "status" | "alphabet";
4
- export type TreeDirection = "asc" | "desc";
5
- export type TreeFilters = "flaky" | "retry" | "new" | "fixed" | "regressed" | "malfunctioned";
6
- export type TreeFiltersState = {
7
- query: string;
8
- status: AwesomeStatus;
9
- filter: Record<TreeFilters, boolean>;
10
- sortBy: TreeSortBy;
11
- direction: TreeDirection;
12
- };
@@ -1,302 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
- import {
3
- clearTreeFilters,
4
- setTestTypeFilter,
5
- setTransitionFilter,
6
- setTreeDirection,
7
- setTreeQuery,
8
- setTreeSortBy,
9
- setTreeStatus,
10
- treeDirection,
11
- treeFilter,
12
- treeQuery,
13
- treeSortBy,
14
- treeStatus,
15
- } from "@/stores/treeFilters";
16
-
17
- const defaultFilter = {
18
- flaky: false,
19
- retry: false,
20
- new: false,
21
- fixed: false,
22
- regressed: false,
23
- malfunctioned: false,
24
- };
25
-
26
- describe("stores > treeFilters", () => {
27
- beforeEach(() => {
28
- // Reset all signals to default state before each test
29
- treeQuery.value = "";
30
- treeStatus.value = "total";
31
- treeSortBy.value = "order";
32
- treeDirection.value = "asc";
33
- treeFilter.value = { ...defaultFilter };
34
- });
35
-
36
- afterEach(() => {
37
- vi.clearAllMocks();
38
- });
39
-
40
- describe("clearTreeFilters", () => {
41
- it("should reset query, status and filters to default state", () => {
42
- // Set some non-default values
43
- treeQuery.value = "test query";
44
- treeStatus.value = "passed";
45
- treeFilter.value = {
46
- flaky: true,
47
- retry: true,
48
- new: true,
49
- fixed: true,
50
- regressed: true,
51
- malfunctioned: true,
52
- };
53
-
54
- clearTreeFilters();
55
-
56
- expect(treeQuery.value).toBe("");
57
- expect(treeStatus.value).toBe("total");
58
- expect(treeFilter.value).toEqual(defaultFilter);
59
- });
60
-
61
- it("should not reset sortBy and direction", () => {
62
- treeSortBy.value = "duration";
63
- treeDirection.value = "desc";
64
-
65
- clearTreeFilters();
66
-
67
- expect(treeSortBy.value).toBe("duration");
68
- expect(treeDirection.value).toBe("desc");
69
- });
70
- });
71
-
72
- describe("setTreeQuery", () => {
73
- it("should update query", () => {
74
- setTreeQuery("search term");
75
-
76
- expect(treeQuery.value).toBe("search term");
77
- });
78
-
79
- it("should update query to empty string", () => {
80
- treeQuery.value = "some query";
81
-
82
- setTreeQuery("");
83
-
84
- expect(treeQuery.value).toBe("");
85
- });
86
- });
87
-
88
- describe("setTreeStatus", () => {
89
- it("should update status to passed", () => {
90
- setTreeStatus("passed");
91
-
92
- expect(treeStatus.value).toBe("passed");
93
- });
94
-
95
- it("should update status to failed", () => {
96
- setTreeStatus("failed");
97
-
98
- expect(treeStatus.value).toBe("failed");
99
- });
100
-
101
- it("should update status to broken", () => {
102
- setTreeStatus("broken");
103
-
104
- expect(treeStatus.value).toBe("broken");
105
- });
106
-
107
- it("should update status to skipped", () => {
108
- setTreeStatus("skipped");
109
-
110
- expect(treeStatus.value).toBe("skipped");
111
- });
112
-
113
- it("should update status to total", () => {
114
- treeStatus.value = "passed";
115
-
116
- setTreeStatus("total");
117
-
118
- expect(treeStatus.value).toBe("total");
119
- });
120
- });
121
-
122
- describe("setTreeSortBy", () => {
123
- it("should update sortBy to duration", () => {
124
- setTreeSortBy("duration");
125
-
126
- expect(treeSortBy.value).toBe("duration");
127
- });
128
-
129
- it("should update sortBy to status", () => {
130
- setTreeSortBy("status");
131
-
132
- expect(treeSortBy.value).toBe("status");
133
- });
134
-
135
- it("should update sortBy to alphabet", () => {
136
- setTreeSortBy("alphabet");
137
-
138
- expect(treeSortBy.value).toBe("alphabet");
139
- });
140
-
141
- it("should update sortBy to order", () => {
142
- treeSortBy.value = "duration";
143
-
144
- setTreeSortBy("order");
145
-
146
- expect(treeSortBy.value).toBe("order");
147
- });
148
- });
149
-
150
- describe("setTreeDirection", () => {
151
- it("should update direction to desc", () => {
152
- setTreeDirection("desc");
153
-
154
- expect(treeDirection.value).toBe("desc");
155
- });
156
-
157
- it("should update direction to asc", () => {
158
- treeDirection.value = "desc";
159
-
160
- setTreeDirection("asc");
161
-
162
- expect(treeDirection.value).toBe("asc");
163
- });
164
- });
165
-
166
- describe("setTestTypeFilter", () => {
167
- it("should enable flaky filter", () => {
168
- setTestTypeFilter("flaky", true);
169
-
170
- expect(treeFilter.value.flaky).toBe(true);
171
- });
172
-
173
- it("should disable flaky filter", () => {
174
- treeFilter.value = { ...defaultFilter, flaky: true };
175
-
176
- setTestTypeFilter("flaky", false);
177
-
178
- expect(treeFilter.value.flaky).toBe(false);
179
- });
180
-
181
- it("should enable retry filter", () => {
182
- setTestTypeFilter("retry", true);
183
-
184
- expect(treeFilter.value.retry).toBe(true);
185
- });
186
-
187
- it("should disable retry filter", () => {
188
- treeFilter.value = { ...defaultFilter, retry: true };
189
-
190
- setTestTypeFilter("retry", false);
191
-
192
- expect(treeFilter.value.retry).toBe(false);
193
- });
194
-
195
- it("should enable both flaky and retry filters independently", () => {
196
- setTestTypeFilter("flaky", true);
197
- setTestTypeFilter("retry", true);
198
-
199
- expect(treeFilter.value.flaky).toBe(true);
200
- expect(treeFilter.value.retry).toBe(true);
201
- });
202
-
203
- it("should not affect transition filters", () => {
204
- treeFilter.value = { ...defaultFilter, new: true };
205
-
206
- setTestTypeFilter("flaky", true);
207
-
208
- expect(treeFilter.value.new).toBe(true);
209
- expect(treeFilter.value.flaky).toBe(true);
210
- });
211
- });
212
-
213
- describe("setTransitionFilter", () => {
214
- it("should enable new filter", () => {
215
- setTransitionFilter("new", true);
216
-
217
- expect(treeFilter.value.new).toBe(true);
218
- });
219
-
220
- it("should enable fixed filter", () => {
221
- setTransitionFilter("fixed", true);
222
-
223
- expect(treeFilter.value.fixed).toBe(true);
224
- });
225
-
226
- it("should enable regressed filter", () => {
227
- setTransitionFilter("regressed", true);
228
-
229
- expect(treeFilter.value.regressed).toBe(true);
230
- });
231
-
232
- it("should enable malfunctioned filter", () => {
233
- setTransitionFilter("malfunctioned", true);
234
-
235
- expect(treeFilter.value.malfunctioned).toBe(true);
236
- });
237
-
238
- it("should disable the previous transition when enabling a new one", () => {
239
- setTransitionFilter("new", true);
240
- expect(treeFilter.value.new).toBe(true);
241
-
242
- setTransitionFilter("fixed", true);
243
-
244
- expect(treeFilter.value.new).toBe(false);
245
- expect(treeFilter.value.fixed).toBe(true);
246
- expect(treeFilter.value.regressed).toBe(false);
247
- expect(treeFilter.value.malfunctioned).toBe(false);
248
- });
249
-
250
- it("should disable all other transitions when enabling regressed", () => {
251
- treeFilter.value = { ...defaultFilter, new: true, fixed: true };
252
-
253
- setTransitionFilter("regressed", true);
254
-
255
- expect(treeFilter.value.new).toBe(false);
256
- expect(treeFilter.value.fixed).toBe(false);
257
- expect(treeFilter.value.regressed).toBe(true);
258
- expect(treeFilter.value.malfunctioned).toBe(false);
259
- });
260
-
261
- it("should allow only one transition to be enabled at a time", () => {
262
- setTransitionFilter("new", true);
263
- setTransitionFilter("fixed", true);
264
- setTransitionFilter("regressed", true);
265
- setTransitionFilter("malfunctioned", true);
266
-
267
- expect(treeFilter.value.new).toBe(false);
268
- expect(treeFilter.value.fixed).toBe(false);
269
- expect(treeFilter.value.regressed).toBe(false);
270
- expect(treeFilter.value.malfunctioned).toBe(true);
271
- });
272
-
273
- it("should disable the transition when value is false", () => {
274
- treeFilter.value = { ...defaultFilter, new: true };
275
-
276
- setTransitionFilter("new", false);
277
-
278
- expect(treeFilter.value.new).toBe(false);
279
- });
280
-
281
- it("should disable all transitions when disabling the active one", () => {
282
- setTransitionFilter("fixed", true);
283
-
284
- setTransitionFilter("fixed", false);
285
-
286
- expect(treeFilter.value.new).toBe(false);
287
- expect(treeFilter.value.fixed).toBe(false);
288
- expect(treeFilter.value.regressed).toBe(false);
289
- expect(treeFilter.value.malfunctioned).toBe(false);
290
- });
291
-
292
- it("should not affect test type filters (flaky, retry)", () => {
293
- treeFilter.value = { ...defaultFilter, flaky: true, retry: true };
294
-
295
- setTransitionFilter("new", true);
296
-
297
- expect(treeFilter.value.flaky).toBe(true);
298
- expect(treeFilter.value.retry).toBe(true);
299
- expect(treeFilter.value.new).toBe(true);
300
- });
301
- });
302
- });