@laerdal/life-react-components 6.0.0-dev.10.full → 6.0.0-dev.13.full
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/Accordion/__tests__/AccordionMenu.test.tsx +42 -0
- package/dist/Accordion/__tests__/ContentAccordion.test.tsx +150 -0
- package/dist/AuthPage/__tests__/AuthPage.test.tsx +27 -0
- package/dist/Banners/__tests__/Banner.test.tsx +47 -0
- package/dist/Banners/__tests__/OverviewBanner.test.tsx +20 -0
- package/dist/Breadcrumb/__tests__/Breadcrumb.test.tsx +78 -0
- package/dist/Button/__tests__/BackButton.test.tsx +32 -0
- package/dist/Button/__tests__/Button.test.tsx +45 -0
- package/dist/Button/__tests__/DualButton.test.tsx +119 -0
- package/dist/Card/HorizontalCard/__tests__/HorizontalCard.test.tsx +71 -0
- package/dist/Card/HorizontalCard/__tests__/VerticalCard.test.tsx +124 -0
- package/dist/Card/__tests__/Card.test.tsx +146 -0
- package/dist/Chips/__tests__/ActionChip.test.tsx +94 -0
- package/dist/Chips/__tests__/ChoiceChips.test.tsx +79 -0
- package/dist/Chips/__tests__/FilterChip.test.tsx +95 -0
- package/dist/Chips/__tests__/InputChip.test.tsx +155 -0
- package/dist/ChipsInput/__tests__/ChipDropdownInput.test.tsx +100 -0
- package/dist/ChipsInput/__tests__/ChipInputFields.test.tsx +155 -0
- package/dist/Dropdown/__tests__/DropdownFilter.test.tsx +39 -0
- package/dist/Footer/__tests__/Footer.test.tsx +182 -0
- package/dist/GlobalNavigationBar/__tests__/Logo.test.tsx +39 -0
- package/dist/GlobalNavigationBar/desktop/__tests__/DesktopActions.test.tsx +108 -0
- package/dist/GlobalNavigationBar/desktop/__tests__/ExtendedMainMenu.test.tsx +28 -0
- package/dist/GlobalNavigationBar/desktop/__tests__/MainMenu.test.tsx +55 -0
- package/dist/GlobalNavigationBar/desktop/__tests__/RightSideNav.test.tsx +45 -0
- package/dist/GlobalNavigationBar/desktop/__tests__/UserMenu.test.tsx +125 -0
- package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenu.test.tsx +317 -0
- package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenuContent.test.tsx +294 -0
- package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenuHeader.test.tsx +195 -0
- package/dist/InputFields/__tests__/NumberField.test.tsx +67 -0
- package/dist/InputFields/__tests__/NumberInput.test.tsx +68 -0
- package/dist/InputFields/__tests__/QuickSearch.test.tsx +42 -0
- package/dist/LinearProgress/__tests__/LinearProgress.test.tsx +25 -0
- package/dist/List/__tests__/ListRow.test.tsx +18 -0
- package/dist/LoadingPage/__tests__/GlobalLoadingPage.test.tsx +23 -0
- package/dist/Modals/__tests__/Modal.test.tsx +169 -0
- package/dist/Modals/__tests__/ModalContainer.test.tsx +77 -0
- package/dist/Modals/__tests__/ModalContent.test.tsx +126 -0
- package/dist/NavItem/__tests__/NavItem.test.ts +6 -0
- package/dist/NotificationDot/__tests__/NotificationDot.test.tsx +33 -0
- package/dist/Paginator/__tests__/Paginator.test.tsx +39 -0
- package/dist/Popover/__tests__/Popover.test.tsx +64 -0
- package/dist/ProfileButton/__tests__/ProfileButton.test.tsx +31 -0
- package/dist/QuizButton/__tests__/QuizButton.test.tsx +53 -0
- package/dist/SegmentControl/__tests__/SegmentControl.test.tsx +145 -0
- package/dist/SideMenu/__tests__/SideMenu.test.tsx +99 -0
- package/dist/Switcher/__tests__/SwitcherMenuItem.tsx +14 -0
- package/dist/Table/__tests__/Table.test.tsx +499 -0
- package/dist/Tabs/VerticalTabs.cjs +1 -0
- package/dist/Tabs/VerticalTabs.cjs.map +1 -1
- package/dist/Tabs/VerticalTabs.js +1 -0
- package/dist/Tabs/VerticalTabs.js.map +1 -1
- package/dist/Tabs/__tests__/HorizontalTabs.test.tsx +95 -0
- package/dist/Tabs/__tests__/TabLink.test.tsx +40 -0
- package/dist/Tabs/__tests__/Tablist.test.tsx +37 -0
- package/dist/Tag/__tests__/Tag.test.tsx +86 -0
- package/dist/Toasters/__tests__/Toast.test.tsx +74 -0
- package/dist/Toggles/__tests__/ToggleButton.test.tsx +53 -0
- package/dist/Toggles/__tests__/ToggleSwitch.test.tsx +87 -0
- package/dist/Tooltips/__tests__/TooltipWrapper.test.tsx +16 -0
- package/dist/styles/react-datepicker.css +766 -0
- package/package.json +4 -3
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '../../test-utils';
|
|
3
|
+
import { createMemoryHistory } from 'history';
|
|
4
|
+
import TabLink from '../TabLink';
|
|
5
|
+
import 'jest-styled-components';
|
|
6
|
+
import { COLORS } from '../../styles';
|
|
7
|
+
import { NavigationProvider } from '../../Navigation';
|
|
8
|
+
|
|
9
|
+
describe('<TabLink />', () => {
|
|
10
|
+
|
|
11
|
+
const navProps = {
|
|
12
|
+
currentPath: '',
|
|
13
|
+
isActiveRoute: () => false,
|
|
14
|
+
navigate: (path: string, isExternal: boolean) => {}
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
it('Renders primary button', async () => {
|
|
18
|
+
const { queryByText, getByTestId } = render(
|
|
19
|
+
<NavigationProvider {...navProps}>
|
|
20
|
+
<TabLink requiredLine="This is a required line" onLinkClick={() => {}} href="/test" testId="TestTabLink" />
|
|
21
|
+
</NavigationProvider>,
|
|
22
|
+
);
|
|
23
|
+
expect(queryByText('This is a required line')).toBeDefined();
|
|
24
|
+
expect(getByTestId('TestTabLink')).toHaveStyle('background-color: transparent');
|
|
25
|
+
expect(getByTestId('TestTabLink')).toHaveStyle('font-size: 16px');
|
|
26
|
+
|
|
27
|
+
// Check that click takes you to correct route
|
|
28
|
+
getByTestId('TestTabLink').click();
|
|
29
|
+
//expect(history.location.pathname).toBe('/test');
|
|
30
|
+
});
|
|
31
|
+
it('Renders notification dot if defined', async () => {
|
|
32
|
+
const { queryByText, getByTestId } = render(
|
|
33
|
+
<NavigationProvider {...navProps}>
|
|
34
|
+
<TabLink requiredLine="This is a required line" onLinkClick={() => {}} href="/test" testId="TestTabLinkWithNotifcationDot" showNotificationDot={true} />
|
|
35
|
+
</NavigationProvider>,
|
|
36
|
+
);
|
|
37
|
+
expect(queryByText('This is a required line')).toBeDefined();
|
|
38
|
+
expect(getByTestId('NotificationDot')).toBeDefined();
|
|
39
|
+
});
|
|
40
|
+
});
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { prettyDOM, render } from '../../test-utils';
|
|
3
|
+
import Tabs from '../Tabs';
|
|
4
|
+
import { Size } from '../../types';
|
|
5
|
+
import 'jest-styled-components';
|
|
6
|
+
import '@testing-library/jest-dom';
|
|
7
|
+
|
|
8
|
+
describe('<Tabs />', () => {
|
|
9
|
+
it('Renders tabs component', async () => {
|
|
10
|
+
const { queryByRole } = render(<Tabs size={Size.Small}></Tabs>);
|
|
11
|
+
expect(queryByRole('tablist')).toBeDefined();
|
|
12
|
+
expect(queryByRole('tablist')?.children).toHaveLength(0);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('Renders tabs component with children and medium size', async () => {
|
|
16
|
+
const renderer = render(
|
|
17
|
+
<Tabs size={Size.Medium}>
|
|
18
|
+
<a data-testid="child"><div>test tab</div><div/></a>
|
|
19
|
+
</Tabs>,
|
|
20
|
+
);
|
|
21
|
+
expect(renderer.queryByRole('tablist')).toBeTruthy();
|
|
22
|
+
expect(renderer.queryByRole('tablist')?.children).toHaveLength(1);
|
|
23
|
+
expect(renderer.queryByRole('tablist')).toHaveStyleRule('height', '56px', { modifier: 'a' });
|
|
24
|
+
expect(renderer.queryByTestId('child')?.querySelector('div')).toHaveStyle('margin: 10px 0 3px 16px');
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('Renders tabs component with children and large size', async () => {
|
|
28
|
+
const { queryByRole, queryByTestId } = render(
|
|
29
|
+
<Tabs size={Size.Large}>
|
|
30
|
+
<a data-testid="child"><div>test tab</div><div/></a>
|
|
31
|
+
</Tabs>,
|
|
32
|
+
);
|
|
33
|
+
expect(queryByRole('tablist')).toBeTruthy();
|
|
34
|
+
expect(queryByRole('tablist')).toHaveStyleRule('height', '64px', { modifier: 'a' });
|
|
35
|
+
expect(queryByTestId('child')?.querySelector('div')).toHaveStyle('margin: 12px 0 4px 16px');
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '../../test-utils';
|
|
3
|
+
import 'jest-styled-components';
|
|
4
|
+
import { Tag } from '..';
|
|
5
|
+
import '@testing-library/jest-dom';
|
|
6
|
+
import { COLORS, SystemIcons } from '../..';
|
|
7
|
+
|
|
8
|
+
describe('<Tag />',()=>{
|
|
9
|
+
it('renders only label', async () => {
|
|
10
|
+
const{getByText} = render(
|
|
11
|
+
<Tag label='sample text'/>
|
|
12
|
+
);
|
|
13
|
+
expect(getByText('sample text')).toBeDefined();
|
|
14
|
+
expect(getByText('sample text').previousElementSibling).toBeNull();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it('renders only icon', async () => {
|
|
18
|
+
const{getByTestId} = render(
|
|
19
|
+
<Tag icon={<SystemIcons.Time/>} />
|
|
20
|
+
);
|
|
21
|
+
expect(getByTestId('iconContainer')).toBeDefined();
|
|
22
|
+
expect(getByTestId('iconContainer').previousElementSibling).toBeNull();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('renders label and icon', async () => {
|
|
26
|
+
const{getByText} = render(
|
|
27
|
+
<Tag label='sample text' icon={<SystemIcons.Time/>} />
|
|
28
|
+
);
|
|
29
|
+
expect(getByText('sample text')).toBeDefined();
|
|
30
|
+
expect(getByText('sample text').previousElementSibling).toBeDefined();
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('renders positive background', async () => {
|
|
34
|
+
const{getByText, container } = render(
|
|
35
|
+
<Tag label='sample text' icon={<SystemIcons.Time/>} variant='positive' />
|
|
36
|
+
);
|
|
37
|
+
expect(getByText('sample text')).toBeDefined();
|
|
38
|
+
expect(getByText('sample text').previousElementSibling).toBeDefined();
|
|
39
|
+
expect(container.firstChild).toHaveClass('positive');
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('renders warning background', async () => {
|
|
43
|
+
const{getByText, container} = render(
|
|
44
|
+
<Tag label='sample text' icon={<SystemIcons.Time/>} variant='warning' />
|
|
45
|
+
);
|
|
46
|
+
expect(getByText('sample text')).toBeDefined();
|
|
47
|
+
expect(getByText('sample text').previousElementSibling).toBeDefined();
|
|
48
|
+
expect(container.firstChild).toHaveClass('warning');
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('renders critical background', async () => {
|
|
52
|
+
const{getByText, container} = render(
|
|
53
|
+
<Tag label='sample text' icon={<SystemIcons.Time/>} variant='critical' />
|
|
54
|
+
);
|
|
55
|
+
expect(getByText('sample text')).toBeDefined();
|
|
56
|
+
expect(getByText('sample text').previousElementSibling).toBeDefined();
|
|
57
|
+
expect(container.firstChild).toHaveClass('critical');
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it('renders accent1 background', async () => {
|
|
61
|
+
const{getByText, container} = render(
|
|
62
|
+
<Tag label='sample text' icon={<SystemIcons.Time/>} variant='accent1' />
|
|
63
|
+
);
|
|
64
|
+
expect(getByText('sample text')).toBeDefined();
|
|
65
|
+
expect(getByText('sample text').previousElementSibling).toBeDefined();
|
|
66
|
+
expect(container.firstChild).toHaveClass('accent1');
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it('renders accent2 background', async () => {
|
|
70
|
+
const{getByText, container} = render(
|
|
71
|
+
<Tag label='sample text' icon={<SystemIcons.Time/>} variant='accent2' />
|
|
72
|
+
);
|
|
73
|
+
expect(getByText('sample text')).toBeDefined();
|
|
74
|
+
expect(getByText('sample text').previousElementSibling).toBeDefined();
|
|
75
|
+
expect(container.firstChild).toHaveClass('accent2');
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it('renders neutral background', async () => {
|
|
79
|
+
const{getByText, container} = render(
|
|
80
|
+
<Tag label='sample text' icon={<SystemIcons.Time/>} />
|
|
81
|
+
);
|
|
82
|
+
expect(getByText('sample text')).toBeDefined();
|
|
83
|
+
expect(getByText('sample text').previousElementSibling).toBeDefined();
|
|
84
|
+
expect(container.firstChild).toHaveClass('neutral');
|
|
85
|
+
});
|
|
86
|
+
});
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '../../test-utils';
|
|
3
|
+
import { Toast } from '../index';
|
|
4
|
+
import 'jest-styled-components';
|
|
5
|
+
import { ToastColor, ToastPosition } from '../../types';
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
describe('<Toast />', () => {
|
|
10
|
+
it('Renders black toast', async () => {
|
|
11
|
+
const { queryByText, getByTestId } = render(
|
|
12
|
+
<Toast
|
|
13
|
+
key="a"
|
|
14
|
+
options={{
|
|
15
|
+
color: ToastColor.BLACK,
|
|
16
|
+
position: ToastPosition.TOPMIDDLE,
|
|
17
|
+
}}
|
|
18
|
+
remove={() => {}}
|
|
19
|
+
content="This is a warning"
|
|
20
|
+
testId="TestToast"
|
|
21
|
+
/>,
|
|
22
|
+
);
|
|
23
|
+
expect(queryByText('This is a warning')).toBeDefined();
|
|
24
|
+
expect(getByTestId('TestToast').classList.contains('BLACK')).toBe(true);
|
|
25
|
+
});
|
|
26
|
+
it('Renders white toast', async () => {
|
|
27
|
+
const { queryByText, getByTestId } = render(
|
|
28
|
+
<Toast
|
|
29
|
+
key="a"
|
|
30
|
+
options={{
|
|
31
|
+
color: ToastColor.WHITE,
|
|
32
|
+
position: ToastPosition.TOPMIDDLE,
|
|
33
|
+
}}
|
|
34
|
+
remove={() => {}}
|
|
35
|
+
content="This is a warning"
|
|
36
|
+
testId="TestToast"
|
|
37
|
+
/>,
|
|
38
|
+
);
|
|
39
|
+
expect(queryByText('This is a warning')).toBeDefined();
|
|
40
|
+
expect(getByTestId('TestToast').classList.contains('WHITE')).toBe(true);
|
|
41
|
+
});
|
|
42
|
+
it('Renders warning toast', async () => {
|
|
43
|
+
const { queryByText, getByTestId } = render(
|
|
44
|
+
<Toast
|
|
45
|
+
key="a"
|
|
46
|
+
options={{
|
|
47
|
+
color: ToastColor.ORANGE,
|
|
48
|
+
position: ToastPosition.TOPMIDDLE,
|
|
49
|
+
}}
|
|
50
|
+
remove={() => {}}
|
|
51
|
+
content="This is a warning"
|
|
52
|
+
testId="TestToast"
|
|
53
|
+
/>,
|
|
54
|
+
);
|
|
55
|
+
expect(queryByText('This is a warning')).toBeDefined();
|
|
56
|
+
expect(getByTestId('TestToast').classList.contains('ORANGE')).toBe(true);
|
|
57
|
+
});
|
|
58
|
+
it('Renders error toast', async () => {
|
|
59
|
+
const { queryByText, getByTestId } = render(
|
|
60
|
+
<Toast
|
|
61
|
+
key="a"
|
|
62
|
+
options={{
|
|
63
|
+
color: ToastColor.RED,
|
|
64
|
+
position: ToastPosition.TOPMIDDLE,
|
|
65
|
+
}}
|
|
66
|
+
remove={() => {}}
|
|
67
|
+
content="This is a warning"
|
|
68
|
+
testId="TestToast"
|
|
69
|
+
/>,
|
|
70
|
+
);
|
|
71
|
+
expect(queryByText('This is a warning')).toBeDefined();
|
|
72
|
+
expect(getByTestId('TestToast').classList.contains('RED')).toBe(true);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { fireEvent, render } from '../../test-utils';
|
|
3
|
+
import '@testing-library/jest-dom';
|
|
4
|
+
import { SystemIcons, ToggleButton } from '../..';
|
|
5
|
+
import 'jest-styled-components';
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
describe('<ToggleButton />', () => {
|
|
10
|
+
it('Renders ToggleButton component', async () => {
|
|
11
|
+
const { container } = render(<ToggleButton id={'toggleBtn'} active={false} defaultState={{ icon: <SystemIcons.PlayList /> }} />);
|
|
12
|
+
expect(container.querySelector('[id="toggleBtn"]')).toBeTruthy();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('Renders ToggleButton component in active state', async () => {
|
|
16
|
+
const { container } = render(<ToggleButton id={'toggleBtn'} active={true} defaultState={{ icon: <SystemIcons.PlayList /> }} />);
|
|
17
|
+
expect(container.querySelector('[id="toggleBtn"]')).toBeTruthy();
|
|
18
|
+
//check correct state class set
|
|
19
|
+
expect(container.querySelector('[id="toggleBtn"]')!.closest('div')).toHaveClass('active');
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it('Renders ToggleButton component in state-change', async () => {
|
|
23
|
+
const { container } = render(
|
|
24
|
+
<ToggleButton active={false} id={'toggleBtn'} activeState={{ icon: <SystemIcons.PlayList /> }} defaultState={{ icon: <SystemIcons.PlayList /> }} />,
|
|
25
|
+
);
|
|
26
|
+
expect(container.querySelector('[id="toggleBtn"]')).toBeTruthy();
|
|
27
|
+
//check correct state class set
|
|
28
|
+
expect(container.querySelector('[id="toggleBtn"]')!.closest('div')).toHaveClass('state-change');
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('Renders ToggleButton component in disabled state', async () => {
|
|
32
|
+
const { container } = render(<ToggleButton disabled={true} id={'toggleBtn'} active={true} defaultState={{ icon: <SystemIcons.PlayList /> }} />);
|
|
33
|
+
expect(container.querySelector('[id="toggleBtn"]')).toBeTruthy();
|
|
34
|
+
//check correct state class set
|
|
35
|
+
expect(container.querySelector('[id="toggleBtn"]')!.closest('div')).toHaveClass('disabled');
|
|
36
|
+
//check inner button is disabled
|
|
37
|
+
expect(container.querySelector('[id="toggleBtn"]') as HTMLButtonElement).toBeDisabled();
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it('Check action for ToggleButton component', async () => {
|
|
41
|
+
//mock action callback
|
|
42
|
+
const handleChange = jest.fn();
|
|
43
|
+
|
|
44
|
+
const { container } = render(
|
|
45
|
+
<ToggleButton active={false} onChange={handleChange} id={'toggleBtn'} activeState={{ icon: <SystemIcons.PlayList /> }} defaultState={{ icon: <SystemIcons.PlayList /> }} />,
|
|
46
|
+
);
|
|
47
|
+
expect(container.querySelector('[id="toggleBtn"]')).toBeTruthy();
|
|
48
|
+
fireEvent.click(container.querySelector('[id="toggleBtn"]') as HTMLButtonElement);
|
|
49
|
+
|
|
50
|
+
//check callback called
|
|
51
|
+
expect(handleChange).toHaveBeenCalledTimes(1);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { fireEvent, render } from '../../test-utils';
|
|
3
|
+
import '@testing-library/jest-dom';
|
|
4
|
+
import { Size, ToggleSwitch } from '../..';
|
|
5
|
+
import 'jest-styled-components';
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
describe('<ToggleSwitch />', () => {
|
|
10
|
+
it('Renders ToggleSwitch component', async () => {
|
|
11
|
+
const { getByText } = render(<ToggleSwitch label={'Test Switch label'} id="TogglerWithoutLabelNormal" onToggle={(val) => {}} selected={false} />);
|
|
12
|
+
|
|
13
|
+
//check label element rendered
|
|
14
|
+
expect(getByText('Test Switch label').closest('label')).toBeTruthy();
|
|
15
|
+
//check label text
|
|
16
|
+
expect(getByText('Test Switch label')).toBeTruthy();
|
|
17
|
+
//no size defined, medium by default
|
|
18
|
+
expect(getByText('Test Switch label').closest('div')).toHaveClass('medium');
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it('Renders ToggleSwitch component without label', async () => {
|
|
22
|
+
const { container } = render(<ToggleSwitch size={Size.Large} id="TogglerWithoutLabelNormal" onToggle={(val) => {}} selected={false} />);
|
|
23
|
+
|
|
24
|
+
//check label element rendered
|
|
25
|
+
expect(container.querySelector('.label')).toBeFalsy();
|
|
26
|
+
//large size defined
|
|
27
|
+
expect(container.querySelector('[id="switchContainer"]')!.closest('div')).toHaveClass('large');
|
|
28
|
+
//should be able to focus the parent div as not disabeld
|
|
29
|
+
expect(container.querySelector('[id="switchContainer"]')!.closest('div')).toHaveAttribute('tabindex', '0');
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it('Renders disabled ToggleSwitch component', async () => {
|
|
33
|
+
const { container } = render(<ToggleSwitch disabled={true} id="TogglerWithoutLabelNormal" onToggle={(val) => {}} selected={false} />);
|
|
34
|
+
|
|
35
|
+
expect(container.querySelector('[id="switchContainer"]')!.closest('div')).toHaveClass('disabled');
|
|
36
|
+
expect(container.querySelector('[id="switchContainer"]')!.closest('div')).toHaveAttribute('tabindex', '-1');
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('Renders semantic ToggleSwitch component', async () => {
|
|
40
|
+
const { container } = render(<ToggleSwitch isSemantic={true} id="TogglerWithoutLabelNormal" onToggle={(val) => {}} selected={false} />);
|
|
41
|
+
|
|
42
|
+
//semnatic class should be added
|
|
43
|
+
expect(container.querySelector('[id="switchContainer"]')!.firstElementChild).toHaveClass('semantic');
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it('Check toggle click for ToggleSwitch component', async () => {
|
|
47
|
+
const handleToggle = jest.fn();
|
|
48
|
+
const { container } = render(<ToggleSwitch isSemantic={true} id="TogglerWithoutLabelNormal" onToggle={handleToggle} selected={false} />);
|
|
49
|
+
|
|
50
|
+
fireEvent(
|
|
51
|
+
container.querySelector('[id="switchContainer"]')!.closest('div') as HTMLDivElement,
|
|
52
|
+
new MouseEvent('click', {
|
|
53
|
+
bubbles: true,
|
|
54
|
+
cancelable: true,
|
|
55
|
+
}),
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
expect(handleToggle).toHaveBeenCalledTimes(1);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('Check toggle click not fired when ToggleSwitch disabled', async () => {
|
|
62
|
+
const handleToggle = jest.fn();
|
|
63
|
+
const { container } = render(<ToggleSwitch disabled={true} id="TogglerWithoutLabelNormal" onToggle={handleToggle} selected={false} />);
|
|
64
|
+
|
|
65
|
+
//check disabled
|
|
66
|
+
expect(container.querySelector('[id="switchContainer"]')!.closest('div')).toHaveClass('disabled');
|
|
67
|
+
//simulate click
|
|
68
|
+
fireEvent(
|
|
69
|
+
container.querySelector('[id="switchContainer"]')!.closest('div') as HTMLDivElement,
|
|
70
|
+
new MouseEvent('click', {
|
|
71
|
+
bubbles: true,
|
|
72
|
+
cancelable: true,
|
|
73
|
+
}),
|
|
74
|
+
);
|
|
75
|
+
//check callback not called
|
|
76
|
+
expect(handleToggle).toHaveBeenCalledTimes(0);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it('Check toggle onkeydown ev for ToggleSwitch component', async () => {
|
|
80
|
+
const handleToggle = jest.fn();
|
|
81
|
+
const { container } = render(<ToggleSwitch isSemantic={true} id="TogglerWithoutLabelNormal" onToggle={handleToggle} selected={false} />);
|
|
82
|
+
|
|
83
|
+
fireEvent.keyDown(container.querySelector('[id="switchContainer"]')!.closest('div') as HTMLDivElement, { key: 'Enter', code: 'Enter', charCode: 13 });
|
|
84
|
+
|
|
85
|
+
expect(handleToggle).toHaveBeenCalledTimes(1);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import {TooltipWrapper} from '../index';
|
|
3
|
+
import {render} from '../../test-utils';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
describe('TooltipWrapper', () => {
|
|
9
|
+
|
|
10
|
+
it('should render', () => {
|
|
11
|
+
const wrapper = render(<TooltipWrapper label={'label'}/>);
|
|
12
|
+
|
|
13
|
+
expect(wrapper.queryByText('label')).toBeInTheDocument();
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
});
|