@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.
- package/CHANGELOG.md +30 -0
- package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts +1 -1
- package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
- package/dist/esm/components/CalendarMonth/CalendarMonth.js +13 -8
- package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/dist/js/components/CalendarMonth/CalendarMonth.d.ts +1 -1
- package/dist/js/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
- package/dist/js/components/CalendarMonth/CalendarMonth.js +13 -8
- package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/dist/umd/react-core.css +804 -804
- package/dist/umd/react-core.js +13 -8
- package/dist/umd/react-core.min.js +1 -1
- package/package.json +5 -5
- package/src/components/CalendarMonth/CalendarMonth.tsx +15 -9
- package/src/components/ChipGroup/__tests__/ChipGroup.test.tsx +14 -9
- package/src/components/ClipboardCopy/__tests__/ClipboardCopyToggle.test.tsx +28 -19
- package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyToggle.test.tsx.snap +1 -1
- package/src/components/ContextSelector/__tests__/ContextSelector.test.tsx +21 -14
- package/src/components/ContextSelector/__tests__/ContextSelectorToggle.test.tsx +49 -34
- package/src/components/ContextSelector/__tests__/__snapshots__/ContextSelector.test.tsx.snap +2 -169
- package/src/components/ContextSelector/__tests__/__snapshots__/ContextSelectorToggle.test.tsx.snap +5 -247
- package/src/components/DataList/__tests__/DataList.test.tsx +49 -40
- package/src/components/DataList/__tests__/__snapshots__/DataList.test.tsx.snap +1 -9
- package/src/components/Dropdown/__tests__/Dropdown.test.tsx +54 -42
- package/src/components/Dropdown/__tests__/DropdownToggle.test.tsx +179 -177
- package/src/components/Dropdown/__tests__/DropdownToggleCheckbox.test.tsx +51 -55
- package/src/components/Dropdown/__tests__/Generated/DropdownItem.test.tsx +28 -26
- package/src/components/Dropdown/__tests__/Generated/DropdownSeparator.test.tsx +14 -15
- package/src/components/Dropdown/__tests__/Generated/InternalDropdownItem.test.tsx +39 -36
- package/src/components/Dropdown/__tests__/Generated/__snapshots__/DropdownItem.test.tsx.snap +6 -4
- package/src/components/Dropdown/__tests__/Generated/__snapshots__/DropdownSeparator.test.tsx.snap +11 -4
- package/src/components/Dropdown/__tests__/Generated/__snapshots__/InternalDropdownItem.test.tsx.snap +7 -4
- package/src/components/Dropdown/__tests__/InternalDropdownItem.test.tsx +66 -69
- package/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap +15 -816
- package/src/components/Dropdown/__tests__/__snapshots__/DropdownToggle.test.tsx.snap +9 -454
- package/src/components/Dropdown/__tests__/__snapshots__/DropdownToggleCheckbox.test.tsx.snap +7 -141
- package/src/components/Dropdown/__tests__/__snapshots__/InternalDropdownItem.test.tsx.snap +10 -163
- package/src/components/Nav/__tests__/Generated/NavList.test.tsx +28 -18
- package/src/components/Nav/__tests__/Generated/__snapshots__/NavList.test.tsx.snap +8 -4
- package/src/components/OptionsMenu/__tests__/Generated/OptionsMenuItem.test.tsx +21 -19
- package/src/components/OptionsMenu/__tests__/Generated/__snapshots__/OptionsMenuItem.test.tsx.snap +20 -11
- package/src/components/OverflowMenu/__tests__/Generated/OverflowMenuDropdownItem.test.tsx +14 -10
- package/src/components/OverflowMenu/__tests__/Generated/__snapshots__/OverflowMenuDropdownItem.test.tsx.snap +18 -4
- package/src/components/Select/__tests__/Generated/SelectGroup.test.tsx +22 -10
- package/src/components/Select/__tests__/Generated/SelectMenu.test.tsx +22 -26
- package/src/components/Select/__tests__/Generated/__snapshots__/SelectGroup.test.tsx.snap +15 -4
- package/src/components/Select/__tests__/Generated/__snapshots__/SelectMenu.test.tsx.snap +7 -19
- package/src/components/Select/__tests__/SelectGroup.test.tsx +14 -7
- package/src/components/Select/__tests__/SelectOption.test.tsx +51 -30
- package/src/components/Select/__tests__/__snapshots__/SelectGroup.test.tsx.snap +1 -5
- package/src/components/Select/__tests__/__snapshots__/SelectOption.test.tsx.snap +10 -272
- package/src/components/Toolbar/__tests__/Generated/ToolbarToggleGroup.test.tsx +25 -11
- package/src/components/Toolbar/__tests__/Generated/__snapshots__/ToolbarToggleGroup.test.tsx.snap +26 -4
- package/src/components/Toolbar/__tests__/Toolbar.test.tsx +129 -0
- package/src/components/Toolbar/__tests__/ToolbarItem.test.tsx +19 -0
- package/src/components/Toolbar/__tests__/ToolbarToggleGroup.test.tsx +12 -135
- package/src/components/Toolbar/__tests__/__snapshots__/Toolbar.test.tsx.snap +7 -0
- package/src/components/Toolbar/__tests__/__snapshots__/ToolbarItem.test.tsx.snap +3 -0
- package/src/components/Tooltip/examples/Tooltip.md +9 -1
- package/src/components/Tooltip/examples/TooltipExamples.css +4 -4
- package/src/components/Select/__tests__/Generated/SelectOption.test.tsx +0 -29
- package/src/components/Select/__tests__/Generated/__snapshots__/SelectOption.test.tsx.snap +0 -7
- package/src/components/Toolbar/__tests__/__snapshots__/ToolbarToggleGroup.test.tsx.snap +0 -516
- package/src/components/Wizard/__tests__/Generated/Wizard.test.tsx +0 -43
- package/src/components/Wizard/__tests__/Generated/__snapshots__/Wizard.test.tsx.snap +0 -69
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import {
|
|
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('
|
|
31
|
+
describe('Dropdown', () => {
|
|
30
32
|
test('regular', () => {
|
|
31
|
-
|
|
33
|
+
render(
|
|
32
34
|
<Dropdown dropdownItems={dropdownItems} toggle={<DropdownToggle id="Dropdown Toggle">Dropdown</DropdownToggle>} />
|
|
33
35
|
);
|
|
34
|
-
expect(
|
|
36
|
+
expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
|
|
35
37
|
});
|
|
36
38
|
|
|
37
39
|
test('right aligned', () => {
|
|
38
|
-
|
|
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(
|
|
47
|
+
expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
|
|
46
48
|
});
|
|
47
49
|
|
|
48
50
|
test('alignment breakpoints', () => {
|
|
49
|
-
|
|
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(
|
|
66
|
+
expect(screen.getByLabelText('Dropdown button').outerHTML).toMatchSnapshot();
|
|
64
67
|
});
|
|
65
68
|
|
|
66
69
|
test('dropup', () => {
|
|
67
|
-
|
|
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(
|
|
77
|
+
expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
|
|
75
78
|
});
|
|
76
79
|
|
|
77
80
|
test('dropup + right aligned', () => {
|
|
78
|
-
|
|
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(
|
|
89
|
+
expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
|
|
87
90
|
});
|
|
88
91
|
|
|
89
92
|
test('expanded', () => {
|
|
90
|
-
|
|
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(
|
|
101
|
+
expect(screen.getByLabelText('Dropdown button').outerHTML).toMatchSnapshot();
|
|
98
102
|
});
|
|
99
103
|
|
|
100
104
|
test('primary', () => {
|
|
101
|
-
|
|
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(
|
|
115
|
+
expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
|
|
112
116
|
});
|
|
113
117
|
|
|
114
118
|
test('basic', () => {
|
|
115
|
-
|
|
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(
|
|
124
|
+
expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
|
|
121
125
|
});
|
|
122
126
|
});
|
|
123
127
|
|
|
124
128
|
describe('KebabToggle', () => {
|
|
125
129
|
test('regular', () => {
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
|
|
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(
|
|
148
|
+
expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
|
|
139
149
|
});
|
|
140
150
|
|
|
141
151
|
test('dropup', () => {
|
|
142
|
-
|
|
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(
|
|
159
|
+
expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
|
|
150
160
|
});
|
|
151
161
|
|
|
152
162
|
test('dropup + right aligned', () => {
|
|
153
|
-
|
|
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(
|
|
171
|
+
expect(screen.getByRole('button').outerHTML).toMatchSnapshot();
|
|
162
172
|
});
|
|
163
173
|
|
|
164
174
|
test('expanded', () => {
|
|
165
|
-
|
|
166
|
-
<Dropdown
|
|
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(
|
|
183
|
+
expect(screen.getByLabelText('Dropdown button').outerHTML).toMatchSnapshot();
|
|
169
184
|
});
|
|
170
185
|
|
|
171
186
|
test('plain', () => {
|
|
172
|
-
|
|
173
|
-
|
|
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
|
-
|
|
192
|
+
render(
|
|
180
193
|
<Dropdown isOpen toggle={<KebabToggle id="Dropdown Toggle" />}>
|
|
181
194
|
<div>BASIC</div>
|
|
182
195
|
</Dropdown>
|
|
183
196
|
);
|
|
184
|
-
expect(
|
|
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
|
-
|
|
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
|
-
|
|
201
|
-
|
|
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
|
|
2
|
-
|
|
3
|
-
import {
|
|
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('
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
39
|
-
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
-
|
|
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
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
-
|
|
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
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
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
|
-
|
|
185
|
-
);
|
|
186
|
-
expect(view.container).toMatchSnapshot();
|
|
187
|
-
});
|
|
142
|
+
);
|
|
188
143
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
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
|
-
|
|
201
|
-
|
|
202
|
-
|
|
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
|
});
|