@kaizen/components 1.52.1 → 1.53.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.
- package/dist/cjs/DatePicker/DatePicker.cjs +8 -1
- package/dist/cjs/DatePicker/utils/getLocale.cjs +2 -0
- package/dist/cjs/DatePicker/utils/validateDate.cjs +28 -2
- package/dist/cjs/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.cjs +8 -1
- package/dist/cjs/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.cjs +14 -2
- package/dist/cjs/Filter/FilterBar/subcomponents/FilterBarDatePicker/FilterBarDatePicker.cjs +1 -0
- package/dist/cjs/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.cjs +10 -1
- package/dist/cjs/Filter/FilterDatePicker/subcomponents/DateInputField/DateInputField.cjs +8 -1
- package/dist/cjs/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.cjs +5 -1
- package/dist/cjs/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useEndDateValidation.cjs +1 -0
- package/dist/cjs/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useStartDateValidation.cjs +1 -0
- package/dist/cjs/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/validateEndDateBeforeStartDate.cjs +16 -1
- package/dist/esm/DatePicker/DatePicker.mjs +8 -1
- package/dist/esm/DatePicker/utils/getLocale.mjs +3 -1
- package/dist/esm/DatePicker/utils/validateDate.mjs +22 -2
- package/dist/esm/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.mjs +8 -1
- package/dist/esm/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.mjs +14 -2
- package/dist/esm/Filter/FilterBar/subcomponents/FilterBarDatePicker/FilterBarDatePicker.mjs +1 -0
- package/dist/esm/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.mjs +10 -1
- package/dist/esm/Filter/FilterDatePicker/subcomponents/DateInputField/DateInputField.mjs +8 -1
- package/dist/esm/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.mjs +5 -1
- package/dist/esm/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useEndDateValidation.mjs +1 -0
- package/dist/esm/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/useStartDateValidation.mjs +1 -0
- package/dist/esm/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/validateEndDateBeforeStartDate.mjs +10 -1
- package/dist/styles.css +2 -2
- package/dist/types/AvatarGroup/_docs/example-data.d.ts +8 -0
- package/dist/types/BrandMoment/_docs/ExampleHeaders.d.ts +3 -0
- package/dist/types/Calendar/_docs/controls/defaultMonthControls.d.ts +2 -0
- package/dist/types/Calendar/_docs/controls/weekStartsOnControls.d.ts +2 -0
- package/dist/types/Container/Container.d.ts +1 -1
- package/dist/types/Content/Content.d.ts +1 -1
- package/dist/types/DateInput/DateInput/DateInput.d.ts +1 -1
- package/dist/types/DatePicker/DatePicker.d.ts +1 -1
- package/dist/types/DatePicker/_docs/controls/datePickerLocaleControls.d.ts +2 -0
- package/dist/types/DatePicker/_docs/controls/disabledDayMatchersControls.d.ts +2 -0
- package/dist/types/DatePicker/subcomponents/DateInputField/DateInputField.d.ts +1 -1
- package/dist/types/DatePicker/types.d.ts +2 -1
- package/dist/types/DatePicker/utils/getLocale.d.ts +1 -1
- package/dist/types/Filter/FilterBar/context/types.d.ts +28 -0
- package/dist/types/Filter/FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.d.ts +1 -1
- package/dist/types/Filter/FilterDatePicker/_docs/controls/disabledDaysControls.d.ts +2 -0
- package/dist/types/Filter/FilterDatePicker/_docs/controls/validationControls.d.ts +2 -0
- package/dist/types/Filter/FilterDatePicker/subcomponents/DateInputField/DateInputField.d.ts +1 -1
- package/dist/types/Filter/FilterDateRangePicker/_docs/controls/disabledDaysControls.d.ts +2 -0
- package/dist/types/Filter/FilterDateRangePicker/_docs/controls/validationControls.d.ts +2 -0
- package/dist/types/Filter/FilterMultiSelect/_docs/MockData.d.ts +10 -0
- package/dist/types/Filter/FilterSelect/_docs/mockData.d.ts +6 -0
- package/dist/types/Filter/_docs/controls/renderTriggerControls.d.ts +2 -0
- package/dist/types/Menu/_docs/MenuContentExample.d.ts +8 -0
- package/dist/types/Menu/_docs/examples.d.ts +11 -0
- package/dist/types/Modal/_docs/controls.d.ts +11 -0
- package/dist/types/MultiSelect/MultiSelect.d.ts +23 -0
- package/dist/types/MultiSelect/subcomponents/MultiSelectOptions/MultiSelectOptions.d.ts +13 -0
- package/dist/types/Select/Select.d.ts +3 -3
- package/dist/types/Workflow/_docs/controls/controls.d.ts +2 -0
- package/dist/types/Workflow/_docs/controls/index.d.ts +1 -0
- package/dist/types/__future__/Select/Select.d.ts +2 -2
- package/dist/types/__future__/Select/_docs/mockData.d.ts +6 -0
- package/dist/types/__future__/Select/subcomponents/SelectToggle/SelectToggle.d.ts +2 -2
- package/dist/types/__future__/Select/types.d.ts +22 -0
- package/dist/types/__future__/Workflow/_docs/controls/controls.d.ts +2 -0
- package/dist/types/__future__/Workflow/_docs/controls/index.d.ts +1 -0
- package/dist/types/__overlays__/Tooltip/v1/utils/isSemanticElement.d.ts +2 -2
- package/dist/types/utils/getNodeText.d.ts +2 -1
- package/locales/en.json +40 -0
- package/package.json +1 -1
- package/src/Avatar/_docs/Avatar.mdx +1 -1
- package/src/AvatarGroup/_docs/AvatarGroup.mdx +1 -1
- package/src/Badge/_docs/Badge.mdx +1 -1
- package/src/Brand/_docs/Brand.mdx +1 -1
- package/src/BrandMoment/_docs/BrandMoment.mdx +1 -1
- package/src/Button/Button/_docs/Button.mdx +1 -1
- package/src/Button/IconButton/_docs/IconButton.mdx +1 -1
- package/src/ButtonGroup/_docs/ButtonGroup.mdx +1 -1
- package/src/Calendar/CalendarRange/_docs/CalendarRange.mdx +1 -1
- package/src/Calendar/CalendarSingle/_docs/CalendarSingle.mdx +1 -1
- package/src/Card/_docs/Card.mdx +1 -1
- package/src/Checkbox/Checkbox/_docs/Checkbox.mdx +1 -1
- package/src/Checkbox/CheckboxField/_docs/CheckboxField.mdx +1 -1
- package/src/Checkbox/CheckboxGroup/_docs/CheckboxGroup.mdx +1 -1
- package/src/Collapsible/Collapsible/_docs/Collapsible.mdx +1 -1
- package/src/Collapsible/CollapsibleGroup/_docs/CollapsibleGroup.mdx +1 -1
- package/src/Collapsible/ExpertAdviceCollapsible/_docs/ExpertAdviceCollapsible.mdx +1 -1
- package/src/Container/_docs/Container.mdx +1 -1
- package/src/Content/_docs/Content.mdx +1 -1
- package/src/DateInput/DateInputDescription/DateInputDescription.spec.tsx +26 -18
- package/src/DatePicker/DatePicker.spec.tsx +100 -69
- package/src/DatePicker/DatePicker.tsx +13 -5
- package/src/DatePicker/_docs/DatePicker.mdx +1 -1
- package/src/DatePicker/_docs/DatePicker.stickersheet.stories.tsx +57 -21
- package/src/DatePicker/_docs/DatePicker.stories.tsx +2 -3
- package/src/DatePicker/_docs/controls/datePickerLocaleControls.ts +1 -1
- package/src/DatePicker/subcomponents/DateInputField/DateInputField.spec.tsx +49 -36
- package/src/DatePicker/types.ts +2 -1
- package/src/DatePicker/utils/getLocale.ts +6 -2
- package/src/DatePicker/utils/validateDate.spec.ts +40 -16
- package/src/DatePicker/utils/{validateDate.ts → validateDate.tsx} +24 -4
- package/src/DateRangePicker/_docs/DateRangePicker.mdx +1 -1
- package/src/Divider/_docs/Divider.mdx +1 -1
- package/src/EmptyState/_docs/EmptyState.mdx +1 -1
- package/src/ErrorPage/_docs/ErrorPage.mdx +1 -1
- package/src/FieldGroup/_docs/FieldGroup.mdx +1 -1
- package/src/FieldMessage/_docs/FieldMessage.mdx +1 -1
- package/src/Filter/Filter/_docs/Filter.mdx +1 -1
- package/src/Filter/FilterBar/FilterBar.spec.tsx +56 -25
- package/src/Filter/FilterBar/_docs/FilterBar.mdx +1 -1
- package/src/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.spec.tsx +21 -13
- package/src/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.tsx +11 -1
- package/src/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.tsx +17 -2
- package/src/Filter/FilterBar/subcomponents/FilterBarButton/FilterBarButton.spec.tsx +17 -8
- package/src/Filter/FilterBar/subcomponents/FilterBarDatePicker/FilterBarDatePicker.spec.tsx +37 -23
- package/src/Filter/FilterBar/subcomponents/FilterBarDateRangePicker/FilterBarDateRangePicker.spec.tsx +35 -23
- package/src/Filter/FilterBar/subcomponents/FilterBarMultiSelect/FilterBarMultiSelect.spec.tsx +42 -26
- package/src/Filter/FilterBar/subcomponents/FilterBarSelect/FilterBarSelect.spec.tsx +37 -24
- package/src/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.spec.tsx +12 -12
- package/src/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.tsx +15 -2
- package/src/Filter/FilterButton/_docs/filter-buttons.mdx +1 -1
- package/src/Filter/FilterDatePicker/FilterDatePicker.spec.tsx +21 -16
- package/src/Filter/FilterDatePicker/_docs/FilterDatePicker.mdx +1 -1
- package/src/Filter/FilterDatePicker/_docs/FilterDatePicker.stickersheet.stories.tsx +50 -1
- package/src/Filter/FilterDatePicker/hooks/useDateInputHandlers.spec.ts +3 -3
- package/src/Filter/FilterDatePicker/hooks/{useDateValidation.spec.tsx → useDateValidation.spec.ts} +13 -12
- package/src/Filter/FilterDatePicker/subcomponents/DateInputField/DateInputField.tsx +10 -1
- package/src/Filter/FilterDatePicker/subcomponents/FilterDatePickerField/FilterDatePickerField.spec.tsx +57 -36
- package/src/Filter/FilterDatePicker/utils/validateDate.spec.ts +52 -28
- package/src/Filter/FilterDateRangePicker/FilterDateRangePicker.spec.tsx +3 -2
- package/src/Filter/FilterDateRangePicker/_docs/FilterDateRangePicker.mdx +1 -1
- package/src/Filter/FilterDateRangePicker/_docs/FilterDateRangePicker.stickersheet.stories.tsx +55 -24
- package/src/Filter/FilterDateRangePicker/subcomponents/DateRangeInputField/DateRangeInputField.spec.tsx +43 -28
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.spec.tsx +82 -48
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.tsx +6 -1
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/{useEndDateValidation.spec.tsx → useEndDateValidation.spec.ts} +23 -20
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/hooks/{useStartDateValidation.spec.tsx → useStartDateValidation.spec.ts} +13 -11
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/validateEndDateBeforeStartDate.spec.ts +17 -6
- package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/utils/{validateEndDateBeforeStartDate.ts → validateEndDateBeforeStartDate.tsx} +9 -3
- package/src/Filter/FilterMultiSelect/FilterMultiSelect.spec.tsx +10 -14
- package/src/Filter/FilterMultiSelect/_docs/FilterMultiSelect.mdx +1 -1
- package/src/Filter/FilterMultiSelect/context/SelectionProvider/SelectionProvider.spec.tsx +392 -372
- package/src/Filter/FilterMultiSelect/subcomponents/SearchInput/SearchInput.spec.tsx +9 -6
- package/src/Filter/FilterSelect/_docs/FilterSelect.mdx +1 -1
- package/src/GuidanceBlock/_docs/GuidanceBlock.mdx +1 -1
- package/src/Heading/_docs/Heading.mdx +1 -1
- package/src/Icon/_docs/Icon.mdx +1 -1
- package/src/Illustration/Scene/BrandMomentCaptureIntro/_docs/BrandMomentCaptureIntro.mdx +1 -1
- package/src/Illustration/Scene/_docs/Scene.mdx +1 -1
- package/src/Illustration/Spot/_docs/Spot.mdx +1 -1
- package/src/Input/Input/_docs/Input.mdx +1 -1
- package/src/Input/InputRange/_docs/InputRange.mdx +1 -1
- package/src/Input/InputSearch/InputSearch.spec.tsx +15 -14
- package/src/Input/InputSearch/_docs/InputSearch.mdx +1 -1
- package/src/Label/_docs/Label.mdx +1 -1
- package/src/LabelledMessage/_docs/LabelledMessage.mdx +1 -1
- package/src/LikertScaleLegacy/_docs/LikertScaleLegacy.mdx +1 -1
- package/src/Loading/LoadingGraphic/_docs/LoadingGraphic.mdx +1 -1
- package/src/Loading/LoadingHeading/_docs/LoadingHeading.mdx +1 -1
- package/src/Loading/LoadingInput/_docs/LoadingInput.mdx +1 -1
- package/src/Loading/LoadingParagraph/_docs/LoadingParagraph.mdx +1 -1
- package/src/Loading/LoadingSpinner/_docs/LoadingSpinner.mdx +1 -1
- package/src/Menu/_docs/Menu.mdx +1 -1
- package/src/Modal/ConfirmationModal/_docs/ConfirmationModal.mdx +1 -1
- package/src/Modal/ContextModal/_docs/ContextModal.mdx +1 -1
- package/src/Modal/GenericModal/_docs/GenericModal.mdx +1 -1
- package/src/Modal/InputEditModal/_docs/InputEditModal.mdx +1 -1
- package/src/MultiSelect/_docs/MultiSelect.mdx +1 -1
- package/src/Notification/GlobalNotification/_docs/GlobalNotification.mdx +1 -1
- package/src/Notification/InlineNotification/_docs/InlineNotification.mdx +1 -1
- package/src/Notification/ToastNotification/_docs/ToastNotification.mdx +1 -1
- package/src/Pagination/_docs/Pagination.mdx +1 -1
- package/src/Pagination/subcomponents/DirectionalLink/_docs/DirectionalLink.mdx +1 -1
- package/src/Pagination/subcomponents/PaginationLink/_docs/PaginationLink.mdx +1 -1
- package/src/Popover/_docs/Popover.mdx +1 -1
- package/src/ProgressBar/_docs/ProgressBar.mdx +1 -1
- package/src/Radio/Radio/_docs/Radio.mdx +1 -1
- package/src/Radio/RadioField/_docs/RadioField.mdx +1 -1
- package/src/Radio/RadioGroup/_docs/RadioGroup.mdx +1 -1
- package/src/RichTextEditor/EditableRichTextContent/_docs/EditableRichTextContent.mdx +1 -1
- package/src/RichTextEditor/RichTextContent/_docs/RichTextContent.mdx +1 -1
- package/src/RichTextEditor/RichTextEditor/_docs/RichTextEditor.mdx +1 -1
- package/src/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/_docs/ToggleIconButton.mdx +1 -1
- package/src/RichTextEditor/RichTextEditor/subcomponents/Toolbar/_docs/Toolbar.mdx +1 -1
- package/src/SearchField/_docs/SearchField.mdx +1 -1
- package/src/Select/_docs/Select.mdx +1 -1
- package/src/Skirt/_docs/Skirt.mdx +1 -1
- package/src/Slider/_docs/Slider.mdx +1 -1
- package/src/SplitButton/SplitButton.spec.tsx +11 -6
- package/src/SplitButton/_docs/SplitButton.mdx +1 -1
- package/src/SplitButton/subcomponents/DropdownButton/DropdownButton.spec.tsx +15 -10
- package/src/Table/_docs/Table.mdx +1 -1
- package/src/Tabs/_docs/Tabs.mdx +1 -1
- package/src/Tag/_docs/Tag.mdx +1 -1
- package/src/Text/_docs/Text.mdx +1 -1
- package/src/TextArea/_docs/TextArea.mdx +1 -1
- package/src/TextAreaField/_docs/TextAreaField.mdx +1 -1
- package/src/TextField/_docs/TextField.mdx +1 -1
- package/src/Tile/InformationTile/_docs/InformationTile.mdx +1 -1
- package/src/Tile/MultiActionTile/_docs/MultiActionTile.mdx +1 -1
- package/src/Tile/TileGrid/_docs/TileGrid.mdx +1 -1
- package/src/TimeField/_docs/TimeField.mdx +1 -1
- package/src/TitleBlockZen/_docs/TitleBlockZen.mdx +1 -1
- package/src/ToggleSwitch/ToggleSwitch/_docs/ToggleSwitch.mdx +1 -1
- package/src/ToggleSwitch/ToggleSwitchField/_docs/ToggleSwitchField.mdx +1 -1
- package/src/VisuallyHidden/_docs/VisuallyHidden.mdx +1 -1
- package/src/Well/_docs/Well.mdx +1 -1
- package/src/Workflow/_docs/ProgressStepper.mdx +1 -1
- package/src/Workflow/_docs/Workflow.mdx +1 -1
- package/src/Workflow/_docs/WorkflowFooter.mdx +1 -1
- package/src/Workflow/_docs/WorkflowHeader.mdx +1 -1
- package/src/__future__/Select/_docs/Select.mdx +1 -1
- package/src/__future__/Tag/Tag/_docs/Tag.mdx +1 -1
- package/src/__future__/Workflow/_docs/ProgressStepper.mdx +1 -1
- package/src/__future__/Workflow/_docs/Workflow.mdx +1 -1
- package/src/__future__/Workflow/_docs/WorkflowFooter.mdx +1 -1
- package/src/__future__/Workflow/_docs/WorkflowHeader.mdx +1 -1
- package/src/__overlays__/Tooltip/v1/_docs/Tooltip.mdx +1 -1
- package/src/__overlays__/Tooltip/v3/_docs/ApiSpecification.mdx +0 -1
- package/src/__overlays__/Tooltip/v3/_docs/Tooltip.docs.stories.tsx +52 -0
- package/src/__overlays__/Tooltip/v3/_docs/Tooltip.mdx +40 -61
- package/src/__overlays__/Tooltip/v3/_docs/assets/tooltip_spec.png +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { act } from "react"
|
|
2
|
+
import { waitFor } from "@testing-library/react"
|
|
2
3
|
import { renderHook } from "@testing-library/react-hooks"
|
|
3
|
-
import {
|
|
4
|
+
import { renderWithIntl } from "~tests"
|
|
4
5
|
import { useStartDateValidation } from "./useStartDateValidation"
|
|
5
6
|
|
|
6
7
|
describe("useStartDateValidation()", () => {
|
|
7
8
|
describe("validateDate()", () => {
|
|
8
|
-
it("returns a validation message and no date", () => {
|
|
9
|
+
it("returns a validation message and no date", async () => {
|
|
9
10
|
const { result } = renderHook(() =>
|
|
10
11
|
useStartDateValidation({
|
|
11
12
|
inputLabel: "Start date",
|
|
@@ -21,14 +22,15 @@ describe("useStartDateValidation()", () => {
|
|
|
21
22
|
expect(newDate).toBeUndefined()
|
|
22
23
|
})
|
|
23
24
|
|
|
24
|
-
expect(result.current.validationMessage).
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
expect(result.current.validationMessage?.status).toBe("error")
|
|
26
|
+
|
|
27
|
+
const { container } = renderWithIntl(
|
|
28
|
+
result.current.validationMessage?.message
|
|
29
|
+
)
|
|
30
|
+
await waitFor(() => {
|
|
31
|
+
expect(container).toHaveTextContent(
|
|
32
|
+
"Start date:potato is an invalid date"
|
|
33
|
+
)
|
|
32
34
|
})
|
|
33
35
|
})
|
|
34
36
|
})
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { screen, waitFor } from "@testing-library/react"
|
|
2
|
+
import { renderWithIntl } from "~tests"
|
|
1
3
|
import { validateEndDateBeforeStartDate } from "./validateEndDateBeforeStartDate"
|
|
2
4
|
|
|
3
5
|
describe("validateEndDateBeforeStartDate()", () => {
|
|
@@ -83,19 +85,28 @@ describe("validateEndDateBeforeStartDate()", () => {
|
|
|
83
85
|
})
|
|
84
86
|
})
|
|
85
87
|
|
|
86
|
-
it("returns a response with an error status and validation message", () => {
|
|
87
|
-
|
|
88
|
+
it("returns a response with an error status and validation message", async () => {
|
|
89
|
+
const { validationMessage, ...response } = result.validationResponse
|
|
90
|
+
|
|
91
|
+
expect(response).toStrictEqual({
|
|
88
92
|
date: endDate,
|
|
89
93
|
inputValue: endDateInputValue,
|
|
90
|
-
validationMessage: {
|
|
91
|
-
status: "error",
|
|
92
|
-
message: 'Cannot be earlier than the selection in "Start date"',
|
|
93
|
-
},
|
|
94
94
|
isInvalid: false,
|
|
95
95
|
isDisabled: false,
|
|
96
96
|
isEmpty: false,
|
|
97
97
|
isValidDate: true,
|
|
98
98
|
})
|
|
99
|
+
|
|
100
|
+
expect(validationMessage?.status).toBe("error")
|
|
101
|
+
|
|
102
|
+
renderWithIntl(validationMessage?.message)
|
|
103
|
+
await waitFor(() => {
|
|
104
|
+
expect(
|
|
105
|
+
screen.getByText(
|
|
106
|
+
'Cannot be earlier than the selection in "Start date"'
|
|
107
|
+
)
|
|
108
|
+
).toBeVisible()
|
|
109
|
+
})
|
|
99
110
|
})
|
|
100
111
|
|
|
101
112
|
it("returns the new end date", () => {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react"
|
|
2
|
+
import { FormattedMessage } from "@cultureamp/i18n-react-intl"
|
|
2
3
|
import { DateValidationResponse } from "~components/Filter/FilterDatePicker"
|
|
3
4
|
import { getNodeText } from "~utils/getNodeText"
|
|
4
5
|
import { isValidRange } from "./isValidRange"
|
|
@@ -37,9 +38,14 @@ export const validateEndDateBeforeStartDate = ({
|
|
|
37
38
|
...baseResponse,
|
|
38
39
|
validationMessage: {
|
|
39
40
|
status: "error",
|
|
40
|
-
message:
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
message: (
|
|
42
|
+
<FormattedMessage
|
|
43
|
+
id="date.validation.rangeEndBeforeRangeStart"
|
|
44
|
+
defaultMessage='Cannot be earlier than the selection in "{startDateFieldLabel}"'
|
|
45
|
+
description="Error message when the user tries to select an end date earlier than the start date"
|
|
46
|
+
values={{ startDateFieldLabel: getNodeText(startDateFieldLabel) }}
|
|
47
|
+
/>
|
|
48
|
+
),
|
|
43
49
|
},
|
|
44
50
|
},
|
|
45
51
|
newDate: endDate,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React, { useState } from "react"
|
|
2
2
|
import { Selection } from "@react-types/shared"
|
|
3
|
-
import {
|
|
3
|
+
import { waitFor } from "@testing-library/react"
|
|
4
4
|
import userEvent from "@testing-library/user-event"
|
|
5
|
+
import { renderWithIntl } from "~tests"
|
|
5
6
|
import { FilterMultiSelect, FilterMultiSelectProps } from "./FilterMultiSelect"
|
|
6
7
|
import { ItemType } from "./types"
|
|
7
8
|
import { getSelectedOptionLabels } from "./utils"
|
|
@@ -72,13 +73,8 @@ const FilterMultiSelectWrapper = ({
|
|
|
72
73
|
}
|
|
73
74
|
|
|
74
75
|
describe("<FilterMultiSelect>", () => {
|
|
75
|
-
it("does not show the popover initially", () => {
|
|
76
|
-
const { queryByRole } = render(<FilterMultiSelectWrapper />)
|
|
77
|
-
expect(queryByRole("listbox")).not.toBeInTheDocument()
|
|
78
|
-
})
|
|
79
|
-
|
|
80
76
|
it("opens the popover using the trigger button", async () => {
|
|
81
|
-
const { getByRole } =
|
|
77
|
+
const { getByRole } = renderWithIntl(<FilterMultiSelectWrapper />)
|
|
82
78
|
|
|
83
79
|
const triggerButton = getByRole("button", { name: "Engineer : Front-End" })
|
|
84
80
|
await user.click(triggerButton)
|
|
@@ -89,7 +85,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
89
85
|
})
|
|
90
86
|
|
|
91
87
|
it("selects an unselected option on click", async () => {
|
|
92
|
-
const { getByRole } =
|
|
88
|
+
const { getByRole } = renderWithIntl(<FilterMultiSelectWrapper isOpen />)
|
|
93
89
|
|
|
94
90
|
const devOpsOption = getByRole("option", {
|
|
95
91
|
name: "Dev-ops",
|
|
@@ -103,7 +99,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
103
99
|
})
|
|
104
100
|
|
|
105
101
|
it("deselects a selected option on click", async () => {
|
|
106
|
-
const { getByRole } =
|
|
102
|
+
const { getByRole } = renderWithIntl(<FilterMultiSelectWrapper isOpen />)
|
|
107
103
|
|
|
108
104
|
const devOpsOption = getByRole("option", {
|
|
109
105
|
name: "Front-End",
|
|
@@ -117,7 +113,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
117
113
|
})
|
|
118
114
|
|
|
119
115
|
it("filters out options which do not match the search term", async () => {
|
|
120
|
-
const { getByRole, getAllByRole } =
|
|
116
|
+
const { getByRole, getAllByRole } = renderWithIntl(
|
|
121
117
|
<FilterMultiSelectWrapper isOpen />
|
|
122
118
|
)
|
|
123
119
|
expect(getAllByRole("option")).toHaveLength(5)
|
|
@@ -131,7 +127,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
131
127
|
|
|
132
128
|
describe("Clear button", () => {
|
|
133
129
|
it("deselects all options when unfiltered", async () => {
|
|
134
|
-
const { getByRole, queryAllByRole } =
|
|
130
|
+
const { getByRole, queryAllByRole } = renderWithIntl(
|
|
135
131
|
<FilterMultiSelectWrapper
|
|
136
132
|
isOpen
|
|
137
133
|
selectedKeys={new Set(["id-fe", "id-devops"])}
|
|
@@ -147,7 +143,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
147
143
|
})
|
|
148
144
|
|
|
149
145
|
it("deselects only selected filtered options", async () => {
|
|
150
|
-
const { getByRole, queryAllByRole } =
|
|
146
|
+
const { getByRole, queryAllByRole } = renderWithIntl(
|
|
151
147
|
<FilterMultiSelectWrapper
|
|
152
148
|
isOpen
|
|
153
149
|
selectedKeys={new Set(["id-fe", "id-devops"])}
|
|
@@ -176,7 +172,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
176
172
|
options.filter(option => option.hasAttribute("aria-disabled"))
|
|
177
173
|
|
|
178
174
|
it("selects all non-disabled options when unfiltered", async () => {
|
|
179
|
-
const { getByRole, queryAllByRole } =
|
|
175
|
+
const { getByRole, queryAllByRole } = renderWithIntl(
|
|
180
176
|
<FilterMultiSelectWrapper isOpen selectedKeys={new Set([])} />
|
|
181
177
|
)
|
|
182
178
|
|
|
@@ -191,7 +187,7 @@ describe("<FilterMultiSelect>", () => {
|
|
|
191
187
|
})
|
|
192
188
|
|
|
193
189
|
it("selects only non-disabled filtered options", async () => {
|
|
194
|
-
const { getByRole, queryAllByRole } =
|
|
190
|
+
const { getByRole, queryAllByRole } = renderWithIntl(
|
|
195
191
|
<FilterMultiSelectWrapper isOpen selectedKeys={new Set([])} />
|
|
196
192
|
)
|
|
197
193
|
|
|
@@ -8,7 +8,7 @@ import * as FilterMultiSelectStories from "./FilterMultiSelect.stories"
|
|
|
8
8
|
|
|
9
9
|
<ResourceLinks
|
|
10
10
|
sourceCode="https://github.com/cultureamp/kaizen-design-system/tree/main/packages/components/src/FilterMultiSelect"
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
/>
|
|
13
13
|
|
|
14
14
|
<KAIOInstallation exportNames="FilterMultiSelect" />
|