@laerdal/life-react-components 6.0.0-dev.10.full → 6.0.0-dev.12.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.
Files changed (58) hide show
  1. package/dist/Accordion/__tests__/AccordionMenu.test.tsx +42 -0
  2. package/dist/Accordion/__tests__/ContentAccordion.test.tsx +150 -0
  3. package/dist/AuthPage/__tests__/AuthPage.test.tsx +27 -0
  4. package/dist/Banners/__tests__/Banner.test.tsx +47 -0
  5. package/dist/Banners/__tests__/OverviewBanner.test.tsx +20 -0
  6. package/dist/Breadcrumb/__tests__/Breadcrumb.test.tsx +78 -0
  7. package/dist/Button/__tests__/BackButton.test.tsx +32 -0
  8. package/dist/Button/__tests__/Button.test.tsx +45 -0
  9. package/dist/Button/__tests__/DualButton.test.tsx +119 -0
  10. package/dist/Card/HorizontalCard/__tests__/HorizontalCard.test.tsx +71 -0
  11. package/dist/Card/HorizontalCard/__tests__/VerticalCard.test.tsx +124 -0
  12. package/dist/Card/__tests__/Card.test.tsx +146 -0
  13. package/dist/Chips/__tests__/ActionChip.test.tsx +94 -0
  14. package/dist/Chips/__tests__/ChoiceChips.test.tsx +79 -0
  15. package/dist/Chips/__tests__/FilterChip.test.tsx +95 -0
  16. package/dist/Chips/__tests__/InputChip.test.tsx +155 -0
  17. package/dist/ChipsInput/__tests__/ChipDropdownInput.test.tsx +100 -0
  18. package/dist/ChipsInput/__tests__/ChipInputFields.test.tsx +155 -0
  19. package/dist/Dropdown/__tests__/DropdownFilter.test.tsx +39 -0
  20. package/dist/Footer/__tests__/Footer.test.tsx +182 -0
  21. package/dist/GlobalNavigationBar/__tests__/Logo.test.tsx +39 -0
  22. package/dist/GlobalNavigationBar/desktop/__tests__/DesktopActions.test.tsx +108 -0
  23. package/dist/GlobalNavigationBar/desktop/__tests__/ExtendedMainMenu.test.tsx +28 -0
  24. package/dist/GlobalNavigationBar/desktop/__tests__/MainMenu.test.tsx +55 -0
  25. package/dist/GlobalNavigationBar/desktop/__tests__/RightSideNav.test.tsx +45 -0
  26. package/dist/GlobalNavigationBar/desktop/__tests__/UserMenu.test.tsx +125 -0
  27. package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenu.test.tsx +317 -0
  28. package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenuContent.test.tsx +294 -0
  29. package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenuHeader.test.tsx +195 -0
  30. package/dist/InputFields/__tests__/NumberField.test.tsx +67 -0
  31. package/dist/InputFields/__tests__/NumberInput.test.tsx +68 -0
  32. package/dist/InputFields/__tests__/QuickSearch.test.tsx +42 -0
  33. package/dist/LinearProgress/__tests__/LinearProgress.test.tsx +25 -0
  34. package/dist/List/__tests__/ListRow.test.tsx +18 -0
  35. package/dist/LoadingPage/__tests__/GlobalLoadingPage.test.tsx +23 -0
  36. package/dist/Modals/__tests__/Modal.test.tsx +169 -0
  37. package/dist/Modals/__tests__/ModalContainer.test.tsx +77 -0
  38. package/dist/Modals/__tests__/ModalContent.test.tsx +126 -0
  39. package/dist/NavItem/__tests__/NavItem.test.ts +6 -0
  40. package/dist/NotificationDot/__tests__/NotificationDot.test.tsx +33 -0
  41. package/dist/Paginator/__tests__/Paginator.test.tsx +39 -0
  42. package/dist/Popover/__tests__/Popover.test.tsx +64 -0
  43. package/dist/ProfileButton/__tests__/ProfileButton.test.tsx +31 -0
  44. package/dist/QuizButton/__tests__/QuizButton.test.tsx +53 -0
  45. package/dist/SegmentControl/__tests__/SegmentControl.test.tsx +145 -0
  46. package/dist/SideMenu/__tests__/SideMenu.test.tsx +99 -0
  47. package/dist/Switcher/__tests__/SwitcherMenuItem.tsx +14 -0
  48. package/dist/Table/__tests__/Table.test.tsx +499 -0
  49. package/dist/Tabs/__tests__/HorizontalTabs.test.tsx +95 -0
  50. package/dist/Tabs/__tests__/TabLink.test.tsx +40 -0
  51. package/dist/Tabs/__tests__/Tablist.test.tsx +37 -0
  52. package/dist/Tag/__tests__/Tag.test.tsx +86 -0
  53. package/dist/Toasters/__tests__/Toast.test.tsx +74 -0
  54. package/dist/Toggles/__tests__/ToggleButton.test.tsx +53 -0
  55. package/dist/Toggles/__tests__/ToggleSwitch.test.tsx +87 -0
  56. package/dist/Tooltips/__tests__/TooltipWrapper.test.tsx +16 -0
  57. package/dist/styles/react-datepicker.css +766 -0
  58. package/package.json +4 -3
@@ -0,0 +1,145 @@
1
+ import React from 'react';
2
+ import {SegmentControlItemWrapper, SegmentControlWrapper} from '../SegmentControl';
3
+ import {render} from '../../test-utils';
4
+ import {SegmentControl} from '../index';
5
+ import {SystemIcons} from '../../icons';
6
+ import {fireEvent} from '@testing-library/react';
7
+ import { act } from "react";
8
+
9
+
10
+
11
+
12
+ describe('SegmentControl', () => {
13
+
14
+ const items = [
15
+ {key: 'item1', content: 'Item 1', disabled: false,},
16
+ {key: 'item2', content: 'Item 2', disabled: false,},
17
+ {key: 'item3', content: 'Item 3', disabled: false,},
18
+ {key: 'item4', content: 'Item 4', disabled: false,},
19
+ {key: 'item5', content: 'Item 5', disabled: false,},
20
+ {key: 'item6', content: 'Item 6', disabled: true,}
21
+ ];
22
+
23
+ const icons = [
24
+ {key: 'icon1', content: <SystemIcons.Legend3Star size={'20'}/>, disabled: false,},
25
+ {key: 'icon2', content: <SystemIcons.Legend4Square size={'20'}/>, disabled: false,},
26
+ {key: 'icon3', content: <SystemIcons.Legend5Diamond size={'20'}/>, disabled: false,},
27
+ {key: 'icon4', content: <SystemIcons.Legend6Nabla size={'20'}/>, disabled: false,},
28
+ {key: 'icon5', content: <SystemIcons.Legend7Pentagon size={'20'}/>, disabled: false,},
29
+ {key: 'icon6', content: <SystemIcons.Legend8Rectangle size={'20'}/>, disabled: true,}
30
+ ]
31
+
32
+ it('should render a segment control with items', () => {
33
+ const wrapper = render(
34
+ <SegmentControl items={items}
35
+ selected={items[0].key}
36
+ onChange={jest.fn()}/>
37
+ );
38
+
39
+ expect(wrapper.container.querySelectorAll(`${SegmentControlWrapper}`)).toHaveLength(1);
40
+ expect(wrapper.container.querySelectorAll(`${SegmentControlItemWrapper}`)).toHaveLength(6);
41
+ });
42
+
43
+ it('should render items with correct labels', () => {
44
+ const wrapper = render(
45
+ <SegmentControl items={items}
46
+ selected={items[0].key}
47
+ onChange={jest.fn()}/>
48
+ );
49
+
50
+ for (let item of items) {
51
+ expect(wrapper.getByText(item.content)).toBeTruthy();
52
+ }
53
+ });
54
+
55
+ it('should render items with icons', () => {
56
+ const wrapper = render(
57
+ <SegmentControl items={icons}
58
+ selected={icons[0].key}
59
+ onChange={jest.fn()}/>
60
+ );
61
+
62
+ expect(wrapper.container.querySelectorAll(`${SegmentControlWrapper}`)).toHaveLength(1);
63
+ expect(wrapper.container.querySelectorAll(`${SegmentControlItemWrapper}`)).toHaveLength(6);
64
+ });
65
+
66
+ it('should render correct item as selected', () => {
67
+ const wrapper = render(
68
+ <SegmentControl items={items}
69
+ selected={items[2].key}
70
+ onChange={jest.fn()}/>
71
+ );
72
+
73
+ expect(wrapper.container.querySelectorAll(`${SegmentControlItemWrapper}.selected`)).toHaveLength(1);
74
+ expect(wrapper.container.querySelectorAll(`${SegmentControlItemWrapper}`)[2].classList).toContain('selected');
75
+ });
76
+
77
+ it('should render correct item as disabled', () => {
78
+ const wrapper = render(
79
+ <SegmentControl items={items}
80
+ selected={items[2].key}
81
+ onChange={jest.fn()}/>
82
+ );
83
+
84
+ expect(wrapper.container.querySelectorAll(`${SegmentControlItemWrapper}.disabled`)).toHaveLength(1);
85
+ expect(wrapper.container.querySelectorAll(`${SegmentControlItemWrapper}`)[5].classList).toContain('disabled');
86
+ });
87
+
88
+ it('should call on change function on item click', () => {
89
+ const onChange = jest.fn();
90
+ const wrapper = render(
91
+ <SegmentControl items={items}
92
+ selected={items[2].key}
93
+ onChange={onChange}/>
94
+ );
95
+ act(() => {
96
+ wrapper.getByText(items[0].content).dispatchEvent(new MouseEvent('click', {bubbles: true}));
97
+ })
98
+ expect(onChange).toHaveBeenCalledTimes(1);
99
+ expect(onChange).toHaveBeenCalledWith(items[0].key);
100
+ });
101
+
102
+ it('should call on change function on item key press', () => {
103
+ const onChange = jest.fn();
104
+ const wrapper = render(
105
+ <SegmentControl items={items}
106
+ selected={items[2].key}
107
+ onChange={onChange}/>
108
+ );
109
+ act(() => {
110
+ fireEvent.keyPress(wrapper.getByText(items[0].content), {key: 'Enter', keyCode: 13, which: 13});
111
+ })
112
+
113
+ expect(onChange).toHaveBeenCalledTimes(1);
114
+ expect(onChange).toHaveBeenCalledWith(items[0].key);
115
+ });
116
+
117
+ it('should not call on change function on disabled item click', () => {
118
+ const onChange = jest.fn();
119
+ const wrapper = render(
120
+ <SegmentControl items={items}
121
+ selected={items[2].key}
122
+ onChange={onChange}/>
123
+ );
124
+ act(() => {
125
+ wrapper.getByText(items[5].content).dispatchEvent(new MouseEvent('click', {bubbles: true}));
126
+ })
127
+ expect(onChange).toHaveBeenCalledTimes(0);
128
+ });
129
+
130
+ it('should not call on change function on disabled item key press', () => {
131
+ const onChange = jest.fn();
132
+ const wrapper = render(
133
+ <SegmentControl items={items}
134
+ selected={items[2].key}
135
+ onChange={onChange}/>
136
+ );
137
+ act(() => {
138
+ fireEvent.keyPress(wrapper.getByText(items[5].content), {key: 'Enter', keyCode: 13, which: 13});
139
+ })
140
+
141
+ expect(onChange).toHaveBeenCalledTimes(0);
142
+ });
143
+
144
+
145
+ });
@@ -0,0 +1,99 @@
1
+ import * as React from 'react';
2
+ import {SideMenu} from '../index';
3
+ import {act, render} from '../../test-utils';
4
+
5
+
6
+
7
+ describe('SideMenu', () => {
8
+
9
+ it('should render content', () => {
10
+ const wrapper = render(<SideMenu onClose={jest.fn()}>content</SideMenu>);
11
+
12
+ expect(wrapper.getByText('content')).toBeDefined();
13
+ });
14
+
15
+ it('should call onClose when close button is clicked', () => {
16
+ const onClose = jest.fn();
17
+ const wrapper = render(<SideMenu onClose={onClose}>content</SideMenu>);
18
+
19
+ act(() => {
20
+ wrapper.getByRole('button').click();
21
+ });
22
+
23
+ expect(onClose).toHaveBeenCalled();
24
+ });
25
+
26
+
27
+ it('should call onClose when close button is clicked', () => {
28
+ const onClose = jest.fn();
29
+ const wrapper = render(<SideMenu onClose={onClose}>content</SideMenu>);
30
+
31
+ act(() => {
32
+ wrapper.getByRole('button').click();
33
+ });
34
+
35
+ expect(onClose).toHaveBeenCalled();
36
+ });
37
+
38
+ it('should render label', () => {
39
+ const onClose = jest.fn();
40
+ const wrapper = render(<SideMenu onClose={onClose} header={{label: 'label'}}>content</SideMenu>);
41
+
42
+ expect(wrapper.getByText('label')).toBeDefined();
43
+ });
44
+
45
+ it('should render header icon buttons ', () => {
46
+ const onClose = jest.fn();
47
+ const wrapper = render(<SideMenu onClose={onClose} header={{
48
+ label: 'label', actions: [{
49
+ action: () => {
50
+ }, icon: <></>
51
+ }, {
52
+ action: () => {
53
+ }, icon: <></>
54
+ }]
55
+ }}>content</SideMenu>);
56
+
57
+ expect(wrapper.getAllByRole('button')).toHaveLength(3);
58
+ });
59
+
60
+ it('should render footer note', () => {
61
+ const onClose = jest.fn();
62
+ const wrapper = render(<SideMenu onClose={onClose} footer={{note: 'note'}}>content</SideMenu>);
63
+
64
+ expect(wrapper.getByText('note')).toBeDefined();
65
+ });
66
+
67
+ it('should render footer buttons', () => {
68
+ const onClose = jest.fn();
69
+ const wrapper = render(<SideMenu onClose={onClose} footer={{
70
+ buttons: [{
71
+ variant: 'primary', label: 'label', onClick: () => {
72
+ }
73
+ }]
74
+ }}>content</SideMenu>);
75
+
76
+ expect(wrapper.getAllByRole('button')).toHaveLength(2);
77
+ });
78
+
79
+ it('should render footer menu items', () => {
80
+ const onClose = jest.fn();
81
+ const wrapper = render(<SideMenu onClose={onClose} footer={{
82
+ items: [{
83
+ id: '1',
84
+ active: false,
85
+ onClickHandler: () => {},
86
+ item: {displayLabel: 'label 1', value: '1'}
87
+ }, {
88
+ id: '2',
89
+ active: false,
90
+ onClickHandler: () => {},
91
+ item: {displayLabel: 'label 2', value: '2'}
92
+ }]
93
+ }}>content</SideMenu>);
94
+
95
+ expect(wrapper.getByText('label 1')).toBeDefined();
96
+ expect(wrapper.getByText('label 2')).toBeDefined();
97
+ });
98
+
99
+ });
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import { SwitcherMenuItem } from '../index';
4
+ import 'jest-styled-components';
5
+ import { COLORS } from '../../styles';
6
+
7
+ describe('<SwitcherMenuItem />', () => {
8
+ it('Renders SwitcherMenuItem', async () => {
9
+ const { queryByText, getByTestId } = render(<SwitcherMenuItem label="TestLabel" url="/test" testId="TestSwitcherMenuItem" />);
10
+ expect(queryByText('TestLabel')).toBeDefined();
11
+
12
+ const testMenuItem = getByTestId('TestSwitcherMenuItem');
13
+ });
14
+ });