@patternfly/react-core 4.200.0 → 4.201.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.
Files changed (65) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts +1 -1
  3. package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  4. package/dist/esm/components/CalendarMonth/CalendarMonth.js +13 -8
  5. package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
  6. package/dist/js/components/CalendarMonth/CalendarMonth.d.ts +1 -1
  7. package/dist/js/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  8. package/dist/js/components/CalendarMonth/CalendarMonth.js +13 -8
  9. package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
  10. package/dist/umd/react-core.css +804 -804
  11. package/dist/umd/react-core.js +13 -8
  12. package/dist/umd/react-core.min.js +1 -1
  13. package/package.json +5 -5
  14. package/src/components/CalendarMonth/CalendarMonth.tsx +15 -9
  15. package/src/components/ChipGroup/__tests__/ChipGroup.test.tsx +14 -9
  16. package/src/components/ClipboardCopy/__tests__/ClipboardCopyToggle.test.tsx +28 -19
  17. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyToggle.test.tsx.snap +1 -1
  18. package/src/components/ContextSelector/__tests__/ContextSelector.test.tsx +21 -14
  19. package/src/components/ContextSelector/__tests__/ContextSelectorToggle.test.tsx +49 -34
  20. package/src/components/ContextSelector/__tests__/__snapshots__/ContextSelector.test.tsx.snap +2 -169
  21. package/src/components/ContextSelector/__tests__/__snapshots__/ContextSelectorToggle.test.tsx.snap +5 -247
  22. package/src/components/DataList/__tests__/DataList.test.tsx +49 -40
  23. package/src/components/DataList/__tests__/__snapshots__/DataList.test.tsx.snap +1 -9
  24. package/src/components/Dropdown/__tests__/Dropdown.test.tsx +54 -42
  25. package/src/components/Dropdown/__tests__/DropdownToggle.test.tsx +179 -177
  26. package/src/components/Dropdown/__tests__/DropdownToggleCheckbox.test.tsx +51 -55
  27. package/src/components/Dropdown/__tests__/Generated/DropdownItem.test.tsx +28 -26
  28. package/src/components/Dropdown/__tests__/Generated/DropdownSeparator.test.tsx +14 -15
  29. package/src/components/Dropdown/__tests__/Generated/InternalDropdownItem.test.tsx +39 -36
  30. package/src/components/Dropdown/__tests__/Generated/__snapshots__/DropdownItem.test.tsx.snap +6 -4
  31. package/src/components/Dropdown/__tests__/Generated/__snapshots__/DropdownSeparator.test.tsx.snap +11 -4
  32. package/src/components/Dropdown/__tests__/Generated/__snapshots__/InternalDropdownItem.test.tsx.snap +7 -4
  33. package/src/components/Dropdown/__tests__/InternalDropdownItem.test.tsx +66 -69
  34. package/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap +15 -816
  35. package/src/components/Dropdown/__tests__/__snapshots__/DropdownToggle.test.tsx.snap +9 -454
  36. package/src/components/Dropdown/__tests__/__snapshots__/DropdownToggleCheckbox.test.tsx.snap +7 -141
  37. package/src/components/Dropdown/__tests__/__snapshots__/InternalDropdownItem.test.tsx.snap +10 -163
  38. package/src/components/Nav/__tests__/Generated/NavList.test.tsx +28 -18
  39. package/src/components/Nav/__tests__/Generated/__snapshots__/NavList.test.tsx.snap +8 -4
  40. package/src/components/OptionsMenu/__tests__/Generated/OptionsMenuItem.test.tsx +21 -19
  41. package/src/components/OptionsMenu/__tests__/Generated/__snapshots__/OptionsMenuItem.test.tsx.snap +20 -11
  42. package/src/components/OverflowMenu/__tests__/Generated/OverflowMenuDropdownItem.test.tsx +14 -10
  43. package/src/components/OverflowMenu/__tests__/Generated/__snapshots__/OverflowMenuDropdownItem.test.tsx.snap +18 -4
  44. package/src/components/Select/__tests__/Generated/SelectGroup.test.tsx +22 -10
  45. package/src/components/Select/__tests__/Generated/SelectMenu.test.tsx +22 -26
  46. package/src/components/Select/__tests__/Generated/__snapshots__/SelectGroup.test.tsx.snap +15 -4
  47. package/src/components/Select/__tests__/Generated/__snapshots__/SelectMenu.test.tsx.snap +7 -19
  48. package/src/components/Select/__tests__/SelectGroup.test.tsx +14 -7
  49. package/src/components/Select/__tests__/SelectOption.test.tsx +51 -30
  50. package/src/components/Select/__tests__/__snapshots__/SelectGroup.test.tsx.snap +1 -5
  51. package/src/components/Select/__tests__/__snapshots__/SelectOption.test.tsx.snap +10 -272
  52. package/src/components/Toolbar/__tests__/Generated/ToolbarToggleGroup.test.tsx +25 -11
  53. package/src/components/Toolbar/__tests__/Generated/__snapshots__/ToolbarToggleGroup.test.tsx.snap +26 -4
  54. package/src/components/Toolbar/__tests__/Toolbar.test.tsx +129 -0
  55. package/src/components/Toolbar/__tests__/ToolbarItem.test.tsx +19 -0
  56. package/src/components/Toolbar/__tests__/ToolbarToggleGroup.test.tsx +12 -135
  57. package/src/components/Toolbar/__tests__/__snapshots__/Toolbar.test.tsx.snap +7 -0
  58. package/src/components/Toolbar/__tests__/__snapshots__/ToolbarItem.test.tsx.snap +3 -0
  59. package/src/components/Tooltip/examples/Tooltip.md +9 -1
  60. package/src/components/Tooltip/examples/TooltipExamples.css +4 -4
  61. package/src/components/Select/__tests__/Generated/SelectOption.test.tsx +0 -29
  62. package/src/components/Select/__tests__/Generated/__snapshots__/SelectOption.test.tsx.snap +0 -7
  63. package/src/components/Toolbar/__tests__/__snapshots__/ToolbarToggleGroup.test.tsx.snap +0 -516
  64. package/src/components/Wizard/__tests__/Generated/Wizard.test.tsx +0 -43
  65. package/src/components/Wizard/__tests__/Generated/__snapshots__/Wizard.test.tsx.snap +0 -69
@@ -1,12 +1,14 @@
1
- import * as React from 'react';
2
- import { render } from '@testing-library/react';
3
- import { mount } from 'enzyme';
1
+ import React from 'react';
2
+
3
+ import { render, screen } from '@testing-library/react';
4
+
4
5
  import { Dropdown } from '../Dropdown';
5
6
  import { DropdownPosition, DropdownDirection } from '../dropdownConstants';
6
7
  import { InternalDropdownItem } from '../InternalDropdownItem';
7
8
  import { DropdownSeparator } from '../DropdownSeparator';
8
9
  import { DropdownToggle } from '../DropdownToggle';
9
10
  import { KebabToggle } from '../KebabToggle';
11
+ import userEvent from '@testing-library/user-event';
10
12
 
11
13
  const dropdownItems = [
12
14
  <InternalDropdownItem key="link">Link</InternalDropdownItem>,
@@ -26,27 +28,27 @@ const dropdownItems = [
26
28
  </InternalDropdownItem>
27
29
  ];
28
30
 
29
- describe('dropdown', () => {
31
+ describe('Dropdown', () => {
30
32
  test('regular', () => {
31
- const view = render(
33
+ render(
32
34
  <Dropdown dropdownItems={dropdownItems} toggle={<DropdownToggle id="Dropdown Toggle">Dropdown</DropdownToggle>} />
33
35
  );
34
- expect(view.container).toMatchSnapshot();
36
+ expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
35
37
  });
36
38
 
37
39
  test('right aligned', () => {
38
- const view = render(
40
+ render(
39
41
  <Dropdown
40
42
  dropdownItems={dropdownItems}
41
43
  position={DropdownPosition.right}
42
44
  toggle={<DropdownToggle id="Dropdown Toggle">Dropdown</DropdownToggle>}
43
45
  />
44
46
  );
45
- expect(view.container).toMatchSnapshot();
47
+ expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
46
48
  });
47
49
 
48
50
  test('alignment breakpoints', () => {
49
- const view = render(
51
+ render(
50
52
  <Dropdown
51
53
  dropdownItems={dropdownItems}
52
54
  alignments={{
@@ -56,26 +58,27 @@ describe('dropdown', () => {
56
58
  xl: 'right',
57
59
  '2xl': 'left'
58
60
  }}
61
+ aria-label="Dropdown button"
59
62
  toggle={<DropdownToggle id="Dropdown Toggle">Dropdown</DropdownToggle>}
60
63
  isOpen
61
64
  />
62
65
  );
63
- expect(view.container).toMatchSnapshot();
66
+ expect(screen.getByLabelText('Dropdown button').outerHTML).toMatchSnapshot();
64
67
  });
65
68
 
66
69
  test('dropup', () => {
67
- const view = render(
70
+ render(
68
71
  <Dropdown
69
72
  dropdownItems={dropdownItems}
70
73
  direction={DropdownDirection.up}
71
74
  toggle={<DropdownToggle id="Dropdown Toggle">Dropdown</DropdownToggle>}
72
75
  />
73
76
  );
74
- expect(view.container).toMatchSnapshot();
77
+ expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
75
78
  });
76
79
 
77
80
  test('dropup + right aligned', () => {
78
- const view = render(
81
+ render(
79
82
  <Dropdown
80
83
  dropdownItems={dropdownItems}
81
84
  direction={DropdownDirection.up}
@@ -83,22 +86,23 @@ describe('dropdown', () => {
83
86
  toggle={<DropdownToggle id="Dropdown Toggle">Dropdown</DropdownToggle>}
84
87
  />
85
88
  );
86
- expect(view.container).toMatchSnapshot();
89
+ expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
87
90
  });
88
91
 
89
92
  test('expanded', () => {
90
- const view = render(
93
+ render(
91
94
  <Dropdown
92
95
  dropdownItems={dropdownItems}
93
96
  isOpen
97
+ aria-label="Dropdown button"
94
98
  toggle={<DropdownToggle id="Dropdown Toggle">Dropdown</DropdownToggle>}
95
99
  />
96
100
  );
97
- expect(view.container).toMatchSnapshot();
101
+ expect(screen.getByLabelText('Dropdown button').outerHTML).toMatchSnapshot();
98
102
  });
99
103
 
100
104
  test('primary', () => {
101
- const view = render(
105
+ render(
102
106
  <Dropdown
103
107
  dropdownItems={dropdownItems}
104
108
  toggle={
@@ -108,49 +112,55 @@ describe('dropdown', () => {
108
112
  }
109
113
  />
110
114
  );
111
- expect(view.container).toMatchSnapshot();
115
+ expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
112
116
  });
113
117
 
114
118
  test('basic', () => {
115
- const view = render(
119
+ render(
116
120
  <Dropdown isOpen toggle={<DropdownToggle id="Dropdown Toggle">Dropdown</DropdownToggle>}>
117
121
  <div>BASIC</div>
118
122
  </Dropdown>
119
123
  );
120
- expect(view.container).toMatchSnapshot();
124
+ expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
121
125
  });
122
126
  });
123
127
 
124
128
  describe('KebabToggle', () => {
125
129
  test('regular', () => {
126
- const view = render(<Dropdown dropdownItems={dropdownItems} toggle={<KebabToggle id="Dropdown Toggle" />} />);
127
- expect(view.container).toMatchSnapshot();
130
+ render(
131
+ <Dropdown
132
+ aria-label="Dropdown button"
133
+ dropdownItems={dropdownItems}
134
+ toggle={<KebabToggle id="Dropdown Toggle" />}
135
+ />
136
+ );
137
+ expect(screen.getByLabelText('Dropdown button').outerHTML).toMatchSnapshot();
128
138
  });
129
139
 
130
140
  test('right aligned', () => {
131
- const view = render(
141
+ render(
132
142
  <Dropdown
133
143
  dropdownItems={dropdownItems}
134
144
  position={DropdownPosition.right}
135
145
  toggle={<KebabToggle id="Dropdown Toggle" />}
136
146
  />
137
147
  );
138
- expect(view.container).toMatchSnapshot();
148
+ expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
139
149
  });
140
150
 
141
151
  test('dropup', () => {
142
- const view = render(
152
+ render(
143
153
  <Dropdown
144
154
  dropdownItems={dropdownItems}
145
155
  direction={DropdownDirection.up}
146
156
  toggle={<KebabToggle id="Dropdown Toggle" />}
147
157
  />
148
158
  );
149
- expect(view.container).toMatchSnapshot();
159
+ expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
150
160
  });
151
161
 
152
162
  test('dropup + right aligned', () => {
153
- const view = render(
163
+ render(
154
164
  <Dropdown
155
165
  dropdownItems={dropdownItems}
156
166
  direction={DropdownDirection.up}
@@ -158,30 +168,33 @@ describe('KebabToggle', () => {
158
168
  toggle={<KebabToggle id="Dropdown Toggle" />}
159
169
  />
160
170
  );
161
- expect(view.container).toMatchSnapshot();
171
+ expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
162
172
  });
163
173
 
164
174
  test('expanded', () => {
165
- const view = render(
166
- <Dropdown dropdownItems={dropdownItems} isOpen toggle={<KebabToggle id="Dropdown Toggle" />} />
175
+ render(
176
+ <Dropdown
177
+ aria-label="Dropdown button"
178
+ dropdownItems={dropdownItems}
179
+ isOpen
180
+ toggle={<KebabToggle id="Dropdown Toggle" />}
181
+ />
167
182
  );
168
- expect(view.container).toMatchSnapshot();
183
+ expect(screen.getByLabelText('Dropdown button').outerHTML).toMatchSnapshot();
169
184
  });
170
185
 
171
186
  test('plain', () => {
172
- const view = render(
173
- <Dropdown dropdownItems={dropdownItems} isPlain toggle={<KebabToggle id="Dropdown Toggle" />} />
174
- );
175
- expect(view.container).toMatchSnapshot();
187
+ render(<Dropdown dropdownItems={dropdownItems} isPlain toggle={<KebabToggle id="Dropdown Toggle" />} />);
188
+ expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
176
189
  });
177
190
 
178
191
  test('basic', () => {
179
- const view = render(
192
+ render(
180
193
  <Dropdown isOpen toggle={<KebabToggle id="Dropdown Toggle" />}>
181
194
  <div>BASIC</div>
182
195
  </Dropdown>
183
196
  );
184
- expect(view.container).toMatchSnapshot();
197
+ expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
185
198
  });
186
199
  });
187
200
 
@@ -189,7 +202,8 @@ describe('API', () => {
189
202
  test('click on item', () => {
190
203
  const mockToggle = jest.fn();
191
204
  const mockSelect = jest.fn();
192
- const view = mount(
205
+
206
+ render(
193
207
  <Dropdown
194
208
  dropdownItems={dropdownItems}
195
209
  onSelect={mockSelect}
@@ -197,10 +211,8 @@ describe('API', () => {
197
211
  toggle={<DropdownToggle id="Dropdown Toggle">Dropdown</DropdownToggle>}
198
212
  />
199
213
  );
200
- view
201
- .find('a')
202
- .first()
203
- .simulate('click');
214
+
215
+ userEvent.click(screen.getByText('Link')); // "Link" is the text of the first item
204
216
  expect(mockToggle.mock.calls).toHaveLength(0);
205
217
  expect(mockSelect.mock.calls).toHaveLength(1);
206
218
  });
@@ -1,204 +1,206 @@
1
- import * as React from 'react';
2
- import { render } from '@testing-library/react';
3
- import { mount } from 'enzyme';
1
+ import React from 'react';
2
+
3
+ import { render, screen } from '@testing-library/react';
4
+ import userEvent from '@testing-library/user-event';
5
+ import '@testing-library/jest-dom';
6
+
4
7
  import { DropdownToggle } from '../DropdownToggle';
5
8
  import { DropdownContext } from '../dropdownConstants';
6
9
 
7
- describe('API', () => {
8
- test('click on closed', () => {
9
- const mockToggle = jest.fn();
10
- const view = mount(
11
- <DropdownToggle onToggle={mockToggle} parentRef={document.createElement('div')}>
12
- Dropdown
13
- </DropdownToggle>
14
- );
15
-
16
- view
17
- .find('button')
18
- .first()
19
- .simulate('click');
20
- expect(mockToggle.mock.calls[0][0]).toBe(true);
21
- });
10
+ describe('DropdownToggleCheckbox', () => {
11
+ describe('API', () => {
12
+ test('click on closed', () => {
13
+ const mockToggle = jest.fn();
22
14
 
23
- test('click on opened', () => {
24
- const mockToggle = jest.fn();
25
- const view = mount(
26
- <DropdownToggle id="Dropdown Toggle" onToggle={mockToggle} isOpen parentRef={document.createElement('div')}>
27
- Dropdown
28
- </DropdownToggle>
29
- );
30
-
31
- view
32
- .find('button')
33
- .first()
34
- .simulate('click');
35
- expect(mockToggle.mock.calls[0][0]).toBe(false);
36
- });
15
+ render(
16
+ <DropdownToggle onToggle={mockToggle} parentRef={document.createElement('div')}>
17
+ Dropdown
18
+ </DropdownToggle>
19
+ );
37
20
 
38
- test('on click outside has been removed', () => {
39
- let mousedown: EventListenerOrEventListenerObject = () => {};
40
- document.addEventListener = jest.fn((event, cb) => {
41
- mousedown = cb;
21
+ userEvent.click(screen.getByRole('button'));
22
+ expect(mockToggle.mock.calls[0][0]).toBe(true);
42
23
  });
43
- document.removeEventListener = jest.fn((event, cb) => {
44
- if (mousedown === cb) {
45
- mousedown = () => {};
46
- }
24
+
25
+ test('click on opened', () => {
26
+ const mockToggle = jest.fn();
27
+
28
+ render(
29
+ <DropdownToggle id="Dropdown Toggle" onToggle={mockToggle} isOpen parentRef={document.createElement('div')}>
30
+ Dropdown
31
+ </DropdownToggle>
32
+ );
33
+
34
+ userEvent.click(screen.getByRole('button'));
35
+ expect(mockToggle.mock.calls[0][0]).toBe(false);
47
36
  });
48
- const mockToggle = jest.fn();
49
- const view = render(
50
- <DropdownToggle id="Dropdown Toggle" onToggle={mockToggle} isOpen parentRef={document.createElement('div')}>
51
- Dropdown
52
- </DropdownToggle>
53
- );
54
- view.unmount();
55
- mousedown({ target: document } as any);
56
- expect(mockToggle.mock.calls).toHaveLength(0);
57
- expect(document.removeEventListener).toHaveBeenCalledWith('click', expect.any(Function));
58
- });
59
37
 
60
- test('on touch outside has been removed', () => {
61
- let touchstart: EventListenerOrEventListenerObject = () => {};
62
- document.addEventListener = jest.fn((event, cb) => {
63
- touchstart = cb;
38
+ test('on click outside has been removed', () => {
39
+ let mousedown: EventListenerOrEventListenerObject = () => {};
40
+ document.addEventListener = jest.fn((event, cb) => {
41
+ mousedown = cb;
42
+ });
43
+ document.removeEventListener = jest.fn((event, cb) => {
44
+ if (mousedown === cb) {
45
+ mousedown = () => {};
46
+ }
47
+ });
48
+ const mockToggle = jest.fn();
49
+ const view = render(
50
+ <DropdownToggle id="Dropdown Toggle" onToggle={mockToggle} isOpen parentRef={document.createElement('div')}>
51
+ Dropdown
52
+ </DropdownToggle>
53
+ );
54
+ view.unmount();
55
+ mousedown({ target: document } as any);
56
+ expect(mockToggle.mock.calls).toHaveLength(0);
57
+ expect(document.removeEventListener).toHaveBeenCalledWith('click', expect.any(Function));
64
58
  });
65
- document.removeEventListener = jest.fn((event, cb) => {
66
- if (touchstart === cb) {
67
- touchstart = () => {};
68
- }
59
+
60
+ test('on touch outside has been removed', () => {
61
+ let touchstart: EventListenerOrEventListenerObject = () => {};
62
+ document.addEventListener = jest.fn((event, cb) => {
63
+ touchstart = cb;
64
+ });
65
+ document.removeEventListener = jest.fn((event, cb) => {
66
+ if (touchstart === cb) {
67
+ touchstart = () => {};
68
+ }
69
+ });
70
+ const mockToggle = jest.fn();
71
+ const view = render(
72
+ <DropdownToggle id="Dropdown Toggle" onToggle={mockToggle} isOpen parentRef={document.createElement('div')}>
73
+ Dropdown
74
+ </DropdownToggle>
75
+ );
76
+ view.unmount();
77
+ touchstart({ target: document } as any);
78
+ expect(mockToggle.mock.calls).toHaveLength(0);
79
+ expect(document.removeEventListener).toHaveBeenCalledWith('touchstart', expect.any(Function));
69
80
  });
70
- const mockToggle = jest.fn();
71
- const view = render(
72
- <DropdownToggle id="Dropdown Toggle" onToggle={mockToggle} isOpen parentRef={document.createElement('div')}>
73
- Dropdown
74
- </DropdownToggle>
75
- );
76
- view.unmount();
77
- touchstart({ target: document } as any);
78
- expect(mockToggle.mock.calls).toHaveLength(0);
79
- expect(document.removeEventListener).toHaveBeenCalledWith('touchstart', expect.any(Function));
80
81
  });
81
- });
82
82
 
83
- describe('state', () => {
84
- test('hover', () => {
85
- const view = render(
86
- <DropdownToggle id="Dropdown Toggle" parentRef={document.createElement('div')}>
87
- Dropdown
88
- </DropdownToggle>
89
- );
90
- expect(view.container).toMatchSnapshot();
91
- });
83
+ describe('state', () => {
84
+ test('hover', () => {
85
+ const view = render(
86
+ <DropdownToggle id="Dropdown Toggle" parentRef={document.createElement('div')}>
87
+ Dropdown
88
+ </DropdownToggle>
89
+ );
90
+ expect(view.container).toMatchSnapshot();
91
+ });
92
92
 
93
- test('active', () => {
94
- const view = render(
95
- <DropdownToggle id="Dropdown Toggle" isActive parentRef={document.createElement('div')}>
96
- Dropdown
97
- </DropdownToggle>
98
- );
99
- expect(view.container).toMatchSnapshot();
100
- });
93
+ test('active', () => {
94
+ const view = render(
95
+ <DropdownToggle id="Dropdown Toggle" isActive parentRef={document.createElement('div')}>
96
+ Dropdown
97
+ </DropdownToggle>
98
+ );
99
+ expect(view.container).toMatchSnapshot();
100
+ });
101
101
 
102
- test('focus', () => {
103
- const view = render(
104
- <DropdownToggle id="Dropdown Toggle" parentRef={document.createElement('div')}>
105
- Dropdown
106
- </DropdownToggle>
107
- );
108
- expect(view.container).toMatchSnapshot();
109
- });
102
+ test('focus', () => {
103
+ const view = render(
104
+ <DropdownToggle id="Dropdown Toggle" parentRef={document.createElement('div')}>
105
+ Dropdown
106
+ </DropdownToggle>
107
+ );
108
+ expect(view.container).toMatchSnapshot();
109
+ });
110
110
 
111
- test('button variant - primary', () => {
112
- const view = mount(
113
- <DropdownToggle id="Dropdown Toggle" toggleVariant="primary" parentRef={document.createElement('div')}>
114
- Dropdown
115
- </DropdownToggle>
116
- );
117
- expect(view.find('button').prop('className')).toMatch(/m-primary/);
118
- expect(view).toMatchSnapshot();
119
- });
111
+ test('button variant - primary', () => {
112
+ render(
113
+ <DropdownToggle id="Dropdown Toggle" toggleVariant="primary" parentRef={document.createElement('div')}>
114
+ Dropdown
115
+ </DropdownToggle>
116
+ );
120
117
 
121
- test('button variant - secondary', () => {
122
- const view = mount(
123
- <DropdownToggle id="Dropdown Toggle" toggleVariant="secondary" parentRef={document.createElement('div')}>
124
- Dropdown
125
- </DropdownToggle>
126
- );
127
- expect(view.find('button').prop('className')).toMatch(/m-secondary/);
128
- expect(view).toMatchSnapshot();
129
- });
118
+ const button = screen.getByRole('button');
130
119
 
131
- test('button variant - secondary', () => {
132
- const view = mount(
133
- <DropdownToggle id="Dropdown Toggle" isText isPlain parentRef={document.createElement('div')}>
134
- Dropdown
135
- </DropdownToggle>
136
- );
137
- expect(view.find('button').prop('className')).toMatch(/m-text/);
138
- expect(view.find('button').prop('className')).toMatch(/m-plain/);
139
- expect(view).toMatchSnapshot();
140
- });
120
+ expect(button.className).toContain('primary');
121
+ expect(button.outerHTML).toMatchSnapshot();
122
+ });
141
123
 
142
- test('action split button - renders primary variant', () => {
143
- const view = mount(
144
- <DropdownToggle
145
- id="Dropdown Toggle"
146
- toggleVariant="primary"
147
- splitButtonItems={[<div key="1">test</div>]}
148
- splitButtonVariant="action"
149
- parentRef={document.createElement('div')}
150
- >
151
- Dropdown
152
- </DropdownToggle>
153
- );
154
- expect(view.find('.pf-c-dropdown__toggle').prop('className')).toMatch(/m-primary/);
155
- expect(view).toMatchSnapshot();
156
- });
124
+ test('button variant - secondary', () => {
125
+ render(
126
+ <DropdownToggle id="Dropdown Toggle" toggleVariant="secondary" parentRef={document.createElement('div')}>
127
+ Dropdown
128
+ </DropdownToggle>
129
+ );
157
130
 
158
- test('split button - does not render primary variant', () => {
159
- const view = mount(
160
- <DropdownToggle
161
- id="Dropdown Toggle"
162
- toggleVariant="primary"
163
- splitButtonItems={[<div key="0">test</div>]}
164
- parentRef={document.createElement('div')}
165
- >
166
- Dropdown
167
- </DropdownToggle>
168
- );
169
- expect(view.find('.pf-c-dropdown__toggle').prop('className')).not.toMatch(/m-primary/);
170
- expect(view).toMatchSnapshot();
171
- });
131
+ const button = screen.getByRole('button');
172
132
 
173
- test('class changes', () => {
174
- const view = render(
175
- <DropdownContext.Provider
176
- value={{
177
- toggleTextClass: 'some-test-class',
178
- toggleIndicatorClass: 'another-test-class'
179
- }}
180
- >
181
- <DropdownToggle id="Dropdown Toggle" parentRef={document.createElement('div')}>
133
+ expect(button.className).toContain('secondary');
134
+ expect(button.outerHTML).toMatchSnapshot();
135
+ });
136
+
137
+ test('button variant - plain with text', () => {
138
+ render(
139
+ <DropdownToggle id="Dropdown Toggle" isText isPlain parentRef={document.createElement('div')}>
182
140
  Dropdown
183
141
  </DropdownToggle>
184
- </DropdownContext.Provider>
185
- );
186
- expect(view.container).toMatchSnapshot();
187
- });
142
+ );
188
143
 
189
- test('class changes', () => {
190
- const view = render(
191
- <DropdownContext.Provider
192
- value={{
193
- toggleTextClass: 'some-test-class',
194
- toggleIndicatorClass: 'another-test-class'
195
- }}
196
- >
197
- <DropdownToggle id="Dropdown Toggle" parentRef={document.createElement('div')}>
144
+ const button = screen.getByRole('button');
145
+
146
+ expect(button.className).toContain('text');
147
+ expect(button.className).toContain('plain');
148
+ expect(button.outerHTML).toMatchSnapshot();
149
+ });
150
+
151
+ test('action split button - renders primary variant', () => {
152
+ render(
153
+ <DropdownToggle
154
+ id="Dropdown Toggle"
155
+ toggleVariant="primary"
156
+ splitButtonItems={[<div key="1">test</div>]}
157
+ splitButtonVariant="action"
158
+ parentRef={document.createElement('div')}
159
+ data-testid="test-id"
160
+ >
198
161
  Dropdown
199
162
  </DropdownToggle>
200
- </DropdownContext.Provider>
201
- );
202
- expect(view.container).toMatchSnapshot();
163
+ );
164
+
165
+ const dropdownToggle = screen.getByRole('button').parentElement;
166
+
167
+ expect(dropdownToggle).toHaveClass('pf-m-primary');
168
+ expect(dropdownToggle.outerHTML).toMatchSnapshot();
169
+ });
170
+
171
+ test('split button - does not render primary variant', () => {
172
+ render(
173
+ <DropdownToggle
174
+ id="Dropdown Toggle"
175
+ toggleVariant="primary"
176
+ splitButtonItems={[<div key="0">test</div>]}
177
+ parentRef={document.createElement('div')}
178
+ data-testid="test-id"
179
+ >
180
+ Dropdown
181
+ </DropdownToggle>
182
+ );
183
+
184
+ const dropdownToggle = screen.getByRole('button').parentElement;
185
+
186
+ expect(dropdownToggle).not.toHaveClass('pf-m-primary');
187
+ expect(dropdownToggle.outerHTML).toMatchSnapshot();
188
+ });
189
+
190
+ test('class changes', () => {
191
+ const view = render(
192
+ <DropdownContext.Provider
193
+ value={{
194
+ toggleTextClass: 'some-test-class',
195
+ toggleIndicatorClass: 'another-test-class'
196
+ }}
197
+ >
198
+ <DropdownToggle id="Dropdown Toggle" parentRef={document.createElement('div')}>
199
+ Dropdown
200
+ </DropdownToggle>
201
+ </DropdownContext.Provider>
202
+ );
203
+ expect(view.container).toMatchSnapshot();
204
+ });
203
205
  });
204
206
  });