@kaizen/components 1.61.1 → 1.61.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/codemods/utils/__snapshots__/transformSource.spec.ts.snap +2 -2
- package/dist/cjs/RichTextEditor/RichTextContent/RichTextContent.cjs +10 -1
- package/dist/esm/RichTextEditor/RichTextContent/RichTextContent.mjs +11 -2
- package/dist/styles.css +220 -220
- package/package.json +5 -4
- package/src/Avatar/Avatar.spec.tsx +1 -1
- package/src/Calendar/utils/setFocusInCalendar.spec.tsx +2 -2
- package/src/Checkbox/Checkbox/Checkbox.spec.tsx +2 -2
- package/src/Collapsible/Collapsible/Collapsible.spec.tsx +2 -14
- package/src/Collapsible/Collapsible/_docs/Collapsible.stickersheet.stories.tsx +49 -0
- package/src/Collapsible/Collapsible/_docs/Collapsible.stories.tsx +0 -11
- package/src/DateInput/DateInputDescription/DateInputDescription.spec.tsx +5 -6
- package/src/DateInput/DateInputWithIconButton/DateInputWithIconButton.spec.tsx +4 -6
- package/src/DatePicker/DatePicker.spec.tsx +32 -36
- package/src/DatePicker/subcomponents/DateInputField/DateInputField.spec.tsx +13 -13
- package/src/DatePicker/utils/validateDate.spec.ts +5 -6
- package/src/EmptyState/EmptyState.spec.tsx +1 -1
- package/src/ErrorPage/ErrorPage.spec.tsx +19 -19
- package/src/Filter/FilterBar/FilterBar.spec.tsx +26 -26
- package/src/Filter/FilterBar/context/utils/updateDependentFilters.spec.ts +2 -4
- package/src/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.spec.tsx +3 -4
- package/src/Filter/FilterBar/subcomponents/FilterBarButton/FilterBarButton.spec.tsx +3 -6
- package/src/Filter/FilterBar/subcomponents/FilterBarDatePicker/FilterBarDatePicker.spec.tsx +10 -12
- package/src/Filter/FilterBar/subcomponents/FilterBarDateRangePicker/FilterBarDateRangePicker.spec.tsx +9 -10
- package/src/Filter/FilterBar/subcomponents/FilterBarMultiSelect/FilterBarMultiSelect.spec.tsx +12 -14
- package/src/Filter/FilterBar/subcomponents/FilterBarSelect/FilterBarSelect.spec.tsx +11 -13
- package/src/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.spec.tsx +5 -5
- package/src/Filter/FilterDatePicker/FilterDatePicker.spec.tsx +12 -15
- package/src/Filter/FilterDatePicker/hooks/useDateInputHandlers.spec.ts +12 -15
- package/src/Filter/FilterDatePicker/hooks/useDateValidation.spec.ts +3 -5
- package/src/Filter/FilterDatePicker/subcomponents/FilterDatePickerField/FilterDatePickerField.spec.tsx +23 -28
- package/src/Filter/FilterDatePicker/utils/getDateValidationHandler.spec.tsx +2 -6
- package/src/Filter/FilterDatePicker/utils/validateDate.spec.ts +5 -6
- package/src/Filter/FilterDateRangePicker/FilterDateRangePicker.spec.tsx +2 -3
- package/src/Filter/FilterDateRangePicker/_docs/FilterDateRangePicker.stickersheet.stories.tsx +27 -0
- package/src/Filter/FilterDateRangePicker/subcomponents/DateRangeInputField/DateRangeInputField.spec.tsx +9 -11
- package/src/Filter/FilterDateRangePicker/subcomponents/DateRangeValidationMessage/DateRangeValidationMessage.spec.tsx +1 -63
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.spec.tsx +32 -32
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useEndDateValidation.spec.ts +3 -8
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useStartDateValidation.spec.ts +2 -5
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/validateEndDateBeforeStartDate.spec.ts +2 -3
- package/src/Filter/FilterMultiSelect/FilterMultiSelect.spec.tsx +9 -10
- package/src/Filter/FilterMultiSelect/context/MenuTriggerProvider/MenuTriggerProvider.spec.tsx +2 -1
- package/src/Filter/FilterMultiSelect/context/SelectionProvider/SelectionProvider.spec.tsx +32 -32
- package/src/Filter/FilterMultiSelect/subcomponents/MultiSelectOption/MultiSelectOption.spec.tsx +9 -7
- package/src/Filter/FilterMultiSelect/subcomponents/SearchInput/SearchInput.spec.tsx +12 -12
- package/src/Filter/FilterMultiSelect/subcomponents/SelectionControlButton/ClearButton/ClearButton.spec.tsx +7 -7
- package/src/Filter/FilterMultiSelect/subcomponents/SelectionControlButton/SelectAllButton/SelectAllButton.spec.tsx +9 -9
- package/src/Filter/FilterSelect/FilterSelect.spec.tsx +2 -2
- package/src/Heading/Heading.spec.tsx +1 -31
- package/src/Illustration/subcomponents/VideoPlayer/VideoPlayer.spec.tsx +43 -97
- package/src/Illustration/subcomponents/VideoPlayer/VideoPlayer.stickersheet.stories.tsx +68 -0
- package/src/Illustration/subcomponents/VideoPlayer/VideoPlayer.stories.tsx +37 -0
- package/src/Input/InputRange/InputRange.spec.tsx +2 -2
- package/src/Input/InputSearch/InputSearch.spec.tsx +3 -5
- package/src/KaizenProvider/KaizenProvider.spec.tsx +2 -2
- package/src/KaizenProvider/subcomponents/OptionalIntlProvider/OptionalIntlProvider.spec.tsx +2 -3
- package/src/Modal/ConfirmationModal/ConfirmationModal.spec.tsx +7 -7
- package/src/Modal/ContextModal/ContextModal.spec.tsx +5 -5
- package/src/Modal/GenericModal/GenericModal.spec.tsx +4 -4
- package/src/Modal/InputEditModal/InputEditModal.spec.tsx +7 -7
- package/src/MultiSelect/subcomponents/MultiSelectOptionField/MultiSelectOptionField.spec.tsx +3 -3
- package/src/MultiSelect/subcomponents/MultiSelectOptions/MultiSelectOptions.spec.tsx +3 -3
- package/src/MultiSelect/subcomponents/MultiSelectToggle/MultiSelectToggle.spec.tsx +2 -2
- package/src/Notification/subcomponents/GenericNotification/GenericNotification.stories.tsx +60 -0
- package/src/Pagination/Pagination.spec.tsx +2 -2
- package/src/RichTextEditor/EditableRichTextContent/EditableRichTextContent.spec.tsx +4 -4
- package/src/RichTextEditor/RichTextContent/RichTextContent.tsx +11 -2
- package/src/RichTextEditor/utils/commands/addMark.spec.ts +2 -2
- package/src/RichTextEditor/utils/commands/fixtures/helpers.ts +4 -3
- package/src/RichTextEditor/utils/commands/getMarkAttrs.spec.ts +2 -2
- package/src/RichTextEditor/utils/commands/getMarkRange.spec.ts +2 -2
- package/src/RichTextEditor/utils/commands/listIsActive.spec.ts +2 -2
- package/src/RichTextEditor/utils/commands/markContainsSelection.spec.ts +2 -2
- package/src/RichTextEditor/utils/commands/markIsActive.spec.ts +2 -2
- package/src/RichTextEditor/utils/commands/removeMark.spec.ts +2 -2
- package/src/RichTextEditor/utils/commands/updateMark.spec.ts +2 -2
- package/src/RichTextEditor/utils/commands/validateAndRemoveMarks.spec.ts +3 -3
- package/src/RichTextEditor/utils/core/createRichTextEditor.spec.ts +11 -11
- package/src/RichTextEditor/utils/core/hooks/useRichTextEditor.spec.tsx +2 -2
- package/src/SplitButton/SplitButton.spec.tsx +5 -5
- package/src/SplitButton/subcomponents/DropdownButton/DropdownButton.spec.tsx +3 -4
- package/src/Text/Text.spec.tsx +1 -57
- package/src/TextArea/TextArea.spec.tsx +2 -2
- package/src/TimeField/TimeField.spec.tsx +2 -2
- package/src/TitleBlockZen/TitleBlockZen.spec.tsx +36 -68
- package/src/TitleBlockZen/_docs/TitleBlockZen.stories.tsx +78 -8
- package/src/TitleBlockZen/subcomponents/MobileActions.spec.tsx +2 -2
- package/src/TitleBlockZen/subcomponents/NavigationTabs.spec.tsx +8 -2
- package/src/ToggleSwitch/ToggleSwitch/ToggleSwitch.spec.tsx +2 -2
- package/src/__actions__/Menu/v1/Menu.spec.tsx +2 -2
- package/src/__containers__/GuidanceBlock/v1/GuidanceBlock.spec.tsx +5 -5
- package/src/__containers__/GuidanceBlock/v2/GuidanceBlock.spec.tsx +5 -5
- package/src/__future__/Select/Select.spec.tsx +4 -4
- package/src/__overlays__/Tooltip/v1/Tooltip.spec.tsx +1 -1
- package/src/__overlays__/Tooltip/v1/utils/isSemanticElement.spec.tsx +4 -9
- package/src/utils/useMediaQueries.spec.tsx +7 -7
- package/src/Heading/__snapshots__/Heading.spec.tsx.snap +0 -85
- package/src/Illustration/utils/usePausePlay.spec.tsx +0 -85
- package/src/Notification/subcomponents/GenericNotification/GenericNotification.spec.tsx +0 -76
- package/src/Text/__snapshots__/Text.spec.tsx.snap +0 -49
- package/src/__overlays__/Tooltip/v1/subcomponents/AppearanceAnim.spec.tsx +0 -39
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React, { useRef } from "react"
|
|
2
|
-
import { screen, waitFor } from "@testing-library/react"
|
|
2
|
+
import { screen, waitFor, render } from "@testing-library/react"
|
|
3
3
|
import userEvent from "@testing-library/user-event"
|
|
4
4
|
import { enAU } from "date-fns/locale"
|
|
5
|
-
import {
|
|
5
|
+
import { vi } from "vitest"
|
|
6
6
|
import {
|
|
7
7
|
DateRangeInputField,
|
|
8
8
|
DateRangeInputFieldProps,
|
|
@@ -25,9 +25,7 @@ const DateRangeInputFieldWrapper = (
|
|
|
25
25
|
|
|
26
26
|
describe("<DateRangeInputField />", () => {
|
|
27
27
|
it("has unique ids for both inputs", async () => {
|
|
28
|
-
const { container } =
|
|
29
|
-
<DateRangeInputFieldWrapper id="range" />
|
|
30
|
-
)
|
|
28
|
+
const { container } = render(<DateRangeInputFieldWrapper id="range" />)
|
|
31
29
|
const inputStart = container.querySelector("#range--from")
|
|
32
30
|
const inputEnd = container.querySelector("#range--to")
|
|
33
31
|
await waitFor(() => {
|
|
@@ -37,14 +35,14 @@ describe("<DateRangeInputField />", () => {
|
|
|
37
35
|
})
|
|
38
36
|
|
|
39
37
|
it("has an accessible name for the fieldset", async () => {
|
|
40
|
-
|
|
38
|
+
render(<DateRangeInputFieldWrapper />)
|
|
41
39
|
await waitFor(() => {
|
|
42
40
|
expect(screen.getByRole("group", { name: "Dates" })).toBeVisible()
|
|
43
41
|
})
|
|
44
42
|
})
|
|
45
43
|
|
|
46
44
|
it("adds description to both inputs", async () => {
|
|
47
|
-
|
|
45
|
+
render(<DateRangeInputFieldWrapper />)
|
|
48
46
|
const inputStart = screen.getByRole("textbox", { name: "Date from" })
|
|
49
47
|
const inputEnd = screen.getByRole("textbox", { name: "Date to" })
|
|
50
48
|
await waitFor(() => {
|
|
@@ -56,7 +54,7 @@ describe("<DateRangeInputField />", () => {
|
|
|
56
54
|
})
|
|
57
55
|
|
|
58
56
|
it("adds validation message to description if it exists", async () => {
|
|
59
|
-
|
|
57
|
+
render(
|
|
60
58
|
<DateRangeInputFieldWrapper
|
|
61
59
|
validationMessage={{
|
|
62
60
|
dateStart: {
|
|
@@ -77,7 +75,7 @@ describe("<DateRangeInputField />", () => {
|
|
|
77
75
|
|
|
78
76
|
describe("Disabled", () => {
|
|
79
77
|
it("disables both inputs", async () => {
|
|
80
|
-
|
|
78
|
+
render(<DateRangeInputFieldWrapper disabled />)
|
|
81
79
|
const inputStart = screen.getByRole("textbox", { name: "Date from" })
|
|
82
80
|
const inputEnd = screen.getByRole("textbox", { name: "Date to" })
|
|
83
81
|
await waitFor(() => {
|
|
@@ -89,7 +87,7 @@ describe("<DateRangeInputField />", () => {
|
|
|
89
87
|
|
|
90
88
|
describe("Refs", () => {
|
|
91
89
|
it("correctly passes through both input refs", async () => {
|
|
92
|
-
const onButtonClick =
|
|
90
|
+
const onButtonClick = vi.fn()
|
|
93
91
|
|
|
94
92
|
const Wrapper = (): JSX.Element => {
|
|
95
93
|
const inputStartDateRef = useRef<HTMLInputElement>(null)
|
|
@@ -119,7 +117,7 @@ describe("<DateRangeInputField />", () => {
|
|
|
119
117
|
)
|
|
120
118
|
}
|
|
121
119
|
|
|
122
|
-
|
|
120
|
+
render(<Wrapper />)
|
|
123
121
|
|
|
124
122
|
await user.click(screen.getByText("Click me"))
|
|
125
123
|
expect(onButtonClick).toHaveBeenCalledWith(
|
|
@@ -1,70 +1,8 @@
|
|
|
1
1
|
import React from "react"
|
|
2
|
-
import { render
|
|
2
|
+
import { render } from "@testing-library/react"
|
|
3
3
|
import { DateRangeValidationMessage } from "./DateRangeValidationMessage"
|
|
4
4
|
|
|
5
5
|
describe("<DateRangeValidationMessage />", () => {
|
|
6
|
-
describe("when the consumer has given it a node", () => {
|
|
7
|
-
it("will render a single validation field message", () => {
|
|
8
|
-
render(
|
|
9
|
-
<DateRangeValidationMessage
|
|
10
|
-
validationMessage={{
|
|
11
|
-
dateEnd: {
|
|
12
|
-
status: "error",
|
|
13
|
-
message: <p>Validation message</p>,
|
|
14
|
-
},
|
|
15
|
-
}}
|
|
16
|
-
/>
|
|
17
|
-
)
|
|
18
|
-
expect(screen.getByText("Validation message")).toBeVisible()
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
it("combines multiple validation messages with the same status", () => {
|
|
22
|
-
const { container } = render(
|
|
23
|
-
<DateRangeValidationMessage
|
|
24
|
-
validationMessage={{
|
|
25
|
-
dateStart: {
|
|
26
|
-
status: "error",
|
|
27
|
-
message: '"Date from" is not a valid date selection.',
|
|
28
|
-
},
|
|
29
|
-
dateEnd: {
|
|
30
|
-
status: "error",
|
|
31
|
-
message:
|
|
32
|
-
'Date to" cannot be earlier than the "Date from" selection.',
|
|
33
|
-
},
|
|
34
|
-
}}
|
|
35
|
-
/>
|
|
36
|
-
)
|
|
37
|
-
const validationList = screen.getByRole("list")
|
|
38
|
-
const { getAllByRole } = within(validationList)
|
|
39
|
-
const items = getAllByRole("listitem")
|
|
40
|
-
|
|
41
|
-
expect(items.length).toBe(2)
|
|
42
|
-
expect(container.getElementsByClassName("error").length).toBe(1)
|
|
43
|
-
})
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
describe("when consumer passes validationMessage object and has different status", () => {
|
|
47
|
-
it("will render two validation field messages", () => {
|
|
48
|
-
const { container } = render(
|
|
49
|
-
<DateRangeValidationMessage
|
|
50
|
-
validationMessage={{
|
|
51
|
-
dateStart: {
|
|
52
|
-
status: "error",
|
|
53
|
-
message: '"Date from" is close to the submission date.',
|
|
54
|
-
},
|
|
55
|
-
dateEnd: {
|
|
56
|
-
status: "caution",
|
|
57
|
-
message:
|
|
58
|
-
'"Date to" cannot be earlier than the "Date from" selection.',
|
|
59
|
-
},
|
|
60
|
-
}}
|
|
61
|
-
/>
|
|
62
|
-
)
|
|
63
|
-
expect(container.getElementsByClassName("error").length).toBe(1)
|
|
64
|
-
expect(container.getElementsByClassName("caution").length).toBe(1)
|
|
65
|
-
})
|
|
66
|
-
})
|
|
67
|
-
|
|
68
6
|
it("renders an id when passed in", () => {
|
|
69
7
|
const { container } = render(
|
|
70
8
|
<DateRangeValidationMessage
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useState } from "react"
|
|
2
|
-
import { screen, waitFor, within } from "@testing-library/react"
|
|
2
|
+
import { screen, waitFor, within, render } from "@testing-library/react"
|
|
3
3
|
import userEvent from "@testing-library/user-event"
|
|
4
|
-
import {
|
|
4
|
+
import { vi } from "vitest"
|
|
5
5
|
import { DateRange } from "~components/Calendar"
|
|
6
6
|
import { FilterDateRangePickerField, FilterDateRangePickerFieldProps } from "."
|
|
7
7
|
|
|
@@ -36,7 +36,7 @@ const waitForI18nContent = async (): Promise<void> => {
|
|
|
36
36
|
describe("<FilterDateRangePickerField />", () => {
|
|
37
37
|
describe("Inputs", () => {
|
|
38
38
|
it("has empty inputs when a date range is not provided", async () => {
|
|
39
|
-
|
|
39
|
+
render(<FilterDateRangePickerFieldWrapper />)
|
|
40
40
|
await waitForI18nContent()
|
|
41
41
|
|
|
42
42
|
const inputStartDate = screen.getByLabelText("Date from")
|
|
@@ -46,7 +46,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
46
46
|
})
|
|
47
47
|
|
|
48
48
|
it("pre-fills the inputs when date range is provided", async () => {
|
|
49
|
-
|
|
49
|
+
render(
|
|
50
50
|
<FilterDateRangePickerFieldWrapper
|
|
51
51
|
selectedRange={{
|
|
52
52
|
from: new Date("2022-05-01"),
|
|
@@ -63,7 +63,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
63
63
|
})
|
|
64
64
|
|
|
65
65
|
it("allows customising the input labels", async () => {
|
|
66
|
-
|
|
66
|
+
render(
|
|
67
67
|
<FilterDateRangePickerFieldWrapper
|
|
68
68
|
selectedRange={{
|
|
69
69
|
from: new Date("2022-05-01"),
|
|
@@ -84,10 +84,10 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
84
84
|
|
|
85
85
|
describe("onBlur", () => {
|
|
86
86
|
it("updates start date input and calendar values correctly on blur", async () => {
|
|
87
|
-
const startDateOnBlur =
|
|
88
|
-
const endDateOnBlur =
|
|
87
|
+
const startDateOnBlur = vi.fn()
|
|
88
|
+
const endDateOnBlur = vi.fn()
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
render(
|
|
91
91
|
<FilterDateRangePickerFieldWrapper
|
|
92
92
|
selectedRange={{
|
|
93
93
|
from: new Date("2022-05-02"),
|
|
@@ -126,10 +126,10 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
126
126
|
})
|
|
127
127
|
|
|
128
128
|
it("updates end date input and calendar values correctly on blur", async () => {
|
|
129
|
-
const startDateOnBlur =
|
|
130
|
-
const endDateOnBlur =
|
|
129
|
+
const startDateOnBlur = vi.fn()
|
|
130
|
+
const endDateOnBlur = vi.fn()
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
render(
|
|
133
133
|
<FilterDateRangePickerFieldWrapper
|
|
134
134
|
selectedRange={{
|
|
135
135
|
from: new Date("2022-05-01"),
|
|
@@ -169,7 +169,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
169
169
|
})
|
|
170
170
|
|
|
171
171
|
it("updates the calendar month to match the new start date input", async () => {
|
|
172
|
-
|
|
172
|
+
render(
|
|
173
173
|
<FilterDateRangePickerFieldWrapper
|
|
174
174
|
selectedRange={{
|
|
175
175
|
from: new Date("2022-05-02"),
|
|
@@ -200,7 +200,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
200
200
|
|
|
201
201
|
describe("Calendar", () => {
|
|
202
202
|
it("shows the default month as the start month when there isn't a selected value", async () => {
|
|
203
|
-
|
|
203
|
+
render(
|
|
204
204
|
<FilterDateRangePickerFieldWrapper
|
|
205
205
|
defaultMonth={new Date("2022-05-02")}
|
|
206
206
|
/>
|
|
@@ -211,7 +211,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
211
211
|
})
|
|
212
212
|
|
|
213
213
|
it("shows the selected start date month as the start month when provided", async () => {
|
|
214
|
-
|
|
214
|
+
render(
|
|
215
215
|
<FilterDateRangePickerFieldWrapper
|
|
216
216
|
selectedRange={{
|
|
217
217
|
from: new Date("2022-05-01"),
|
|
@@ -225,7 +225,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
225
225
|
})
|
|
226
226
|
|
|
227
227
|
it("shows the current month as the start month when selected start date is invalid", async () => {
|
|
228
|
-
|
|
228
|
+
render(
|
|
229
229
|
<FilterDateRangePickerFieldWrapper
|
|
230
230
|
selectedRange={{
|
|
231
231
|
from: new Date("potato"),
|
|
@@ -242,7 +242,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
242
242
|
})
|
|
243
243
|
|
|
244
244
|
it("updates the range start input when changing the start date", async () => {
|
|
245
|
-
|
|
245
|
+
render(
|
|
246
246
|
<FilterDateRangePickerFieldWrapper
|
|
247
247
|
selectedRange={{
|
|
248
248
|
from: new Date("2022-05-15"),
|
|
@@ -269,7 +269,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
269
269
|
})
|
|
270
270
|
|
|
271
271
|
it("updates the range end input when changing the end date", async () => {
|
|
272
|
-
|
|
272
|
+
render(
|
|
273
273
|
<FilterDateRangePickerFieldWrapper
|
|
274
274
|
selectedRange={{
|
|
275
275
|
from: new Date("2022-05-15"),
|
|
@@ -296,7 +296,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
296
296
|
})
|
|
297
297
|
|
|
298
298
|
it("clears the inputs when clearing the calendar value", async () => {
|
|
299
|
-
|
|
299
|
+
render(
|
|
300
300
|
<FilterDateRangePickerFieldWrapper
|
|
301
301
|
selectedRange={{
|
|
302
302
|
from: new Date("2022-05-15"),
|
|
@@ -332,7 +332,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
332
332
|
|
|
333
333
|
describe("Custom validation", () => {
|
|
334
334
|
it("shows validation messages passed in from the consumer", async () => {
|
|
335
|
-
|
|
335
|
+
render(
|
|
336
336
|
<FilterDateRangePickerFieldWrapper
|
|
337
337
|
onValidate={{
|
|
338
338
|
dateStart: (): void => undefined,
|
|
@@ -359,7 +359,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
359
359
|
|
|
360
360
|
describe("Inbuilt validation", () => {
|
|
361
361
|
it("shows inbuilt validation messages for start date", async () => {
|
|
362
|
-
const { container } =
|
|
362
|
+
const { container } = render(
|
|
363
363
|
<FilterDateRangePickerFieldWrapper
|
|
364
364
|
inputStartDateProps={{ labelText: "Start date" }}
|
|
365
365
|
/>
|
|
@@ -385,7 +385,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
385
385
|
})
|
|
386
386
|
|
|
387
387
|
it("shows inbuilt validation messages for end date", async () => {
|
|
388
|
-
const { container } =
|
|
388
|
+
const { container } = render(
|
|
389
389
|
<FilterDateRangePickerFieldWrapper
|
|
390
390
|
inputEndDateProps={{ labelText: "End date" }}
|
|
391
391
|
/>
|
|
@@ -408,7 +408,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
408
408
|
})
|
|
409
409
|
|
|
410
410
|
it("shows inbuilt validation messages for pre-existing values", async () => {
|
|
411
|
-
const { container } =
|
|
411
|
+
const { container } = render(
|
|
412
412
|
<FilterDateRangePickerFieldWrapper
|
|
413
413
|
selectedRange={{
|
|
414
414
|
from: new Date("2022-05-15"),
|
|
@@ -436,7 +436,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
436
436
|
'Date to:Cannot be earlier than the selection in "Date from"'
|
|
437
437
|
|
|
438
438
|
it("shows error on updating end date input to be before start date", async () => {
|
|
439
|
-
const { container } =
|
|
439
|
+
const { container } = render(
|
|
440
440
|
<FilterDateRangePickerFieldWrapper
|
|
441
441
|
selectedRange={{
|
|
442
442
|
from: new Date("2022-05-15"),
|
|
@@ -462,7 +462,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
462
462
|
})
|
|
463
463
|
|
|
464
464
|
it("removes error on updating start date input to be before end date", async () => {
|
|
465
|
-
const { container } =
|
|
465
|
+
const { container } = render(
|
|
466
466
|
<FilterDateRangePickerFieldWrapper
|
|
467
467
|
selectedRange={{
|
|
468
468
|
from: new Date("2022-05-15"),
|
|
@@ -508,7 +508,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
508
508
|
})
|
|
509
509
|
|
|
510
510
|
it("displays only one date when the start date input is set to be before the end date", async () => {
|
|
511
|
-
const { container } =
|
|
511
|
+
const { container } = render(
|
|
512
512
|
<FilterDateRangePickerFieldWrapper
|
|
513
513
|
selectedRange={{
|
|
514
514
|
from: new Date("2022-05-15"),
|
|
@@ -539,7 +539,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
539
539
|
})
|
|
540
540
|
|
|
541
541
|
it("shows error on updating start date input to be after end date", async () => {
|
|
542
|
-
const { container } =
|
|
542
|
+
const { container } = render(
|
|
543
543
|
<FilterDateRangePickerFieldWrapper
|
|
544
544
|
selectedRange={{
|
|
545
545
|
from: new Date("2022-05-15"),
|
|
@@ -566,7 +566,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
566
566
|
})
|
|
567
567
|
|
|
568
568
|
it("shows error if the pre-existing end date is before start date", async () => {
|
|
569
|
-
const { container } =
|
|
569
|
+
const { container } = render(
|
|
570
570
|
<FilterDateRangePickerFieldWrapper
|
|
571
571
|
selectedRange={{
|
|
572
572
|
from: new Date("2022-05-15"),
|
|
@@ -588,7 +588,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
588
588
|
|
|
589
589
|
describe("Combined validation", () => {
|
|
590
590
|
it("shows custom start date validation with inbuilt end date validation", async () => {
|
|
591
|
-
const { container } =
|
|
591
|
+
const { container } = render(
|
|
592
592
|
<FilterDateRangePickerFieldWrapper
|
|
593
593
|
onValidate={{
|
|
594
594
|
dateStart: (): void => undefined,
|
|
@@ -621,7 +621,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
621
621
|
})
|
|
622
622
|
|
|
623
623
|
it("shows custom end date validation with inbuilt start date validation", async () => {
|
|
624
|
-
const { container } =
|
|
624
|
+
const { container } = render(
|
|
625
625
|
<FilterDateRangePickerFieldWrapper
|
|
626
626
|
onValidate={{
|
|
627
627
|
dateEnd: (): void => undefined,
|
|
@@ -656,7 +656,7 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
656
656
|
})
|
|
657
657
|
|
|
658
658
|
it("re-validates values when selecting a value using the calendar", async () => {
|
|
659
|
-
const { container } =
|
|
659
|
+
const { container } = render(
|
|
660
660
|
<FilterDateRangePickerFieldWrapper
|
|
661
661
|
selectedRange={{
|
|
662
662
|
from: new Date("2022-05-10"),
|
|
@@ -687,9 +687,9 @@ describe("<FilterDateRangePickerField />", () => {
|
|
|
687
687
|
})
|
|
688
688
|
|
|
689
689
|
it("only returns a valid date to the onRangeChange function", async () => {
|
|
690
|
-
const onRangeChange =
|
|
690
|
+
const onRangeChange = vi.fn()
|
|
691
691
|
|
|
692
|
-
const { getByLabelText } =
|
|
692
|
+
const { getByLabelText } = render(
|
|
693
693
|
<FilterDateRangePickerFieldWrapper
|
|
694
694
|
selectedRange={{
|
|
695
695
|
from: new Date("2022-05-10"),
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { act } from "react"
|
|
2
|
-
import { waitFor, renderHook } from "@testing-library/react"
|
|
3
|
-
import { renderWithIntl } from "~tests"
|
|
2
|
+
import { waitFor, renderHook, render } from "@testing-library/react"
|
|
4
3
|
import { useEndDateValidation } from "./useEndDateValidation"
|
|
5
4
|
|
|
6
5
|
describe("useEndDateValidation()", () => {
|
|
@@ -25,9 +24,7 @@ describe("useEndDateValidation()", () => {
|
|
|
25
24
|
|
|
26
25
|
expect(result.current.validationMessage?.status).toBe("error")
|
|
27
26
|
|
|
28
|
-
const { container } =
|
|
29
|
-
result.current.validationMessage?.message
|
|
30
|
-
)
|
|
27
|
+
const { container } = render(result.current.validationMessage?.message)
|
|
31
28
|
await waitFor(() => {
|
|
32
29
|
expect(container).toHaveTextContent(
|
|
33
30
|
"End date:potato is an invalid date"
|
|
@@ -57,9 +54,7 @@ describe("useEndDateValidation()", () => {
|
|
|
57
54
|
|
|
58
55
|
expect(result.current.validationMessage?.status).toBe("error")
|
|
59
56
|
|
|
60
|
-
const { container } =
|
|
61
|
-
result.current.validationMessage?.message
|
|
62
|
-
)
|
|
57
|
+
const { container } = render(result.current.validationMessage?.message)
|
|
63
58
|
await waitFor(() => {
|
|
64
59
|
expect(container).toHaveTextContent(
|
|
65
60
|
'Cannot be earlier than the selection in "Start date"'
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { act } from "react"
|
|
2
|
-
import { waitFor, renderHook } from "@testing-library/react"
|
|
3
|
-
import { renderWithIntl } from "~tests"
|
|
2
|
+
import { waitFor, renderHook, render } from "@testing-library/react"
|
|
4
3
|
import { useStartDateValidation } from "./useStartDateValidation"
|
|
5
4
|
|
|
6
5
|
describe("useStartDateValidation()", () => {
|
|
@@ -23,9 +22,7 @@ describe("useStartDateValidation()", () => {
|
|
|
23
22
|
|
|
24
23
|
expect(result.current.validationMessage?.status).toBe("error")
|
|
25
24
|
|
|
26
|
-
const { container } =
|
|
27
|
-
result.current.validationMessage?.message
|
|
28
|
-
)
|
|
25
|
+
const { container } = render(result.current.validationMessage?.message)
|
|
29
26
|
await waitFor(() => {
|
|
30
27
|
expect(container).toHaveTextContent(
|
|
31
28
|
"Start date:potato is an invalid date"
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { screen, waitFor } from "@testing-library/react"
|
|
2
|
-
import { renderWithIntl } from "~tests"
|
|
1
|
+
import { screen, waitFor, render } from "@testing-library/react"
|
|
3
2
|
import { validateEndDateBeforeStartDate } from "./validateEndDateBeforeStartDate"
|
|
4
3
|
|
|
5
4
|
describe("validateEndDateBeforeStartDate()", () => {
|
|
@@ -99,7 +98,7 @@ describe("validateEndDateBeforeStartDate()", () => {
|
|
|
99
98
|
|
|
100
99
|
expect(validationMessage?.status).toBe("error")
|
|
101
100
|
|
|
102
|
-
|
|
101
|
+
render(validationMessage?.message)
|
|
103
102
|
await waitFor(() => {
|
|
104
103
|
expect(
|
|
105
104
|
screen.getByText(
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React, { useState } from "react"
|
|
2
2
|
import { Selection } from "@react-types/shared"
|
|
3
|
-
import { waitFor } from "@testing-library/react"
|
|
3
|
+
import { waitFor, render } from "@testing-library/react"
|
|
4
4
|
import userEvent from "@testing-library/user-event"
|
|
5
|
-
import { renderWithIntl } from "~tests"
|
|
6
5
|
import { FilterMultiSelect, FilterMultiSelectProps } from "./FilterMultiSelect"
|
|
7
6
|
import { ItemType } from "./types"
|
|
8
7
|
import { getSelectedOptionLabels } from "./utils"
|
|
@@ -74,7 +73,7 @@ const FilterMultiSelectWrapper = ({
|
|
|
74
73
|
|
|
75
74
|
describe("<FilterMultiSelect>", () => {
|
|
76
75
|
it("opens the popover using the trigger button", async () => {
|
|
77
|
-
const { getByRole } =
|
|
76
|
+
const { getByRole } = render(<FilterMultiSelectWrapper />)
|
|
78
77
|
|
|
79
78
|
const triggerButton = getByRole("button", { name: "Engineer : Front-End" })
|
|
80
79
|
await user.click(triggerButton)
|
|
@@ -85,7 +84,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
85
84
|
})
|
|
86
85
|
|
|
87
86
|
it("selects an unselected option on click", async () => {
|
|
88
|
-
const { getByRole } =
|
|
87
|
+
const { getByRole } = render(<FilterMultiSelectWrapper isOpen />)
|
|
89
88
|
|
|
90
89
|
const devOpsOption = getByRole("option", {
|
|
91
90
|
name: "Dev-ops",
|
|
@@ -99,7 +98,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
99
98
|
})
|
|
100
99
|
|
|
101
100
|
it("deselects a selected option on click", async () => {
|
|
102
|
-
const { getByRole } =
|
|
101
|
+
const { getByRole } = render(<FilterMultiSelectWrapper isOpen />)
|
|
103
102
|
|
|
104
103
|
const devOpsOption = getByRole("option", {
|
|
105
104
|
name: "Front-End",
|
|
@@ -113,7 +112,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
113
112
|
})
|
|
114
113
|
|
|
115
114
|
it("filters out options which do not match the search term", async () => {
|
|
116
|
-
const { getByRole, getAllByRole } =
|
|
115
|
+
const { getByRole, getAllByRole } = render(
|
|
117
116
|
<FilterMultiSelectWrapper isOpen />
|
|
118
117
|
)
|
|
119
118
|
expect(getAllByRole("option")).toHaveLength(5)
|
|
@@ -127,7 +126,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
127
126
|
|
|
128
127
|
describe("Clear button", () => {
|
|
129
128
|
it("deselects all options when unfiltered", async () => {
|
|
130
|
-
const { getByRole, queryAllByRole } =
|
|
129
|
+
const { getByRole, queryAllByRole } = render(
|
|
131
130
|
<FilterMultiSelectWrapper
|
|
132
131
|
isOpen
|
|
133
132
|
selectedKeys={new Set(["id-fe", "id-devops"])}
|
|
@@ -143,7 +142,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
143
142
|
})
|
|
144
143
|
|
|
145
144
|
it("deselects only selected filtered options", async () => {
|
|
146
|
-
const { getByRole, queryAllByRole } =
|
|
145
|
+
const { getByRole, queryAllByRole } = render(
|
|
147
146
|
<FilterMultiSelectWrapper
|
|
148
147
|
isOpen
|
|
149
148
|
selectedKeys={new Set(["id-fe", "id-devops"])}
|
|
@@ -172,7 +171,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
172
171
|
options.filter(option => option.hasAttribute("aria-disabled"))
|
|
173
172
|
|
|
174
173
|
it("selects all non-disabled options when unfiltered", async () => {
|
|
175
|
-
const { getByRole, queryAllByRole } =
|
|
174
|
+
const { getByRole, queryAllByRole } = render(
|
|
176
175
|
<FilterMultiSelectWrapper isOpen selectedKeys={new Set([])} />
|
|
177
176
|
)
|
|
178
177
|
|
|
@@ -187,7 +186,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
187
186
|
})
|
|
188
187
|
|
|
189
188
|
it("selects only non-disabled filtered options", async () => {
|
|
190
|
-
const { getByRole, queryAllByRole } =
|
|
189
|
+
const { getByRole, queryAllByRole } = render(
|
|
191
190
|
<FilterMultiSelectWrapper isOpen selectedKeys={new Set([])} />
|
|
192
191
|
)
|
|
193
192
|
|
package/src/Filter/FilterMultiSelect/context/MenuTriggerProvider/MenuTriggerProvider.spec.tsx
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from "react"
|
|
2
2
|
import { render, screen, waitFor } from "@testing-library/react"
|
|
3
3
|
import userEvent from "@testing-library/user-event"
|
|
4
|
+
import { vi } from "vitest"
|
|
4
5
|
import { FilterTriggerButton } from "~components/Filter/FilterMultiSelect/subcomponents/Trigger"
|
|
5
6
|
import { MenuPopup } from "../../subcomponents/MenuPopup"
|
|
6
7
|
import {
|
|
@@ -59,7 +60,7 @@ describe("<MenuTriggerProvider /> - Visual content", () => {
|
|
|
59
60
|
})
|
|
60
61
|
|
|
61
62
|
it("fires the onOpenChange callback when the trigger is interacted", async () => {
|
|
62
|
-
const onOpenChange =
|
|
63
|
+
const onOpenChange = vi.fn()
|
|
63
64
|
render(<MenuTriggerProviderWrapper isOpen onOpenChange={onOpenChange} />)
|
|
64
65
|
|
|
65
66
|
const trigger = screen.getByRole("button", {
|