@patternfly/react-core 6.2.2 → 6.3.0-prerelease.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/CHANGELOG.md +34 -10
- package/components/package.json +1 -1
- package/deprecated/package.json +1 -1
- package/dist/dynamic/components/AboutModal/package.json +1 -1
- package/dist/dynamic/components/Accordion/package.json +1 -1
- package/dist/dynamic/components/ActionList/package.json +1 -1
- package/dist/dynamic/components/Alert/package.json +1 -1
- package/dist/dynamic/components/Avatar/package.json +1 -1
- package/dist/dynamic/components/BackToTop/package.json +1 -1
- package/dist/dynamic/components/Backdrop/package.json +1 -1
- package/dist/dynamic/components/BackgroundImage/package.json +1 -1
- package/dist/dynamic/components/Badge/package.json +1 -1
- package/dist/dynamic/components/Banner/package.json +1 -1
- package/dist/dynamic/components/Brand/package.json +1 -1
- package/dist/dynamic/components/Breadcrumb/package.json +1 -1
- package/dist/dynamic/components/Button/package.json +1 -1
- package/dist/dynamic/components/CalendarMonth/package.json +1 -1
- package/dist/dynamic/components/Card/package.json +1 -1
- package/dist/dynamic/components/Checkbox/package.json +1 -1
- package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
- package/dist/dynamic/components/CodeBlock/package.json +1 -1
- package/dist/dynamic/components/Content/package.json +1 -1
- package/dist/dynamic/components/DataList/package.json +1 -1
- package/dist/dynamic/components/DatePicker/package.json +1 -1
- package/dist/dynamic/components/DescriptionList/package.json +1 -1
- package/dist/dynamic/components/Divider/package.json +1 -1
- package/dist/dynamic/components/Drawer/package.json +1 -1
- package/dist/dynamic/components/Dropdown/package.json +1 -1
- package/dist/dynamic/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/components/EmptyState/package.json +1 -1
- package/dist/dynamic/components/ExpandableSection/package.json +1 -1
- package/dist/dynamic/components/FileUpload/package.json +1 -1
- package/dist/dynamic/components/Form/package.json +1 -1
- package/dist/dynamic/components/FormSelect/package.json +1 -1
- package/dist/dynamic/components/HelperText/package.json +1 -1
- package/dist/dynamic/components/Hint/package.json +1 -1
- package/dist/dynamic/components/Icon/package.json +1 -1
- package/dist/dynamic/components/InputGroup/package.json +1 -1
- package/dist/dynamic/components/JumpLinks/package.json +1 -1
- package/dist/dynamic/components/Label/package.json +1 -1
- package/dist/dynamic/components/List/package.json +1 -1
- package/dist/dynamic/components/LoginPage/package.json +1 -1
- package/dist/dynamic/components/Masthead/package.json +1 -1
- package/dist/dynamic/components/Menu/package.json +1 -1
- package/dist/dynamic/components/MenuToggle/package.json +1 -1
- package/dist/dynamic/components/Modal/package.json +1 -1
- package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
- package/dist/dynamic/components/Nav/package.json +1 -1
- package/dist/dynamic/components/NotificationBadge/package.json +1 -1
- package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
- package/dist/dynamic/components/NumberInput/package.json +1 -1
- package/dist/dynamic/components/OverflowMenu/package.json +1 -1
- package/dist/dynamic/components/Page/package.json +1 -1
- package/dist/dynamic/components/Pagination/package.json +1 -1
- package/dist/dynamic/components/Panel/package.json +1 -1
- package/dist/dynamic/components/Popover/package.json +1 -1
- package/dist/dynamic/components/Progress/package.json +1 -1
- package/dist/dynamic/components/ProgressStepper/package.json +1 -1
- package/dist/dynamic/components/Radio/package.json +1 -1
- package/dist/dynamic/components/SearchInput/package.json +1 -1
- package/dist/dynamic/components/Select/package.json +1 -1
- package/dist/dynamic/components/Sidebar/package.json +1 -1
- package/dist/dynamic/components/SimpleList/package.json +1 -1
- package/dist/dynamic/components/Skeleton/package.json +1 -1
- package/dist/dynamic/components/SkipToContent/package.json +1 -1
- package/dist/dynamic/components/Slider/package.json +1 -1
- package/dist/dynamic/components/Spinner/package.json +1 -1
- package/dist/dynamic/components/Switch/package.json +1 -1
- package/dist/dynamic/components/Tabs/package.json +1 -1
- package/dist/dynamic/components/TextArea/package.json +1 -1
- package/dist/dynamic/components/TextInput/package.json +1 -1
- package/dist/dynamic/components/TextInputGroup/package.json +1 -1
- package/dist/dynamic/components/TimePicker/package.json +1 -1
- package/dist/dynamic/components/Timestamp/package.json +1 -1
- package/dist/dynamic/components/Title/package.json +1 -1
- package/dist/dynamic/components/ToggleGroup/package.json +1 -1
- package/dist/dynamic/components/Toolbar/package.json +1 -1
- package/dist/dynamic/components/Tooltip/package.json +1 -1
- package/dist/dynamic/components/TreeView/package.json +1 -1
- package/dist/dynamic/components/Truncate/package.json +1 -1
- package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
- package/dist/dynamic/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
- package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
- package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
- package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
- package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/package.json +1 -1
- package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
- package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
- package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
- package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
- package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
- package/dist/dynamic/helpers/constants/package.json +1 -1
- package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
- package/dist/dynamic/helpers/fileUtils/package.json +1 -1
- package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
- package/dist/dynamic/helpers/package.json +1 -1
- package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
- package/dist/dynamic/helpers/typeUtils/package.json +1 -1
- package/dist/dynamic/helpers/useInterval/package.json +1 -1
- package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
- package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
- package/dist/dynamic/helpers/util/package.json +1 -1
- package/dist/dynamic/layouts/Bullseye/package.json +1 -1
- package/dist/dynamic/layouts/Flex/package.json +1 -1
- package/dist/dynamic/layouts/Gallery/package.json +1 -1
- package/dist/dynamic/layouts/Grid/package.json +1 -1
- package/dist/dynamic/layouts/Level/package.json +1 -1
- package/dist/dynamic/layouts/Split/package.json +1 -1
- package/dist/dynamic/layouts/Stack/package.json +1 -1
- package/dist/dynamic/styles/package.json +1 -1
- package/dist/esm/components/Divider/Divider.d.ts +2 -0
- package/dist/esm/components/Divider/Divider.d.ts.map +1 -1
- package/dist/esm/components/Divider/Divider.js +2 -2
- package/dist/esm/components/Divider/Divider.js.map +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
- package/dist/esm/components/Form/FormFieldGroup.d.ts +1 -1
- package/dist/esm/components/Form/FormFieldGroup.d.ts.map +1 -1
- package/dist/esm/components/Form/FormFieldGroupExpandable.d.ts +1 -1
- package/dist/esm/components/Form/FormFieldGroupExpandable.d.ts.map +1 -1
- package/dist/esm/components/Form/InternalFormFieldGroup.d.ts +1 -1
- package/dist/esm/components/Form/InternalFormFieldGroup.d.ts.map +1 -1
- package/dist/esm/components/List/List.d.ts.map +1 -1
- package/dist/esm/components/List/List.js +2 -2
- package/dist/esm/components/List/List.js.map +1 -1
- package/dist/esm/components/List/ListItem.d.ts +4 -2
- package/dist/esm/components/List/ListItem.d.ts.map +1 -1
- package/dist/esm/components/List/ListItem.js +2 -2
- package/dist/esm/components/List/ListItem.js.map +1 -1
- package/dist/esm/components/Nav/Nav.d.ts +1 -1
- package/dist/esm/components/Nav/Nav.d.ts.map +1 -1
- package/dist/esm/components/Nav/NavItemSeparator.d.ts.map +1 -1
- package/dist/esm/components/Nav/NavItemSeparator.js +2 -2
- package/dist/esm/components/Nav/NavItemSeparator.js.map +1 -1
- package/dist/esm/components/Progress/ProgressContainer.d.ts.map +1 -1
- package/dist/esm/components/Progress/ProgressContainer.js +12 -6
- package/dist/esm/components/Progress/ProgressContainer.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.d.ts +1 -1
- package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/esm/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarGroup.d.ts +1 -1
- package/dist/esm/components/Toolbar/ToolbarGroup.d.ts.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarItem.d.ts.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarItem.js +4 -3
- package/dist/esm/components/Toolbar/ToolbarItem.js.map +1 -1
- package/dist/esm/components/TreeView/TreeViewListItem.d.ts +2 -2
- package/dist/esm/components/TreeView/TreeViewListItem.d.ts.map +1 -1
- package/dist/esm/components/Truncate/Truncate.d.ts +11 -1
- package/dist/esm/components/Truncate/Truncate.d.ts.map +1 -1
- package/dist/esm/components/Truncate/Truncate.js +46 -10
- package/dist/esm/components/Truncate/Truncate.js.map +1 -1
- package/dist/esm/components/Wizard/WizardNavInternal.js.map +1 -1
- package/dist/js/components/Divider/Divider.d.ts +2 -0
- package/dist/js/components/Divider/Divider.d.ts.map +1 -1
- package/dist/js/components/Divider/Divider.js +2 -2
- package/dist/js/components/Divider/Divider.js.map +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSection.d.ts +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
- package/dist/js/components/Form/FormFieldGroup.d.ts +1 -1
- package/dist/js/components/Form/FormFieldGroup.d.ts.map +1 -1
- package/dist/js/components/Form/FormFieldGroupExpandable.d.ts +1 -1
- package/dist/js/components/Form/FormFieldGroupExpandable.d.ts.map +1 -1
- package/dist/js/components/Form/InternalFormFieldGroup.d.ts +1 -1
- package/dist/js/components/Form/InternalFormFieldGroup.d.ts.map +1 -1
- package/dist/js/components/List/List.d.ts.map +1 -1
- package/dist/js/components/List/List.js +2 -2
- package/dist/js/components/List/List.js.map +1 -1
- package/dist/js/components/List/ListItem.d.ts +4 -2
- package/dist/js/components/List/ListItem.d.ts.map +1 -1
- package/dist/js/components/List/ListItem.js +2 -2
- package/dist/js/components/List/ListItem.js.map +1 -1
- package/dist/js/components/Nav/Nav.d.ts +1 -1
- package/dist/js/components/Nav/Nav.d.ts.map +1 -1
- package/dist/js/components/Nav/NavItemSeparator.d.ts.map +1 -1
- package/dist/js/components/Nav/NavItemSeparator.js +2 -2
- package/dist/js/components/Nav/NavItemSeparator.js.map +1 -1
- package/dist/js/components/Progress/ProgressContainer.d.ts.map +1 -1
- package/dist/js/components/Progress/ProgressContainer.js +10 -4
- package/dist/js/components/Progress/ProgressContainer.js.map +1 -1
- package/dist/js/components/Tabs/Tabs.d.ts +1 -1
- package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/js/components/Tabs/Tabs.js.map +1 -1
- package/dist/js/components/Toolbar/ToolbarGroup.d.ts +1 -1
- package/dist/js/components/Toolbar/ToolbarGroup.d.ts.map +1 -1
- package/dist/js/components/Toolbar/ToolbarItem.d.ts.map +1 -1
- package/dist/js/components/Toolbar/ToolbarItem.js +4 -3
- package/dist/js/components/Toolbar/ToolbarItem.js.map +1 -1
- package/dist/js/components/TreeView/TreeViewListItem.d.ts +2 -2
- package/dist/js/components/TreeView/TreeViewListItem.d.ts.map +1 -1
- package/dist/js/components/Truncate/Truncate.d.ts +11 -1
- package/dist/js/components/Truncate/Truncate.d.ts.map +1 -1
- package/dist/js/components/Truncate/Truncate.js +45 -9
- package/dist/js/components/Truncate/Truncate.js.map +1 -1
- package/dist/js/components/Wizard/WizardNavInternal.js.map +1 -1
- package/dist/umd/assets/{output-AyA9e2xy.css → output-CTQ3-b33.css} +19405 -19318
- package/dist/umd/react-core.min.js +1 -1
- package/helpers/package.json +1 -1
- package/layouts/package.json +1 -1
- package/next/package.json +1 -1
- package/package.json +8 -8
- package/src/components/Alert/examples/Alert.md +0 -3
- package/src/components/Card/examples/Card.md +4 -0
- package/src/components/Card/examples/CardHeaderWraps.tsx +26 -0
- package/src/components/CodeBlock/examples/CodeBlockBasic.tsx +1 -1
- package/src/components/CodeBlock/examples/CodeBlockExpandable.tsx +10 -3
- package/src/components/DescriptionList/examples/DescriptionListAutoFitBasic.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListAutoFitMinWidthModified.tsx +5 -1
- package/src/components/DescriptionList/examples/DescriptionListAutoFitMinWidthResponsive.tsx +5 -1
- package/src/components/DescriptionList/examples/DescriptionListBasic.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListColumnFill.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListCompact.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListCompactHorizontal.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListDefaultAutoColumn.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListDefaultInlineGrid.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListDefaultResponsiveColumns.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListDefaultThreeColLg.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListDefaultTwoCol.tsx +1 -0
- package/src/components/DescriptionList/examples/DescriptionListDisplaySizeAndCardHorizontalTermWidth.tsx +7 -1
- package/src/components/DescriptionList/examples/DescriptionListDisplaySizeAndCardThreeColumn.tsx +5 -1
- package/src/components/DescriptionList/examples/DescriptionListFluidHorizontal.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListHorizontal.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListHorizontalAutoColumn.tsx +6 -1
- package/src/components/DescriptionList/examples/DescriptionListHorizontalCustomTermWidth.tsx +1 -0
- package/src/components/DescriptionList/examples/DescriptionListHorizontalResponsiveColumns.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListHorizontalThreeColLg.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListHorizontalTwoCol.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListIconsOnTerms.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListResponsiveHoriVertGroup.tsx +1 -0
- package/src/components/DescriptionList/examples/DescriptionListWithCard.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListWithLargeDisplaySize.tsx +1 -1
- package/src/components/DescriptionList/examples/DescriptionListWithLargeDisplaySizeAndCard.tsx +5 -1
- package/src/components/DescriptionList/examples/DescriptionListWithTermHelpText.tsx +1 -1
- package/src/components/Divider/Divider.tsx +4 -1
- package/src/components/Divider/__tests__/Divider.test.tsx +10 -0
- package/src/components/DualListSelector/examples/DualListSelectorBasicSearch.tsx +1 -0
- package/src/components/DualListSelector/examples/DualListSelectorComplexOptionsActions.tsx +1 -0
- package/src/components/DualListSelector/examples/DualListSelectorTree.tsx +1 -0
- package/src/components/ExpandableSection/ExpandableSection.tsx +1 -1
- package/src/components/ExpandableSection/ExpandableSectionToggle.tsx +1 -1
- package/src/components/Form/FormFieldGroup.tsx +1 -1
- package/src/components/Form/FormFieldGroupExpandable.tsx +1 -1
- package/src/components/Form/InternalFormFieldGroup.tsx +1 -1
- package/src/components/List/List.tsx +3 -0
- package/src/components/List/ListItem.tsx +7 -4
- package/src/components/List/__tests__/List.test.tsx +97 -101
- package/src/components/List/__tests__/ListItem.test.tsx +51 -0
- package/src/components/List/__tests__/__snapshots__/List.test.tsx.snap +4 -261
- package/src/components/List/__tests__/__snapshots__/ListItem.test.tsx.snap +34 -0
- package/src/components/Nav/Nav.tsx +1 -1
- package/src/components/Nav/NavItemSeparator.tsx +2 -1
- package/src/components/Progress/ProgressContainer.tsx +23 -16
- package/src/components/Progress/examples/ProgressTitleOutsideOfProgressBar.tsx +1 -1
- package/src/components/SearchInput/examples/SearchInputAdvanced.tsx +1 -0
- package/src/components/SearchInput/examples/SearchInputBasic.tsx +1 -0
- package/src/components/SearchInput/examples/SearchInputFocusSearch.tsx +7 -1
- package/src/components/SearchInput/examples/SearchInputWithExpandable.tsx +1 -0
- package/src/components/SearchInput/examples/SearchInputWithNavigableOptions.tsx +1 -0
- package/src/components/SearchInput/examples/SearchInputWithResultCount.tsx +1 -0
- package/src/components/SearchInput/examples/SearchInputWithSubmitButton.tsx +1 -0
- package/src/components/Tabs/Tabs.tsx +3 -1
- package/src/components/Toolbar/ToolbarGroup.tsx +1 -1
- package/src/components/Toolbar/ToolbarItem.tsx +11 -1
- package/src/components/TreeView/TreeViewListItem.tsx +2 -2
- package/src/components/TreeView/__tests__/TreeView.test.tsx +26 -1
- package/src/components/TreeView/__tests__/TreeViewList.test.tsx +46 -0
- package/src/components/TreeView/__tests__/TreeViewListItem.test.tsx +278 -156
- package/src/components/TreeView/__tests__/TreeViewSearch.test.tsx +12 -1
- package/src/components/TreeView/__tests__/__snapshots__/TreeView.test.tsx.snap +9 -0
- package/src/components/Truncate/Truncate.tsx +118 -32
- package/src/components/Truncate/__tests__/Truncate.test.tsx +71 -3
- package/src/components/Truncate/__tests__/__snapshots__/Truncate.test.tsx.snap +54 -14
- package/src/components/Truncate/examples/Truncate.md +32 -36
- package/src/components/Truncate/examples/TruncateCustomTooltipPosition.tsx +10 -0
- package/src/components/Truncate/examples/TruncateDefault.tsx +7 -0
- package/src/components/Truncate/examples/TruncateMaxChars.tsx +27 -0
- package/src/components/Truncate/examples/TruncateMiddle.tsx +11 -0
- package/src/components/Truncate/examples/TruncateStart.tsx +7 -0
- package/src/components/Wizard/WizardNavInternal.tsx +1 -1
- package/src/components/Wizard/examples/WizardGetCurrentStep.tsx +1 -1
- package/src/demos/DescriptionList/examples/DescriptionListBasic.tsx +1 -1
- package/src/demos/DescriptionList/examples/DescriptionListInDrawer.tsx +1 -1
- package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +3 -3
- package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +3 -3
- package/src/demos/RTL/examples/PaginatedTable.jsx +2 -2
- package/src/demos/RTL/examples/PaginatedTable.tsx +2 -2
- package/src/demos/SearchInput/SearchInput.md +2 -0
- package/src/demos/examples/Card/CardDetails.tsx +2 -2
- package/src/demos/examples/Card/CardEventsView.tsx +1 -1
- package/src/demos/examples/Card/CardLogView.tsx +1 -1
- package/src/demos/examples/Card/CardStatusTabbed.tsx +3 -3
- package/src/demos/examples/Page/PageContextSelector.tsx +5 -3
- package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +3 -3
- package/src/demos/examples/Page/PageStickySectionGroup.tsx +3 -3
- package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +3 -3
- package/src/demos/examples/PrimaryDetail/PrimaryDetailCardView.tsx +5 -4
- package/src/demos/examples/PrimaryDetail/PrimaryDetailContentPadding.tsx +3 -3
- package/src/demos/examples/PrimaryDetail/PrimaryDetailDataListInCard.tsx +3 -3
- package/src/demos/examples/PrimaryDetail/PrimaryDetailFullPage.tsx +3 -3
- package/src/demos/examples/PrimaryDetail/PrimaryDetailInlineModifier.tsx +3 -3
- package/src/demos/examples/PrimaryDetail/PrimaryDetailSimpleListInCard.tsx +3 -3
- package/src/demos/examples/Skeleton/SkeletonCard.tsx +5 -3
- package/src/demos/examples/Toolbar/ConsoleLogViewerToolbar.tsx +1 -1
- package/src/demos/examples/Wizard/InModal.tsx +1 -1
- package/src/demos/examples/Wizard/InPage.tsx +1 -1
- package/src/demos/examples/Wizard/InPageWithDrawer.tsx +3 -3
- package/src/demos/examples/Wizard/InPageWithDrawerInformationalStep.tsx +3 -3
- package/src/components/List/__tests__/Generated/ListItem.test.tsx +0 -12
- package/src/components/List/__tests__/Generated/__snapshots__/ListItem.test.tsx.snap +0 -13
|
@@ -49,7 +49,7 @@ test(`Renders children when toggle is clicked`, async () => {
|
|
|
49
49
|
const user = userEvent.setup();
|
|
50
50
|
render(<TreeViewListItem {...requiredProps}>Content</TreeViewListItem>);
|
|
51
51
|
|
|
52
|
-
await user.click(screen.getByRole('button'));
|
|
52
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
53
53
|
|
|
54
54
|
expect(screen.getByText('Content')).toBeVisible();
|
|
55
55
|
});
|
|
@@ -107,7 +107,7 @@ test(`Renders expandable toggle as button with aria-labelledby when hasCheckbox
|
|
|
107
107
|
Content
|
|
108
108
|
</TreeViewListItem>
|
|
109
109
|
);
|
|
110
|
-
const toggle = screen.getByRole('button');
|
|
110
|
+
const toggle = screen.getByRole('button', { name: requiredProps.name });
|
|
111
111
|
|
|
112
112
|
expect(toggle).toHaveClass(styles.treeViewNodeToggle);
|
|
113
113
|
expect(toggle).toHaveAccessibleName(requiredProps.name);
|
|
@@ -119,10 +119,9 @@ test(`Renders expandable toggle as button with aria-labelledby when isSelectable
|
|
|
119
119
|
Content
|
|
120
120
|
</TreeViewListItem>
|
|
121
121
|
);
|
|
122
|
-
const
|
|
122
|
+
const buttons = screen.getAllByRole('button', { name: requiredProps.name });
|
|
123
123
|
|
|
124
|
-
expect(
|
|
125
|
-
expect(toggle).toHaveAccessibleName(requiredProps.name);
|
|
124
|
+
expect(buttons[0]).toHaveClass(styles.treeViewNodeToggle);
|
|
126
125
|
});
|
|
127
126
|
|
|
128
127
|
test(`Renders name prop with class ${styles.treeViewNodeText}`, () => {
|
|
@@ -140,7 +139,7 @@ test(`Renders name prop in span by default`, () => {
|
|
|
140
139
|
test(`Renders name prop in button when isSelectable is passed`, () => {
|
|
141
140
|
render(<TreeViewListItem isSelectable {...requiredProps} />);
|
|
142
141
|
|
|
143
|
-
expect(screen.
|
|
142
|
+
expect(screen.getByRole('button', { name: requiredProps.name })).toBeInTheDocument();
|
|
144
143
|
});
|
|
145
144
|
|
|
146
145
|
test('Does not render title prop by default', () => {
|
|
@@ -313,7 +312,7 @@ test('Passes badgeProps when hasBadge and customBadgeContent are passed', () =>
|
|
|
313
312
|
test(`Renders ${styles.treeViewNode} element as button by default`, () => {
|
|
314
313
|
render(<TreeViewListItem {...requiredProps} />);
|
|
315
314
|
|
|
316
|
-
expect(screen.getByRole('button')).toHaveClass(styles.treeViewNode);
|
|
315
|
+
expect(screen.getByRole('button', { name: requiredProps.name })).toHaveClass(styles.treeViewNode);
|
|
317
316
|
});
|
|
318
317
|
|
|
319
318
|
test(`Renders ${styles.treeViewNode} element as label when hasCheckbox is passed`, () => {
|
|
@@ -346,8 +345,8 @@ test(`Renders ${styles.treeViewNode} element with for and id attributes when has
|
|
|
346
345
|
|
|
347
346
|
const treeViewNode = screen.getByRole('treeitem').querySelector(`.${styles.treeViewNode}`);
|
|
348
347
|
|
|
349
|
-
expect(treeViewNode).toHaveAttribute('for');
|
|
350
|
-
expect(treeViewNode).toHaveAttribute('id');
|
|
348
|
+
expect(treeViewNode).toHaveAttribute('for', expect.stringMatching(/checkbox-id\d+/));
|
|
349
|
+
expect(treeViewNode).toHaveAttribute('id', expect.stringMatching(/label-checkbox-id\d+/));
|
|
351
350
|
});
|
|
352
351
|
|
|
353
352
|
test(`Renders ${styles.treeViewNode} element with id attribute when isSelectable and children are passed`, () => {
|
|
@@ -359,7 +358,7 @@ test(`Renders ${styles.treeViewNode} element with id attribute when isSelectable
|
|
|
359
358
|
|
|
360
359
|
const treeViewNode = screen.getByRole('treeitem').querySelector(`.${styles.treeViewNode}`);
|
|
361
360
|
|
|
362
|
-
expect(treeViewNode).toHaveAttribute('id');
|
|
361
|
+
expect(treeViewNode).toHaveAttribute('id', expect.stringMatching(/selectable-id\d+/));
|
|
363
362
|
});
|
|
364
363
|
|
|
365
364
|
test(`Does not render ${styles.treeViewNode} element with additional classes by default`, () => {
|
|
@@ -402,53 +401,60 @@ test(`Does not render ${styles.treeViewNode} element with ${styles.modifiers.cur
|
|
|
402
401
|
expect(treeViewNode).not.toHaveClass(styles.modifiers.current);
|
|
403
402
|
});
|
|
404
403
|
|
|
405
|
-
describe('
|
|
404
|
+
describe('Callback props', () => {
|
|
405
|
+
const user = userEvent.setup();
|
|
406
406
|
const compareItemsMock = jest.fn();
|
|
407
|
+
const onCheckMock = jest.fn();
|
|
408
|
+
const onSelectMock = jest.fn();
|
|
409
|
+
const onExpandMock = jest.fn();
|
|
410
|
+
const onCollapseMock = jest.fn();
|
|
411
|
+
|
|
407
412
|
const activeItems = [{ name: 'Active item' }];
|
|
413
|
+
const parentItem = { name: 'Parent item' };
|
|
408
414
|
const itemData = { name: 'Item data' };
|
|
409
415
|
|
|
410
|
-
test('
|
|
416
|
+
test('Does not call compareItems when not passed in', () => {
|
|
411
417
|
render(<TreeViewListItem {...requiredProps}>Content</TreeViewListItem>);
|
|
412
418
|
|
|
413
419
|
expect(compareItemsMock).not.toHaveBeenCalled();
|
|
414
420
|
});
|
|
415
421
|
|
|
416
|
-
test('
|
|
422
|
+
test('Does not call compareItems when isSelectable is passed but activeItems is not passed', () => {
|
|
417
423
|
render(
|
|
418
424
|
<TreeViewListItem
|
|
419
425
|
compareItems={compareItemsMock}
|
|
420
426
|
isSelectable
|
|
421
|
-
|
|
422
|
-
itemData={itemData}
|
|
427
|
+
itemData={{ name: 'Item data' }}
|
|
423
428
|
{...requiredProps}
|
|
424
429
|
>
|
|
425
430
|
Content
|
|
426
431
|
</TreeViewListItem>
|
|
427
432
|
);
|
|
428
433
|
|
|
429
|
-
expect(compareItemsMock).
|
|
430
|
-
expect(compareItemsMock).toHaveBeenCalledWith(
|
|
431
|
-
expect.objectContaining(activeItems[0]),
|
|
432
|
-
expect.objectContaining(itemData)
|
|
433
|
-
);
|
|
434
|
+
expect(compareItemsMock).not.toHaveBeenCalled();
|
|
434
435
|
});
|
|
435
436
|
|
|
436
|
-
test('
|
|
437
|
+
test('Calls compareItems when isSelectable and activeItems are passed', () => {
|
|
437
438
|
render(
|
|
438
439
|
<TreeViewListItem
|
|
439
440
|
compareItems={compareItemsMock}
|
|
440
441
|
isSelectable
|
|
441
|
-
|
|
442
|
+
activeItems={activeItems}
|
|
443
|
+
itemData={itemData}
|
|
442
444
|
{...requiredProps}
|
|
443
445
|
>
|
|
444
446
|
Content
|
|
445
447
|
</TreeViewListItem>
|
|
446
448
|
);
|
|
447
449
|
|
|
448
|
-
expect(compareItemsMock).
|
|
450
|
+
expect(compareItemsMock).toHaveBeenCalledTimes(1);
|
|
451
|
+
expect(compareItemsMock).toHaveBeenCalledWith(
|
|
452
|
+
expect.objectContaining(activeItems[0]),
|
|
453
|
+
expect.objectContaining(itemData)
|
|
454
|
+
);
|
|
449
455
|
});
|
|
450
456
|
|
|
451
|
-
test('
|
|
457
|
+
test('Calls compareItems when children and activeItems are passed', () => {
|
|
452
458
|
render(
|
|
453
459
|
<TreeViewListItem
|
|
454
460
|
compareItems={compareItemsMock}
|
|
@@ -464,190 +470,306 @@ describe('compareItems callback', () => {
|
|
|
464
470
|
expect.objectContaining(itemData)
|
|
465
471
|
);
|
|
466
472
|
});
|
|
467
|
-
});
|
|
468
473
|
|
|
469
|
-
test('Does not call onCheck
|
|
470
|
-
|
|
471
|
-
const onCheckMock = jest.fn();
|
|
474
|
+
test('Does not call onCheck when not passed in', async () => {
|
|
475
|
+
render(<TreeViewListItem hasCheckbox {...requiredProps} />);
|
|
472
476
|
|
|
473
|
-
|
|
477
|
+
await user.click(screen.getByRole('checkbox'));
|
|
474
478
|
|
|
475
|
-
|
|
479
|
+
expect(onCheckMock).not.toHaveBeenCalled();
|
|
480
|
+
});
|
|
476
481
|
|
|
477
|
-
|
|
478
|
-
});
|
|
482
|
+
test('Does not call onCheck callback when checkbox is not clicked', async () => {
|
|
483
|
+
render(<TreeViewListItem onCheck={onCheckMock} hasCheckbox {...requiredProps} />);
|
|
479
484
|
|
|
480
|
-
|
|
481
|
-
const user = userEvent.setup();
|
|
482
|
-
const onCheckMock = jest.fn();
|
|
485
|
+
await user.click(document.body);
|
|
483
486
|
|
|
484
|
-
|
|
487
|
+
expect(onCheckMock).not.toHaveBeenCalled();
|
|
488
|
+
});
|
|
485
489
|
|
|
486
|
-
|
|
490
|
+
test('Calls onCheck callback when checkbox is clicked', async () => {
|
|
491
|
+
render(<TreeViewListItem onCheck={onCheckMock} hasCheckbox {...requiredProps} />);
|
|
487
492
|
|
|
488
|
-
|
|
489
|
-
expect(onCheckMock).toHaveBeenCalledWith(expect.any(Object), undefined, undefined);
|
|
490
|
-
});
|
|
493
|
+
await user.click(screen.getByRole('checkbox'));
|
|
491
494
|
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
+
expect(onCheckMock).toHaveBeenCalledTimes(1);
|
|
496
|
+
expect(onCheckMock).toHaveBeenCalledWith(expect.any(Object), undefined, undefined);
|
|
497
|
+
});
|
|
495
498
|
|
|
496
|
-
|
|
499
|
+
test('Calls onCheck with parentItem when passed in', async () => {
|
|
500
|
+
render(<TreeViewListItem parentItem={parentItem} onCheck={onCheckMock} hasCheckbox {...requiredProps} />);
|
|
497
501
|
|
|
498
|
-
|
|
502
|
+
await user.click(screen.getByRole('checkbox'));
|
|
499
503
|
|
|
500
|
-
|
|
501
|
-
|
|
504
|
+
expect(onCheckMock).toHaveBeenCalledTimes(1);
|
|
505
|
+
expect(onCheckMock).toHaveBeenCalledWith(expect.any(Object), undefined, parentItem);
|
|
506
|
+
});
|
|
502
507
|
|
|
503
|
-
test(
|
|
504
|
-
|
|
505
|
-
const onSelectMock = jest.fn();
|
|
508
|
+
test('Calls onCheck with itemData when passed in', async () => {
|
|
509
|
+
render(<TreeViewListItem itemData={itemData} onCheck={onCheckMock} hasCheckbox {...requiredProps} />);
|
|
506
510
|
|
|
507
|
-
|
|
511
|
+
await user.click(screen.getByRole('checkbox'));
|
|
508
512
|
|
|
509
|
-
|
|
513
|
+
expect(onCheckMock).toHaveBeenCalledTimes(1);
|
|
514
|
+
expect(onCheckMock).toHaveBeenCalledWith(expect.any(Object), itemData, undefined);
|
|
515
|
+
});
|
|
510
516
|
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
});
|
|
517
|
+
test('Does not call onSelect when not passed in', async () => {
|
|
518
|
+
render(<TreeViewListItem {...requiredProps} />);
|
|
514
519
|
|
|
515
|
-
|
|
516
|
-
const user = userEvent.setup();
|
|
517
|
-
const onSelectMock = jest.fn();
|
|
520
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
518
521
|
|
|
519
|
-
|
|
522
|
+
expect(onSelectMock).not.toHaveBeenCalled();
|
|
523
|
+
});
|
|
520
524
|
|
|
521
|
-
|
|
522
|
-
|
|
525
|
+
test(`Does not call onSelect when ${styles.treeViewNode} is not clicked`, async () => {
|
|
526
|
+
render(<TreeViewListItem onSelect={onSelectMock} {...requiredProps} />);
|
|
523
527
|
|
|
524
|
-
|
|
525
|
-
});
|
|
528
|
+
await user.click(document.body);
|
|
526
529
|
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
const onExpandMock = jest.fn();
|
|
530
|
+
expect(onSelectMock).not.toHaveBeenCalled();
|
|
531
|
+
});
|
|
530
532
|
|
|
531
|
-
|
|
533
|
+
test('Does not call onSelect when hasCheckbox is passed', async () => {
|
|
534
|
+
render(<TreeViewListItem onSelect={onSelectMock} hasCheckbox {...requiredProps} />);
|
|
532
535
|
|
|
533
|
-
|
|
536
|
+
const treeViewNode = screen.getByRole('treeitem').querySelector(`.${styles.treeViewNode}`);
|
|
537
|
+
await user.click(treeViewNode as Element);
|
|
534
538
|
|
|
535
|
-
|
|
536
|
-
});
|
|
539
|
+
expect(onSelectMock).not.toHaveBeenCalled();
|
|
540
|
+
});
|
|
537
541
|
|
|
538
|
-
test(`Calls
|
|
539
|
-
|
|
540
|
-
const onExpandMock = jest.fn();
|
|
542
|
+
test(`Calls onSelect when ${styles.treeViewNode} is clicked`, async () => {
|
|
543
|
+
render(<TreeViewListItem onSelect={onSelectMock} {...requiredProps} />);
|
|
541
544
|
|
|
542
|
-
|
|
543
|
-
<TreeViewListItem onExpand={onExpandMock} {...requiredProps}>
|
|
544
|
-
Content
|
|
545
|
-
</TreeViewListItem>
|
|
546
|
-
);
|
|
545
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
547
546
|
|
|
548
|
-
|
|
547
|
+
expect(onSelectMock).toHaveBeenCalledTimes(1);
|
|
548
|
+
expect(onSelectMock).toHaveBeenCalledWith(expect.any(Object), undefined, undefined);
|
|
549
|
+
});
|
|
549
550
|
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
});
|
|
551
|
+
test(`Calls onSelect with parentItem when passed in`, async () => {
|
|
552
|
+
render(<TreeViewListItem parentItem={parentItem} onSelect={onSelectMock} {...requiredProps} />);
|
|
553
553
|
|
|
554
|
-
|
|
555
|
-
const user = userEvent.setup();
|
|
556
|
-
const onExpandMock = jest.fn();
|
|
554
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
557
555
|
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
</TreeViewListItem>
|
|
562
|
-
);
|
|
556
|
+
expect(onSelectMock).toHaveBeenCalledTimes(1);
|
|
557
|
+
expect(onSelectMock).toHaveBeenCalledWith(expect.any(Object), undefined, parentItem);
|
|
558
|
+
});
|
|
563
559
|
|
|
564
|
-
|
|
565
|
-
|
|
560
|
+
test(`Calls onSelect with itemData when passed in`, async () => {
|
|
561
|
+
render(<TreeViewListItem itemData={itemData} onSelect={onSelectMock} {...requiredProps} />);
|
|
566
562
|
|
|
567
|
-
|
|
568
|
-
expect(onExpandMock).toHaveBeenCalledWith(expect.any(Object), undefined, undefined);
|
|
569
|
-
});
|
|
563
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
570
564
|
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
565
|
+
expect(onSelectMock).toHaveBeenCalledTimes(1);
|
|
566
|
+
expect(onSelectMock).toHaveBeenCalledWith(expect.any(Object), itemData, undefined);
|
|
567
|
+
});
|
|
574
568
|
|
|
575
|
-
|
|
576
|
-
<TreeViewListItem
|
|
577
|
-
Content
|
|
578
|
-
</TreeViewListItem>
|
|
579
|
-
);
|
|
569
|
+
test('Does not call onExpand when not passed in', async () => {
|
|
570
|
+
render(<TreeViewListItem {...requiredProps}>Content</TreeViewListItem>);
|
|
580
571
|
|
|
581
|
-
|
|
582
|
-
await user.click(toggle as Element);
|
|
572
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
583
573
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
});
|
|
574
|
+
expect(onExpandMock).not.toHaveBeenCalled();
|
|
575
|
+
});
|
|
587
576
|
|
|
588
|
-
test(
|
|
589
|
-
|
|
590
|
-
|
|
577
|
+
test(`Does not call onExpand when ${styles.treeViewNode} is collapsed and not clicked`, async () => {
|
|
578
|
+
render(
|
|
579
|
+
<TreeViewListItem onExpand={onExpandMock} {...requiredProps}>
|
|
580
|
+
Content
|
|
581
|
+
</TreeViewListItem>
|
|
582
|
+
);
|
|
591
583
|
|
|
592
|
-
|
|
593
|
-
<TreeViewListItem isExpanded {...requiredProps}>
|
|
594
|
-
Content
|
|
595
|
-
</TreeViewListItem>
|
|
596
|
-
);
|
|
584
|
+
await user.click(document.body);
|
|
597
585
|
|
|
598
|
-
|
|
586
|
+
expect(onExpandMock).not.toHaveBeenCalled();
|
|
587
|
+
});
|
|
599
588
|
|
|
600
|
-
|
|
601
|
-
|
|
589
|
+
test(`Does not call onExpand when ${styles.treeViewNode} is expanded and clicked`, async () => {
|
|
590
|
+
render(
|
|
591
|
+
<TreeViewListItem isExpanded onExpand={onExpandMock} {...requiredProps}>
|
|
592
|
+
Content
|
|
593
|
+
</TreeViewListItem>
|
|
594
|
+
);
|
|
602
595
|
|
|
603
|
-
|
|
604
|
-
const user = userEvent.setup();
|
|
605
|
-
const onCollapseMock = jest.fn();
|
|
596
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
606
597
|
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
Content
|
|
610
|
-
</TreeViewListItem>
|
|
611
|
-
);
|
|
598
|
+
expect(onExpandMock).not.toHaveBeenCalled();
|
|
599
|
+
});
|
|
612
600
|
|
|
613
|
-
|
|
601
|
+
test(`Calls onExpand when ${styles.treeViewNode} is collapsed and clicked`, async () => {
|
|
602
|
+
render(
|
|
603
|
+
<TreeViewListItem onExpand={onExpandMock} {...requiredProps}>
|
|
604
|
+
Content
|
|
605
|
+
</TreeViewListItem>
|
|
606
|
+
);
|
|
614
607
|
|
|
615
|
-
|
|
616
|
-
expect(onCollapseMock).toHaveBeenCalledWith(expect.any(Object), undefined, undefined);
|
|
617
|
-
});
|
|
608
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
618
609
|
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
610
|
+
expect(onExpandMock).toHaveBeenCalledTimes(1);
|
|
611
|
+
expect(onExpandMock).toHaveBeenCalledWith(expect.any(Object), undefined, undefined);
|
|
612
|
+
});
|
|
622
613
|
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
614
|
+
test(`Calls onExpand when ${styles.treeViewNodeToggle} is clicked and isSelectable is passed`, async () => {
|
|
615
|
+
render(
|
|
616
|
+
<TreeViewListItem isSelectable onExpand={onExpandMock} {...requiredProps}>
|
|
617
|
+
Content
|
|
618
|
+
</TreeViewListItem>
|
|
619
|
+
);
|
|
628
620
|
|
|
629
|
-
|
|
630
|
-
|
|
621
|
+
const toggle = screen.getByText(requiredProps.name).previousElementSibling;
|
|
622
|
+
await user.click(toggle as Element);
|
|
631
623
|
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
});
|
|
624
|
+
expect(onExpandMock).toHaveBeenCalledTimes(1);
|
|
625
|
+
expect(onExpandMock).toHaveBeenCalledWith(expect.any(Object), undefined, undefined);
|
|
626
|
+
});
|
|
635
627
|
|
|
636
|
-
test(`Calls
|
|
637
|
-
|
|
638
|
-
|
|
628
|
+
test(`Calls onExpand when ${styles.treeViewNodeToggle} is clicked and hasCheckbox is passed`, async () => {
|
|
629
|
+
render(
|
|
630
|
+
<TreeViewListItem hasCheckbox onExpand={onExpandMock} {...requiredProps}>
|
|
631
|
+
Content
|
|
632
|
+
</TreeViewListItem>
|
|
633
|
+
);
|
|
639
634
|
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
635
|
+
const toggle = screen.getByText(requiredProps.name).previousElementSibling?.previousElementSibling;
|
|
636
|
+
await user.click(toggle as Element);
|
|
637
|
+
|
|
638
|
+
expect(onExpandMock).toHaveBeenCalledTimes(1);
|
|
639
|
+
expect(onExpandMock).toHaveBeenCalledWith(expect.any(Object), undefined, undefined);
|
|
640
|
+
});
|
|
641
|
+
|
|
642
|
+
test(`Calls onExpand with parentItem when passed in`, async () => {
|
|
643
|
+
render(
|
|
644
|
+
<TreeViewListItem parentItem={parentItem} onExpand={onExpandMock} {...requiredProps}>
|
|
645
|
+
Content
|
|
646
|
+
</TreeViewListItem>
|
|
647
|
+
);
|
|
648
|
+
|
|
649
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
650
|
+
|
|
651
|
+
expect(onExpandMock).toHaveBeenCalledTimes(1);
|
|
652
|
+
expect(onExpandMock).toHaveBeenCalledWith(expect.any(Object), undefined, parentItem);
|
|
653
|
+
});
|
|
654
|
+
|
|
655
|
+
test(`Calls onExpand with itemData when passed in`, async () => {
|
|
656
|
+
render(
|
|
657
|
+
<TreeViewListItem itemData={itemData} onExpand={onExpandMock} {...requiredProps}>
|
|
658
|
+
Content
|
|
659
|
+
</TreeViewListItem>
|
|
660
|
+
);
|
|
661
|
+
|
|
662
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
663
|
+
|
|
664
|
+
expect(onExpandMock).toHaveBeenCalledTimes(1);
|
|
665
|
+
expect(onExpandMock).toHaveBeenCalledWith(expect.any(Object), itemData, undefined);
|
|
666
|
+
});
|
|
667
|
+
|
|
668
|
+
test('Does not call onCollapse when not passed in', async () => {
|
|
669
|
+
render(
|
|
670
|
+
<TreeViewListItem isExpanded {...requiredProps}>
|
|
671
|
+
Content
|
|
672
|
+
</TreeViewListItem>
|
|
673
|
+
);
|
|
674
|
+
|
|
675
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
676
|
+
|
|
677
|
+
expect(onCollapseMock).not.toHaveBeenCalled();
|
|
678
|
+
});
|
|
679
|
+
|
|
680
|
+
test(`Does not call onCollapse when ${styles.treeViewNode} is expanded and not clicked`, async () => {
|
|
681
|
+
render(
|
|
682
|
+
<TreeViewListItem isExpanded onCollapse={onCollapseMock} {...requiredProps}>
|
|
683
|
+
Content
|
|
684
|
+
</TreeViewListItem>
|
|
685
|
+
);
|
|
686
|
+
|
|
687
|
+
await user.click(document.body);
|
|
688
|
+
|
|
689
|
+
expect(onCollapseMock).not.toHaveBeenCalled();
|
|
690
|
+
});
|
|
691
|
+
|
|
692
|
+
test(`Does not call onCollapse when ${styles.treeViewNode} is collapsed and clicked`, async () => {
|
|
693
|
+
render(
|
|
694
|
+
<TreeViewListItem onCollapse={onCollapseMock} {...requiredProps}>
|
|
695
|
+
Content
|
|
696
|
+
</TreeViewListItem>
|
|
697
|
+
);
|
|
698
|
+
|
|
699
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
700
|
+
|
|
701
|
+
expect(onCollapseMock).not.toHaveBeenCalled();
|
|
702
|
+
});
|
|
703
|
+
|
|
704
|
+
test(`Calls onCollapse when ${styles.treeViewNode} is expanded and clicked`, async () => {
|
|
705
|
+
render(
|
|
706
|
+
<TreeViewListItem isExpanded onCollapse={onCollapseMock} {...requiredProps}>
|
|
707
|
+
Content
|
|
708
|
+
</TreeViewListItem>
|
|
709
|
+
);
|
|
710
|
+
|
|
711
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
712
|
+
|
|
713
|
+
expect(onCollapseMock).toHaveBeenCalledTimes(1);
|
|
714
|
+
expect(onCollapseMock).toHaveBeenCalledWith(expect.any(Object), undefined, undefined);
|
|
715
|
+
});
|
|
716
|
+
|
|
717
|
+
test(`Calls onCollapse when ${styles.treeViewNodeToggle} is clicked and isSelectable is passed`, async () => {
|
|
718
|
+
render(
|
|
719
|
+
<TreeViewListItem isExpanded isSelectable onCollapse={onCollapseMock} {...requiredProps}>
|
|
720
|
+
Content
|
|
721
|
+
</TreeViewListItem>
|
|
722
|
+
);
|
|
723
|
+
|
|
724
|
+
const toggle = screen.getByText(requiredProps.name).previousElementSibling;
|
|
725
|
+
await user.click(toggle as Element);
|
|
726
|
+
|
|
727
|
+
expect(onCollapseMock).toHaveBeenCalledTimes(1);
|
|
728
|
+
expect(onCollapseMock).toHaveBeenCalledWith(expect.any(Object), undefined, undefined);
|
|
729
|
+
});
|
|
730
|
+
|
|
731
|
+
test(`Calls onCollapse when ${styles.treeViewNodeToggle} is clicked and hasCheckbox is passed`, async () => {
|
|
732
|
+
render(
|
|
733
|
+
<TreeViewListItem isExpanded hasCheckbox onCollapse={onCollapseMock} {...requiredProps}>
|
|
734
|
+
Content
|
|
735
|
+
</TreeViewListItem>
|
|
736
|
+
);
|
|
645
737
|
|
|
646
|
-
|
|
647
|
-
|
|
738
|
+
const toggle = screen.getByText(requiredProps.name).previousElementSibling?.previousElementSibling;
|
|
739
|
+
await user.click(toggle as Element);
|
|
740
|
+
|
|
741
|
+
expect(onCollapseMock).toHaveBeenCalledTimes(1);
|
|
742
|
+
expect(onCollapseMock).toHaveBeenCalledWith(expect.any(Object), undefined, undefined);
|
|
743
|
+
});
|
|
648
744
|
|
|
649
|
-
|
|
650
|
-
|
|
745
|
+
test(`Calls onCollapse with parentItem when passed in`, async () => {
|
|
746
|
+
render(
|
|
747
|
+
<TreeViewListItem parentItem={parentItem} isExpanded onCollapse={onCollapseMock} {...requiredProps}>
|
|
748
|
+
Content
|
|
749
|
+
</TreeViewListItem>
|
|
750
|
+
);
|
|
751
|
+
|
|
752
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
753
|
+
|
|
754
|
+
expect(onCollapseMock).toHaveBeenCalledTimes(1);
|
|
755
|
+
expect(onCollapseMock).toHaveBeenCalledWith(expect.any(Object), undefined, parentItem);
|
|
756
|
+
});
|
|
757
|
+
|
|
758
|
+
test(`Calls onCollapse with itemData when passed in`, async () => {
|
|
759
|
+
const user = userEvent.setup();
|
|
760
|
+
const onCollapseMock = jest.fn();
|
|
761
|
+
|
|
762
|
+
render(
|
|
763
|
+
<TreeViewListItem itemData={itemData} isExpanded onCollapse={onCollapseMock} {...requiredProps}>
|
|
764
|
+
Content
|
|
765
|
+
</TreeViewListItem>
|
|
766
|
+
);
|
|
767
|
+
|
|
768
|
+
await user.click(screen.getByRole('button', { name: requiredProps.name }));
|
|
769
|
+
|
|
770
|
+
expect(onCollapseMock).toHaveBeenCalledTimes(1);
|
|
771
|
+
expect(onCollapseMock).toHaveBeenCalledWith(expect.any(Object), itemData, undefined);
|
|
772
|
+
});
|
|
651
773
|
});
|
|
652
774
|
|
|
653
775
|
test(`Does not render ${styles.treeViewAction} element by default`, () => {
|
|
@@ -75,7 +75,7 @@ test(`Does not call onSearch when input is not typed into`, async () => {
|
|
|
75
75
|
|
|
76
76
|
render(
|
|
77
77
|
<>
|
|
78
|
-
<TreeViewSearch />
|
|
78
|
+
<TreeViewSearch onSearch={onSearchMock} />
|
|
79
79
|
<input aria-label="native input" />
|
|
80
80
|
</>
|
|
81
81
|
);
|
|
@@ -85,6 +85,17 @@ test(`Does not call onSearch when input is not typed into`, async () => {
|
|
|
85
85
|
expect(onSearchMock).not.toHaveBeenCalled();
|
|
86
86
|
});
|
|
87
87
|
|
|
88
|
+
test(`Does not call onSearch when not passed in`, async () => {
|
|
89
|
+
const user = userEvent.setup();
|
|
90
|
+
const onSearchMock = jest.fn();
|
|
91
|
+
|
|
92
|
+
render(<TreeViewSearch />);
|
|
93
|
+
|
|
94
|
+
await user.type(screen.getByRole('searchbox'), 'a');
|
|
95
|
+
|
|
96
|
+
expect(onSearchMock).not.toHaveBeenCalled();
|
|
97
|
+
});
|
|
98
|
+
|
|
88
99
|
test('Matches snapshot', () => {
|
|
89
100
|
const { asFragment } = render(<TreeViewSearch />);
|
|
90
101
|
|
|
@@ -32,6 +32,15 @@ exports[`Matches snapshot 1`] = `
|
|
|
32
32
|
<p>
|
|
33
33
|
TreeViewList toolbar: undefined
|
|
34
34
|
</p>
|
|
35
|
+
<p>
|
|
36
|
+
TreeViewList aria-label: undefined
|
|
37
|
+
</p>
|
|
38
|
+
<p>
|
|
39
|
+
TreeViewList aria-labelledBy: undefined
|
|
40
|
+
</p>
|
|
41
|
+
<p>
|
|
42
|
+
TreeViewList isMultiSelectable: false
|
|
43
|
+
</p>
|
|
35
44
|
<div
|
|
36
45
|
data-testid="TreeViewList-children"
|
|
37
46
|
>
|