@moda/om 16.1.1 → 16.2.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/CHANGELOG.md +7 -0
- package/dist/index.cjs.js +3 -2
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +3 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/{__mocks__ → src/__mocks__}/Icon.d.ts +0 -0
- package/dist/{components → src/components}/AspectRatioBox/AspectRatioBox.d.ts +0 -0
- package/dist/{components → src/components}/AspectRatioBox/AspectRatioBox.stories.d.ts +0 -0
- package/dist/{components → src/components}/AspectRatioBox/AspectRatioBox.test.d.ts +0 -0
- package/dist/{components → src/components}/AspectRatioBox/index.d.ts +0 -0
- package/dist/{components → src/components}/Badge/Badge.d.ts +0 -0
- package/dist/{components → src/components}/Badge/Badge.stories.d.ts +0 -0
- package/dist/{components → src/components}/Badge/Badge.test.d.ts +0 -0
- package/dist/{components → src/components}/Badge/index.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/Breadcrumb/Breadcrumb.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/Breadcrumb/index.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/Breadcrumbs.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/Breadcrumbs.stories.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/Breadcrumbs.test.d.ts +0 -0
- package/dist/{components → src/components}/Breadcrumbs/index.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/Breakpoint.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/Breakpoint.stories.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/Breakpoint.test.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/BreakpointProvider.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/generateMediaQuery.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/generateMediaQuery.test.d.ts +0 -0
- package/dist/{components → src/components}/Breakpoint/index.d.ts +0 -0
- package/dist/{components → src/components}/Button/Button.d.ts +0 -0
- package/dist/{components → src/components}/Button/Button.stories.d.ts +0 -0
- package/dist/{components → src/components}/Button/Button.test.d.ts +0 -0
- package/dist/{components → src/components}/Button/index.d.ts +0 -0
- package/dist/{components → src/components}/Checkbox/Checkbox.d.ts +0 -0
- package/dist/{components → src/components}/Checkbox/Checkbox.stories.d.ts +0 -0
- package/dist/{components → src/components}/Checkbox/Checkbox.test.d.ts +0 -0
- package/dist/{components → src/components}/Checkbox/index.d.ts +0 -0
- package/dist/{components → src/components}/Clickable/Clickable.d.ts +0 -0
- package/dist/{components → src/components}/Clickable/Clickable.stories.d.ts +0 -0
- package/dist/{components → src/components}/Clickable/Clickable.test.d.ts +0 -0
- package/dist/{components → src/components}/Clickable/index.d.ts +0 -0
- package/dist/{components → src/components}/ColorSwatch/ColorSwatch.d.ts +0 -0
- package/dist/{components → src/components}/ColorSwatch/ColorSwatch.stories.d.ts +0 -0
- package/dist/{components → src/components}/ColorSwatch/ColorSwatch.test.d.ts +0 -0
- package/dist/{components → src/components}/ColorSwatch/index.d.ts +0 -0
- package/dist/{components → src/components}/ColorSwatch/skuColors.d.ts +0 -0
- package/dist/{components → src/components}/Constrain/Constrain.d.ts +0 -0
- package/dist/{components → src/components}/Constrain/Constrain.stories.d.ts +0 -0
- package/dist/{components → src/components}/Constrain/Constrain.test.d.ts +0 -0
- package/dist/{components → src/components}/Constrain/ExceedConstrain.d.ts +0 -0
- package/dist/{components → src/components}/Constrain/ExceedConstrain.stories.d.ts +0 -0
- package/dist/{components → src/components}/Constrain/index.d.ts +0 -0
- package/dist/{components → src/components}/ControlLink/ControlLink.d.ts +0 -0
- package/dist/{components → src/components}/ControlLink/ControlLink.stories.d.ts +0 -0
- package/dist/{components → src/components}/ControlLink/ControlLink.test.d.ts +0 -0
- package/dist/{components → src/components}/ControlLink/index.d.ts +0 -0
- package/dist/{components → src/components}/CreditCardNumberInput/CreditCardNumberInput.d.ts +0 -0
- package/dist/{components → src/components}/CreditCardNumberInput/CreditCardNumberInput.stories.d.ts +0 -0
- package/dist/{components → src/components}/CreditCardNumberInput/CreditCardNumberInput.test.d.ts +0 -0
- package/dist/{components → src/components}/CreditCardNumberInput/CreditCardNumberInputField.d.ts +0 -0
- package/dist/{components → src/components}/CreditCardNumberInput/index.d.ts +0 -0
- package/dist/{components → src/components}/DefinitionList/DefinitionList.d.ts +0 -0
- package/dist/{components → src/components}/DefinitionList/DefinitionList.stories.d.ts +0 -0
- package/dist/{components → src/components}/DefinitionList/DefinitionList.test.d.ts +0 -0
- package/dist/{components → src/components}/DefinitionList/index.d.ts +0 -0
- package/dist/{components → src/components}/Divider/Divider.d.ts +0 -0
- package/dist/{components → src/components}/Divider/Divider.stories.d.ts +0 -0
- package/dist/{components → src/components}/Divider/Divider.test.d.ts +0 -0
- package/dist/{components → src/components}/Divider/NoLineDivider.d.ts +0 -0
- package/dist/{components → src/components}/Divider/TwoLineDivider.d.ts +0 -0
- package/dist/{components → src/components}/Divider/index.d.ts +0 -0
- package/dist/{components → src/components}/Expandable/Expandable.d.ts +0 -0
- package/dist/{components → src/components}/Expandable/Expandable.stories.d.ts +0 -0
- package/dist/{components → src/components}/Expandable/Expandable.test.d.ts +0 -0
- package/dist/{components → src/components}/Expandable/index.d.ts +0 -0
- package/dist/{components → src/components}/Field/Field.d.ts +0 -0
- package/dist/{components → src/components}/Field/Field.stories.d.ts +0 -0
- package/dist/{components → src/components}/Field/Field.test.d.ts +0 -0
- package/dist/{components → src/components}/Field/index.d.ts +0 -0
- package/dist/{components → src/components}/Label/Label.d.ts +0 -0
- package/dist/{components → src/components}/Label/Label.stories.d.ts +0 -0
- package/dist/{components → src/components}/Label/Label.test.d.ts +0 -0
- package/dist/{components → src/components}/Label/index.d.ts +0 -0
- package/dist/{components → src/components}/Loading/Loading.d.ts +0 -0
- package/dist/{components → src/components}/Loading/Loading.stories.d.ts +0 -0
- package/dist/{components → src/components}/Loading/Loading.test.d.ts +0 -0
- package/dist/{components → src/components}/Loading/index.d.ts +0 -0
- package/dist/{components → src/components}/LoadingBalls/LoadingBalls.d.ts +0 -0
- package/dist/{components → src/components}/LoadingBalls/LoadingBalls.stories.d.ts +0 -0
- package/dist/{components → src/components}/LoadingBalls/index.d.ts +0 -0
- package/dist/{components → src/components}/Modal/Modal.d.ts +0 -0
- package/dist/{components → src/components}/Modal/Modal.stories.d.ts +0 -0
- package/dist/{components → src/components}/Modal/Modal.test.d.ts +0 -0
- package/dist/{components → src/components}/Modal/index.d.ts +0 -0
- package/dist/{components → src/components}/ModalOverlay/ModalOverlay.d.ts +0 -0
- package/dist/{components → src/components}/ModalOverlay/ModalOverlay.stories.d.ts +0 -0
- package/dist/{components → src/components}/ModalOverlay/ModalOverlay.test.d.ts +0 -0
- package/dist/{components → src/components}/ModalOverlay/index.d.ts +0 -0
- package/dist/{components → src/components}/Overlay/Overlay.d.ts +0 -0
- package/dist/{components → src/components}/Overlay/Overlay.stories.d.ts +0 -0
- package/dist/{components → src/components}/Overlay/Overlay.test.d.ts +0 -0
- package/dist/{components → src/components}/Overlay/index.d.ts +0 -0
- package/dist/{components → src/components}/Paginator/Paginator.d.ts +0 -0
- package/dist/{components → src/components}/Paginator/Paginator.stories.d.ts +0 -0
- package/dist/{components → src/components}/Paginator/index.d.ts +0 -0
- package/dist/{components → src/components}/PasswordInput/PasswordInput.d.ts +0 -0
- package/dist/{components → src/components}/PasswordInput/PasswordInput.stories.d.ts +0 -0
- package/dist/{components → src/components}/PasswordInput/index.d.ts +0 -0
- package/dist/{components → src/components}/Popover/Popover.d.ts +0 -0
- package/dist/{components → src/components}/Popover/Popover.stories.d.ts +0 -0
- package/dist/{components → src/components}/Popover/Popover.test.d.ts +0 -0
- package/dist/{components → src/components}/Popover/index.d.ts +0 -0
- package/dist/{components → src/components}/PromoBanner/PromoBanner.d.ts +0 -0
- package/dist/{components → src/components}/PromoBanner/PromoBanner.stories.d.ts +0 -0
- package/dist/{components → src/components}/PromoBanner/PromoBanner.test.d.ts +0 -0
- package/dist/{components → src/components}/PromoBanner/index.d.ts +0 -0
- package/dist/{components → src/components}/RadioButton/RadioButton.d.ts +0 -0
- package/dist/{components → src/components}/RadioButton/RadioButton.stories.d.ts +0 -0
- package/dist/{components → src/components}/RadioButton/RadioButton.test.d.ts +0 -0
- package/dist/{components → src/components}/RadioButton/index.d.ts +0 -0
- package/dist/{components → src/components}/SearchInput/SearchInput.d.ts +0 -0
- package/dist/{components → src/components}/SearchInput/SearchInput.stories.d.ts +0 -0
- package/dist/{components → src/components}/SearchInput/SearchInput.test.d.ts +0 -0
- package/dist/{components → src/components}/SearchInput/index.d.ts +0 -0
- package/dist/{components → src/components}/Select/MultiSelect.d.ts +0 -0
- package/dist/{components → src/components}/Select/Select.d.ts +0 -0
- package/dist/{components → src/components}/Select/Select.stories.d.ts +0 -0
- package/dist/{components → src/components}/Select/Select.test.d.ts +0 -0
- package/dist/{components → src/components}/Select/SelectLabel.d.ts +0 -0
- package/dist/{components → src/components}/Select/SelectOption.d.ts +0 -0
- package/dist/{components → src/components}/Select/SelectOptions.d.ts +0 -0
- package/dist/{components → src/components}/Select/index.d.ts +0 -0
- package/dist/{components → src/components}/Select/useSelect.d.ts +0 -0
- package/dist/{components → src/components}/SelectableButton/SelectableButton.d.ts +0 -0
- package/dist/{components → src/components}/SelectableButton/SelectableButton.stories.d.ts +0 -0
- package/dist/{components → src/components}/SelectableButton/SelectableButton.test.d.ts +0 -0
- package/dist/{components → src/components}/SelectableButton/index.d.ts +0 -0
- package/dist/{components → src/components}/Shape/ArcWindow.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Bradley.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Brancusi.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Circle.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Diamond.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Keyhole.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Mirror.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Oval.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Shape.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Shape.stories.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Triangle.d.ts +0 -0
- package/dist/{components → src/components}/Shape/Window.d.ts +0 -0
- package/dist/{components → src/components}/Shape/index.d.ts +0 -0
- package/dist/{components → src/components}/Stack/Stack.d.ts +0 -0
- package/dist/{components → src/components}/Stack/Stack.stories.d.ts +0 -0
- package/dist/{components → src/components}/Stack/Stack.test.d.ts +0 -0
- package/dist/{components → src/components}/Stack/index.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/Tab.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/TabList.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/TabPanel.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/TabPanels.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/Tabs.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/Tabs.stories.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/Tabs.test.d.ts +0 -0
- package/dist/{components → src/components}/Tabs/index.d.ts +0 -0
- package/dist/{components → src/components}/Tag/Tag.d.ts +0 -0
- package/dist/{components → src/components}/Tag/Tag.stories.d.ts +0 -0
- package/dist/{components → src/components}/Tag/Tag.test.d.ts +0 -0
- package/dist/{components → src/components}/Tag/index.d.ts +0 -0
- package/dist/{components → src/components}/Text/Text.d.ts +0 -0
- package/dist/{components → src/components}/Text/Text.stories.d.ts +0 -0
- package/dist/{components → src/components}/Text/Text.test.d.ts +0 -0
- package/dist/{components → src/components}/Text/index.d.ts +0 -0
- package/dist/{components → src/components}/TextInput/TextInput.d.ts +0 -0
- package/dist/{components → src/components}/TextInput/TextInput.stories.d.ts +0 -0
- package/dist/{components → src/components}/TextInput/TextInput.test.d.ts +0 -0
- package/dist/{components → src/components}/TextInput/index.d.ts +0 -0
- package/dist/{components → src/components}/Textarea/Textarea.d.ts +0 -0
- package/dist/{components → src/components}/Textarea/Textarea.stories.d.ts +0 -0
- package/dist/{components → src/components}/Textarea/Textarea.test.d.ts +0 -0
- package/dist/{components → src/components}/Textarea/index.d.ts +0 -0
- package/dist/{components → src/components}/Toast/Toast.d.ts +0 -0
- package/dist/{components → src/components}/Toast/Toast.stories.d.ts +0 -0
- package/dist/{components → src/components}/Toast/Toast.test.d.ts +0 -0
- package/dist/{components → src/components}/Toast/index.d.ts +0 -0
- package/dist/{components → src/components}/VerticalDivider/VerticalDivider.d.ts +0 -0
- package/dist/{components → src/components}/VerticalDivider/VerticalDivider.stories.d.ts +0 -0
- package/dist/{components → src/components}/VerticalDivider/VerticalDivider.test.d.ts +0 -0
- package/dist/{components → src/components}/VerticalDivider/index.d.ts +0 -0
- package/dist/{components → src/components}/index.d.ts +0 -0
- package/dist/{hooks → src/hooks}/index.d.ts +0 -0
- package/dist/{hooks → src/hooks}/useBreakpoint.d.ts +0 -0
- package/dist/{hooks → src/hooks}/useClickOutside.d.ts +0 -0
- package/dist/{hooks → src/hooks}/useKeyboardListNavigation.d.ts +0 -0
- package/dist/{hooks → src/hooks}/useKeyboardListNavigation.spec.d.ts +0 -0
- package/dist/{hooks → src/hooks}/useUpdateEffect.d.ts +0 -0
- package/dist/{index.d.ts → src/index.d.ts} +0 -0
- package/dist/{mixins → src/mixins}/font-smoothing/font-smoothing.stories.d.ts +0 -0
- package/dist/{mixins → src/mixins}/overflow-scroll/overflow-scroll.stories.d.ts +0 -0
- package/dist/{mixins → src/mixins}/stack/stack.stories.d.ts +0 -0
- package/dist/{mixins → src/mixins}/thin-underline/thin-underline.stories.d.ts +0 -0
- package/dist/{mixins → src/mixins}/visually-hidden/visually-hidden.stories.d.ts +0 -0
- package/dist/{utilities → src/utilities}/States/State.d.ts +0 -0
- package/dist/{utilities → src/utilities}/States/States.d.ts +0 -0
- package/dist/{utilities → src/utilities}/States/StatesProps.d.ts +0 -0
- package/dist/{utilities → src/utilities}/States/index.d.ts +0 -0
- package/dist/{utilities → src/utilities}/States/isRenderProps.d.ts +0 -0
- package/dist/{utilities → src/utilities}/States/stringifyProps.d.ts +0 -0
- package/dist/{utilities → src/utilities}/index.d.ts +0 -0
- package/dist/{utilities → src/utilities}/omit.d.ts +0 -0
- package/dist/{utilities → src/utilities}/sample.d.ts +0 -0
- package/dist/test/mocks/matchMedia.d.ts +1 -0
- package/dist/test/setupTests.d.ts +3 -0
- package/package.json +15 -14
- package/src/components/AspectRatioBox/AspectRatioBox.test.tsx +3 -3
- package/src/components/Badge/Badge.test.tsx +5 -12
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +5 -5
- package/src/components/Breakpoint/Breakpoint.test.tsx +7 -8
- package/src/components/Button/Button.test.tsx +14 -3
- package/src/components/Checkbox/Checkbox.test.tsx +10 -12
- package/src/components/Clickable/Clickable.test.tsx +3 -3
- package/src/components/ColorSwatch/ColorSwatch.test.tsx +3 -5
- package/src/components/Constrain/Constrain.test.tsx +4 -4
- package/src/components/ControlLink/ControlLink.test.tsx +10 -12
- package/src/components/CreditCardNumberInput/CreditCardNumberInput.test.tsx +16 -16
- package/src/components/DefinitionList/DefinitionList.test.tsx +4 -3
- package/src/components/Divider/Divider.test.tsx +5 -4
- package/src/components/Expandable/Expandable.test.tsx +17 -6
- package/src/components/Field/Field.test.tsx +21 -30
- package/src/components/Label/Label.test.tsx +3 -3
- package/src/components/Loading/Loading.test.tsx +3 -5
- package/src/components/Modal/Modal.test.tsx +6 -7
- package/src/components/ModalOverlay/ModalOverlay.test.tsx +9 -9
- package/src/components/Overlay/Overlay.test.tsx +3 -3
- package/src/components/Popover/Popover.test.tsx +9 -6
- package/src/components/PromoBanner/PromoBanner.test.tsx +3 -3
- package/src/components/RadioButton/RadioButton.test.tsx +6 -10
- package/src/components/SearchInput/SearchInput.test.tsx +10 -6
- package/src/components/Select/Select.stories.tsx +2 -1
- package/src/components/Select/Select.test.tsx +8 -8
- package/src/components/Select/Select.tsx +6 -1
- package/src/components/SelectableButton/SelectableButton.test.tsx +3 -3
- package/src/components/Stack/Stack.test.tsx +6 -4
- package/src/components/Tabs/Tabs.test.tsx +4 -5
- package/src/components/Tag/Tag.test.tsx +1 -1
- package/src/components/Text/Text.test.tsx +3 -5
- package/src/components/TextInput/TextInput.test.tsx +4 -5
- package/src/components/Textarea/Textarea.test.tsx +10 -15
- package/src/components/Toast/Toast.test.tsx +1 -1
- package/src/components/VerticalDivider/VerticalDivider.test.tsx +6 -7
- package/src/hooks/useKeyboardListNavigation.spec.ts +24 -63
|
@@ -1,28 +1,27 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { render } from '@testing-library/react';
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
3
|
import userEvent from '@testing-library/user-event';
|
|
4
|
-
import { shallow } from 'enzyme';
|
|
5
4
|
|
|
6
5
|
import { Modal } from './Modal';
|
|
7
6
|
|
|
8
7
|
describe('Modal', () => {
|
|
9
8
|
it('renders correctly', () => {
|
|
10
|
-
|
|
11
|
-
expect(
|
|
9
|
+
render(<Modal onClose={() => {}}>Hello</Modal>);
|
|
10
|
+
expect(screen.getByText('Hello')).toBeVisible();
|
|
12
11
|
});
|
|
13
12
|
|
|
14
13
|
it('should only close when the modal wrapper is clicked', async () => {
|
|
15
14
|
const onClose = jest.fn();
|
|
16
15
|
const onClickButton = jest.fn();
|
|
17
|
-
|
|
16
|
+
render(
|
|
18
17
|
<Modal data-testid='modal' onClose={onClose}>
|
|
19
18
|
<button data-testid='button' onClick={onClickButton}>
|
|
20
19
|
Click Me
|
|
21
20
|
</button>
|
|
22
21
|
</Modal>
|
|
23
22
|
);
|
|
24
|
-
const modal = getByTestId('modal');
|
|
25
|
-
const button = getByTestId('button');
|
|
23
|
+
const modal = screen.getByTestId('modal');
|
|
24
|
+
const button = screen.getByTestId('button');
|
|
26
25
|
|
|
27
26
|
await userEvent.click(button);
|
|
28
27
|
expect(onClose).toBeCalledTimes(0);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
|
-
import { render, waitFor } from '@testing-library/react';
|
|
2
|
+
import { render, screen, waitFor } from '@testing-library/react';
|
|
3
3
|
import userEvent from '@testing-library/user-event';
|
|
4
4
|
|
|
5
5
|
import { ModalOverlay } from './ModalOverlay';
|
|
@@ -20,23 +20,23 @@ const ModalComponent: React.FC = () => {
|
|
|
20
20
|
|
|
21
21
|
describe('ModalOverlay', () => {
|
|
22
22
|
it('renders correctly', () => {
|
|
23
|
-
|
|
23
|
+
render(<ModalOverlay onClose={() => {}}>Hello</ModalOverlay>);
|
|
24
24
|
|
|
25
|
-
expect(
|
|
25
|
+
expect(screen.getByText('Hello')).toBeInTheDocument();
|
|
26
26
|
});
|
|
27
27
|
|
|
28
28
|
it('should open and close the modal', async () => {
|
|
29
|
-
|
|
29
|
+
render(<ModalComponent />);
|
|
30
30
|
|
|
31
31
|
// Should not show by default
|
|
32
|
-
expect(queryByText('Modal Content')).
|
|
32
|
+
expect(screen.queryByText('Modal Content')).not.toBeInTheDocument();
|
|
33
33
|
|
|
34
34
|
// Should show after clicking button
|
|
35
|
-
userEvent.click(getByTestId('button'));
|
|
36
|
-
await
|
|
35
|
+
userEvent.click(screen.getByTestId('button'));
|
|
36
|
+
await screen.findByText('Modal Content');
|
|
37
37
|
|
|
38
38
|
// Should hide after clicking wrapper
|
|
39
|
-
userEvent.click(getByTestId('modal'));
|
|
40
|
-
await waitFor(() => expect(queryByText('Modal Content')).
|
|
39
|
+
userEvent.click(screen.getByTestId('modal'));
|
|
40
|
+
await waitFor(() => expect(screen.queryByText('Modal Content')).not.toBeInTheDocument());
|
|
41
41
|
});
|
|
42
42
|
});
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
3
|
|
|
4
4
|
import { Overlay } from './Overlay';
|
|
5
5
|
|
|
6
6
|
describe('Overlay', () => {
|
|
7
7
|
it('renders correctly', () => {
|
|
8
8
|
const text = 'test-Text';
|
|
9
|
-
|
|
10
|
-
expect(
|
|
9
|
+
render(<Overlay>{text}</Overlay>);
|
|
10
|
+
expect(screen.getByText(text)).toBeVisible();
|
|
11
11
|
});
|
|
12
12
|
});
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
|
+
import userEvent from '@testing-library/user-event';
|
|
3
4
|
|
|
4
5
|
import { Popover } from './Popover';
|
|
5
6
|
|
|
6
7
|
describe('Popover', () => {
|
|
7
|
-
it('renders correctly', () => {
|
|
8
|
-
|
|
8
|
+
it('renders correctly', async () => {
|
|
9
|
+
render(
|
|
9
10
|
<Popover content={<div>Secret</div>}>
|
|
10
11
|
<span>Hover</span>
|
|
11
12
|
</Popover>
|
|
12
13
|
);
|
|
13
14
|
|
|
14
|
-
expect(
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
expect(screen.queryByText('Secret')).not.toBeInTheDocument();
|
|
16
|
+
|
|
17
|
+
await userEvent.hover(screen.getByText('Hover'));
|
|
18
|
+
|
|
19
|
+
expect(screen.getByText('Secret')).toBeVisible();
|
|
17
20
|
});
|
|
18
21
|
});
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
3
|
|
|
4
4
|
import { PromoBanner } from './PromoBanner';
|
|
5
5
|
|
|
6
6
|
describe('PromoBanner', () => {
|
|
7
7
|
it('renders correctly', () => {
|
|
8
|
-
|
|
8
|
+
render(
|
|
9
9
|
<PromoBanner>
|
|
10
10
|
<span>Hello</span>
|
|
11
11
|
</PromoBanner>
|
|
12
12
|
);
|
|
13
|
-
expect(
|
|
13
|
+
expect(screen.getByText('Hello')).toBeVisible();
|
|
14
14
|
});
|
|
15
15
|
});
|
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
4
3
|
import { RadioButton } from './RadioButton';
|
|
5
4
|
|
|
6
5
|
describe('RadioButton', () => {
|
|
7
6
|
it('renders correctly', () => {
|
|
8
|
-
|
|
9
|
-
expect(
|
|
10
|
-
'<label tabindex="0" class="RadioButton"><span tabindex="-1" class="RadioButton__indicator RadioButton__indicator--unchecked"></span><input tabindex="-1" class="RadioButton__input" type="radio" role="radio" value=""></label>'
|
|
11
|
-
);
|
|
7
|
+
render(<RadioButton />);
|
|
8
|
+
expect(screen.getByRole('radio')).toBeVisible();
|
|
12
9
|
});
|
|
13
10
|
|
|
14
11
|
it('supports checked', () => {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
expect(
|
|
18
|
-
expect(html).toContain('readonly="" value="" checked=""');
|
|
12
|
+
render(<RadioButton checked readOnly />);
|
|
13
|
+
expect(screen.getByRole('radio')).toBeVisible();
|
|
14
|
+
expect(screen.getByRole('radio')).toBeChecked();
|
|
19
15
|
});
|
|
20
16
|
});
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
|
+
import userEvent from '@testing-library/user-event';
|
|
3
4
|
|
|
4
5
|
import { SearchInput } from './SearchInput';
|
|
5
6
|
|
|
6
7
|
describe('SearchInput', () => {
|
|
7
|
-
it('clears the input when the button is clicked', () => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
it('clears the input when the button is clicked', async () => {
|
|
9
|
+
render(<SearchInput value='Hello' />);
|
|
10
|
+
|
|
11
|
+
expect(screen.getByRole('textbox')).toHaveValue('Hello');
|
|
12
|
+
|
|
13
|
+
await userEvent.click(screen.getByRole('button'));
|
|
14
|
+
|
|
15
|
+
expect(screen.getByRole('textbox')).toHaveValue('');
|
|
12
16
|
});
|
|
13
17
|
});
|
|
@@ -34,7 +34,8 @@ export const Default = () => (
|
|
|
34
34
|
{ disabled: true, idRef: '4', label: 'Sort' },
|
|
35
35
|
{ idRef: '5', label: '' },
|
|
36
36
|
{ idRef: '5', label: '', error: 'Error' },
|
|
37
|
-
{ idRef: '6', label: '', dropDirection: 'up' }
|
|
37
|
+
{ idRef: '6', label: '', dropDirection: 'up' },
|
|
38
|
+
{ idRef: '7', label: undefined, placeholder: 'Placeholder' }
|
|
38
39
|
]}
|
|
39
40
|
>
|
|
40
41
|
<Select label='Sort by' options={OPTIONS} onChange={action('onChange')} />
|
|
@@ -24,7 +24,7 @@ describe('Select', () => {
|
|
|
24
24
|
const { container } = render(
|
|
25
25
|
<Select idRef='1' name='name-1' label='Sort by' options={options} />
|
|
26
26
|
);
|
|
27
|
-
const button =
|
|
27
|
+
const button = screen.getByRole('button', { name: /Sort by/ });
|
|
28
28
|
await userEvent.click(button);
|
|
29
29
|
expect(container.innerHTML).toEqual(
|
|
30
30
|
'<div id="Select--1" class="Select"><input id="1" name="name-1" type="hidden" value=""><button id="Select__value--1" aria-haspopup="listbox" aria-expanded="true" aria-labelledby="Select__label--1 Select__value--1" type="button" title="Select" class="Clickable Select__value"><label id="Select__label--1">Sort by</label><span class="Select__icon"></span></button><div class="SelectOptions Select__options Select__options--down"><ul class="SelectOptions__list" tabindex="-1" role="listbox" aria-labelledby="Select__label--1" aria-activedescendant="SelectOption--foo-1"><li class="SelectOption SelectOption--active" aria-label="Foo" aria-selected="false" role="option">Foo</li><li class="SelectOption" aria-label="Bar" aria-selected="false" role="option">Bar</li><li class="SelectOption SelectOption--disabled" aria-label="Baz" aria-selected="false" role="option">Baz</li></ul></div></div>'
|
|
@@ -42,7 +42,7 @@ describe('Select', () => {
|
|
|
42
42
|
options={options}
|
|
43
43
|
/>
|
|
44
44
|
);
|
|
45
|
-
const button =
|
|
45
|
+
const button = screen.getByRole('button', { name: /Sort by/ });
|
|
46
46
|
await userEvent.click(button);
|
|
47
47
|
expect(container.innerHTML).toEqual(
|
|
48
48
|
'<div id="Select--1" class="Select Select--disabled"><input id="1" name="name-1" type="hidden" value=""><button id="Select__value--1" aria-haspopup="listbox" aria-expanded="false" aria-labelledby="Select__label--1 Select__value--1" type="button" title="Select" class="Clickable Clickable--disabled Select__value" disabled=""><label id="Select__label--1">Sort by</label><span class="Select__icon"></span></button></div>'
|
|
@@ -51,7 +51,7 @@ describe('Select', () => {
|
|
|
51
51
|
|
|
52
52
|
it('calls onChange when selecting an option', async () => {
|
|
53
53
|
const onChange = jest.fn();
|
|
54
|
-
|
|
54
|
+
render(
|
|
55
55
|
<Select
|
|
56
56
|
defaultValue={undefined}
|
|
57
57
|
idRef='1'
|
|
@@ -61,7 +61,7 @@ describe('Select', () => {
|
|
|
61
61
|
onChange={onChange}
|
|
62
62
|
/>
|
|
63
63
|
);
|
|
64
|
-
const button =
|
|
64
|
+
const button = screen.getByRole('button', { name: /Sort by/ });
|
|
65
65
|
await userEvent.click(button);
|
|
66
66
|
const option = screen.getByLabelText('Bar');
|
|
67
67
|
await userEvent.click(option);
|
|
@@ -70,7 +70,7 @@ describe('Select', () => {
|
|
|
70
70
|
|
|
71
71
|
it('does not call onChange when selecting a disabled option', async () => {
|
|
72
72
|
const onChange = jest.fn();
|
|
73
|
-
|
|
73
|
+
render(
|
|
74
74
|
<Select
|
|
75
75
|
defaultValue={undefined}
|
|
76
76
|
idRef='1'
|
|
@@ -80,7 +80,7 @@ describe('Select', () => {
|
|
|
80
80
|
onChange={onChange}
|
|
81
81
|
/>
|
|
82
82
|
);
|
|
83
|
-
const button =
|
|
83
|
+
const button = screen.getByRole('button', { name: /Sort by/ });
|
|
84
84
|
await userEvent.click(button);
|
|
85
85
|
const option = screen.getByLabelText('Baz');
|
|
86
86
|
await userEvent.click(option);
|
|
@@ -91,7 +91,7 @@ describe('Select', () => {
|
|
|
91
91
|
const { container } = render(
|
|
92
92
|
<Select idRef='1' name='name-1' label='Sort by' options={options} />
|
|
93
93
|
);
|
|
94
|
-
const button =
|
|
94
|
+
const button = screen.getByRole('button', { name: /Sort by/ });
|
|
95
95
|
await userEvent.click(button);
|
|
96
96
|
const option = screen.getByLabelText('Bar');
|
|
97
97
|
await userEvent.click(option);
|
|
@@ -102,7 +102,7 @@ describe('Select', () => {
|
|
|
102
102
|
|
|
103
103
|
it('renders correctly when there is no label', async () => {
|
|
104
104
|
const { container } = render(<Select idRef='1' name='name-1' options={options} />);
|
|
105
|
-
const button =
|
|
105
|
+
const button = screen.getByRole('button', { name: 'Select' });
|
|
106
106
|
await userEvent.click(button);
|
|
107
107
|
const option = screen.getByLabelText('Bar');
|
|
108
108
|
await userEvent.click(option);
|
|
@@ -44,6 +44,7 @@ export const Select: React.FC<SelectProps> = ({
|
|
|
44
44
|
name,
|
|
45
45
|
onChange,
|
|
46
46
|
options,
|
|
47
|
+
placeholder,
|
|
47
48
|
searchable,
|
|
48
49
|
shiftIconLeftwards = false,
|
|
49
50
|
value,
|
|
@@ -116,7 +117,11 @@ export const Select: React.FC<SelectProps> = ({
|
|
|
116
117
|
type='button'
|
|
117
118
|
title='Select'
|
|
118
119
|
>
|
|
119
|
-
<SelectLabel
|
|
120
|
+
<SelectLabel
|
|
121
|
+
idRef={idRef}
|
|
122
|
+
label={label || (selected === undefined ? placeholder : undefined)}
|
|
123
|
+
hasValue={focused != null || selected != null}
|
|
124
|
+
/>
|
|
120
125
|
|
|
121
126
|
{(focused ?? selected)?.label}
|
|
122
127
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
3
|
|
|
4
4
|
import { SelectableButton } from './SelectableButton';
|
|
5
5
|
|
|
6
6
|
describe('SelectableButton', () => {
|
|
7
7
|
it('renders correctly', () => {
|
|
8
|
-
|
|
9
|
-
expect(
|
|
8
|
+
render(<SelectableButton>Click me</SelectableButton>);
|
|
9
|
+
expect(screen.getByText('Click me')).toBeVisible();
|
|
10
10
|
});
|
|
11
11
|
});
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
3
|
|
|
4
4
|
import { Stack } from './Stack';
|
|
5
5
|
|
|
6
6
|
describe('Stack', () => {
|
|
7
7
|
it('renders correctly', () => {
|
|
8
|
-
|
|
8
|
+
render(
|
|
9
9
|
<Stack space={6} direction='horizontal'>
|
|
10
10
|
<div>Hello</div>
|
|
11
11
|
<div>World</div>
|
|
12
12
|
</Stack>
|
|
13
13
|
);
|
|
14
14
|
|
|
15
|
-
expect(
|
|
16
|
-
expect(
|
|
15
|
+
expect(screen.getByText('Hello')).toBeVisible();
|
|
16
|
+
expect(screen.getByText('World')).toBeVisible();
|
|
17
|
+
// eslint-disable-next-line testing-library/no-node-access
|
|
18
|
+
expect(screen.getByText('Hello').parentNode).toHaveClass('Stack--horizontal-6');
|
|
17
19
|
});
|
|
18
20
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { render } from '
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
3
|
|
|
4
4
|
import { Tabs } from './Tabs';
|
|
5
5
|
|
|
@@ -18,10 +18,9 @@ describe('Tabs', () => {
|
|
|
18
18
|
];
|
|
19
19
|
|
|
20
20
|
it('renders correctly with first tab displayed', () => {
|
|
21
|
-
|
|
21
|
+
render(<Tabs tabs={testList} />);
|
|
22
22
|
|
|
23
|
-
expect(
|
|
24
|
-
|
|
25
|
-
);
|
|
23
|
+
expect(screen.getByRole('button', { name: 'Tab 1' })).toBeVisible();
|
|
24
|
+
expect(screen.getByRole('button', { name: 'Tab 2' })).toBeVisible();
|
|
26
25
|
});
|
|
27
26
|
});
|
|
@@ -8,7 +8,7 @@ describe('Tag', () => {
|
|
|
8
8
|
const onRemove = jest.fn();
|
|
9
9
|
render(<Tag onRemove={onRemove}>Hello</Tag>);
|
|
10
10
|
|
|
11
|
-
expect(screen.getByText('Hello')).
|
|
11
|
+
expect(screen.getByText('Hello')).toBeInTheDocument();
|
|
12
12
|
|
|
13
13
|
await userEvent.click(screen.getByRole('button'));
|
|
14
14
|
expect(onRemove).toBeCalled();
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
3
|
|
|
4
4
|
import { Text } from './Text';
|
|
5
5
|
|
|
6
6
|
describe('Text', () => {
|
|
7
7
|
it('renders correctly', () => {
|
|
8
|
-
|
|
8
|
+
render(
|
|
9
9
|
<Text treatment='body2' color='money-good' family='serif'>
|
|
10
10
|
Hello
|
|
11
11
|
</Text>
|
|
12
12
|
);
|
|
13
|
-
expect(
|
|
14
|
-
'<span class="Text Text--body2 Text--serif" style="color:rgb(4, 108, 0)">Hello</span>'
|
|
15
|
-
);
|
|
13
|
+
expect(screen.getByText('Hello')).toBeVisible();
|
|
16
14
|
});
|
|
17
15
|
});
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
3
|
|
|
4
4
|
import { TextInput } from './TextInput';
|
|
5
5
|
|
|
6
6
|
describe('TextInput', () => {
|
|
7
7
|
it('renders correctly', () => {
|
|
8
|
-
|
|
9
|
-
expect(
|
|
10
|
-
|
|
11
|
-
);
|
|
8
|
+
render(<TextInput placeholder='Hello' />);
|
|
9
|
+
expect(screen.getByRole('textbox')).toHaveValue('');
|
|
10
|
+
expect(screen.getByRole('textbox')).toHaveAttribute('placeholder', 'Hello');
|
|
12
11
|
});
|
|
13
12
|
});
|
|
@@ -1,34 +1,29 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
3
|
|
|
4
4
|
import { Textarea } from './Textarea';
|
|
5
5
|
|
|
6
6
|
describe('Textarea', () => {
|
|
7
7
|
it('renders correctly', () => {
|
|
8
|
-
|
|
8
|
+
render(<Textarea placeholder='Placeholder' defaultValue='Hello' />);
|
|
9
9
|
|
|
10
|
-
expect(
|
|
11
|
-
|
|
12
|
-
);
|
|
10
|
+
expect(screen.getByRole('textbox')).toHaveValue('Hello');
|
|
11
|
+
expect(screen.getByRole('textbox')).toHaveAttribute('placeholder', 'Placeholder');
|
|
13
12
|
});
|
|
14
13
|
|
|
15
14
|
it('renders with an error', () => {
|
|
16
|
-
|
|
17
|
-
<Textarea placeholder='Placeholder' defaultValue='Hello' label='Label' error='Error' />
|
|
18
|
-
);
|
|
15
|
+
render(<Textarea placeholder='Placeholder' defaultValue='Hello' label='Label' error='Error' />);
|
|
19
16
|
|
|
20
|
-
expect(
|
|
21
|
-
|
|
22
|
-
);
|
|
17
|
+
expect(screen.getByRole('textbox')).toHaveValue('Hello');
|
|
18
|
+
expect(screen.getByRole('textbox')).toHaveClass('Textarea--error');
|
|
23
19
|
});
|
|
24
20
|
|
|
25
21
|
it('renders with a className', () => {
|
|
26
|
-
|
|
22
|
+
render(
|
|
27
23
|
<Textarea className='Custom' placeholder='Placeholder' defaultValue='Hello' label='Label' />
|
|
28
24
|
);
|
|
29
25
|
|
|
30
|
-
expect(
|
|
31
|
-
|
|
32
|
-
);
|
|
26
|
+
expect(screen.getByRole('textbox')).toHaveValue('Hello');
|
|
27
|
+
expect(screen.getByRole('textbox')).toHaveClass('Custom');
|
|
33
28
|
});
|
|
34
29
|
});
|
|
@@ -12,7 +12,7 @@ describe('Toast', () => {
|
|
|
12
12
|
</Toast>
|
|
13
13
|
);
|
|
14
14
|
|
|
15
|
-
expect(screen.getByText('Hello')).
|
|
15
|
+
expect(screen.getByText('Hello')).toBeInTheDocument();
|
|
16
16
|
|
|
17
17
|
await userEvent.click(screen.getByRole('button', { name: 'Remove' }));
|
|
18
18
|
expect(onRemove).toBeCalled();
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
3
|
|
|
4
4
|
import { VerticalDivider } from './VerticalDivider';
|
|
5
5
|
|
|
6
6
|
describe('VerticalDivider', () => {
|
|
7
7
|
it('renders correctly', () => {
|
|
8
|
-
|
|
8
|
+
render(<VerticalDivider aria-label='Divider' />);
|
|
9
9
|
|
|
10
|
-
expect(
|
|
10
|
+
expect(screen.getByLabelText('Divider')).toBeVisible();
|
|
11
11
|
});
|
|
12
12
|
|
|
13
13
|
it('renders correctly - double', () => {
|
|
14
|
-
|
|
14
|
+
render(<VerticalDivider aria-label='Divider' double />);
|
|
15
15
|
|
|
16
|
-
expect(
|
|
17
|
-
|
|
18
|
-
);
|
|
16
|
+
expect(screen.getByLabelText('Divider')).toBeVisible();
|
|
17
|
+
expect(screen.getByLabelText('Divider')).toHaveClass('VerticalDivider--double');
|
|
19
18
|
});
|
|
20
19
|
});
|