@patternfly/react-core 4.202.28 → 4.202.31
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 +24 -0
- package/dist/esm/components/JumpLinks/JumpLinksItem.d.ts.map +1 -1
- package/dist/esm/components/JumpLinks/JumpLinksItem.js +1 -1
- package/dist/esm/components/JumpLinks/JumpLinksItem.js.map +1 -1
- package/dist/esm/components/ProgressStepper/ProgressStep.d.ts +3 -0
- package/dist/esm/components/ProgressStepper/ProgressStep.d.ts.map +1 -1
- package/dist/esm/components/ProgressStepper/ProgressStep.js +2 -2
- package/dist/esm/components/ProgressStepper/ProgressStep.js.map +1 -1
- package/dist/esm/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/esm/components/Tabs/Tab.js +2 -2
- package/dist/esm/components/Tabs/Tab.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.d.ts +1 -1
- package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/esm/components/Tabs/Tabs.js +1 -1
- package/dist/esm/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/esm/helpers/Popper/Popper.js +1 -7
- package/dist/esm/helpers/Popper/Popper.js.map +1 -1
- package/dist/js/components/JumpLinks/JumpLinksItem.d.ts.map +1 -1
- package/dist/js/components/JumpLinks/JumpLinksItem.js +1 -1
- package/dist/js/components/JumpLinks/JumpLinksItem.js.map +1 -1
- package/dist/js/components/ProgressStepper/ProgressStep.d.ts +3 -0
- package/dist/js/components/ProgressStepper/ProgressStep.d.ts.map +1 -1
- package/dist/js/components/ProgressStepper/ProgressStep.js +2 -2
- package/dist/js/components/ProgressStepper/ProgressStep.js.map +1 -1
- package/dist/js/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/js/components/Tabs/Tab.js +2 -2
- package/dist/js/components/Tabs/Tab.js.map +1 -1
- package/dist/js/components/Tabs/Tabs.d.ts +1 -1
- package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/js/components/Tabs/Tabs.js +1 -1
- package/dist/js/components/Tabs/Tabs.js.map +1 -1
- package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/js/helpers/Popper/Popper.js +1 -7
- package/dist/js/helpers/Popper/Popper.js.map +1 -1
- package/dist/umd/react-core.js +7 -13
- package/dist/umd/react-core.min.js +1 -1
- package/package.json +5 -5
- package/src/components/Dropdown/__tests__/DropdownToggleCheckbox.test.tsx +1 -1
- package/src/components/ExpandableSection/examples/ExpandableSection.md +1 -1
- package/src/components/JumpLinks/JumpLinksItem.tsx +5 -1
- package/src/components/JumpLinks/__tests__/__snapshots__/JumpLinks.test.tsx.snap +5 -0
- package/src/components/Page/__tests__/Page.test.tsx +225 -205
- package/src/components/Page/__tests__/__snapshots__/Page.test.tsx.snap +1088 -2059
- package/src/components/Pagination/__tests__/Pagination.test.tsx +235 -283
- package/src/components/Pagination/__tests__/__snapshots__/Pagination.test.tsx.snap +143 -577
- package/src/components/ProgressStepper/ProgressStep.tsx +6 -0
- package/src/components/ProgressStepper/__tests__/__snapshots__/ProgressStepper.test.tsx.snap +1 -0
- package/src/components/ProgressStepper/examples/ProgressStepper.md +9 -9
- package/src/components/Radio/__tests__/Radio.test.tsx +38 -44
- package/src/components/Radio/__tests__/__snapshots__/Radio.test.tsx.snap +30 -30
- package/src/components/SearchInput/__tests__/SearchInput.test.tsx +87 -68
- package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +230 -137
- package/src/components/Select/__tests__/Select.test.tsx +238 -195
- package/src/components/Select/__tests__/SelectToggle.test.tsx +68 -130
- package/src/components/Select/__tests__/__snapshots__/Select.test.tsx.snap +978 -2149
- package/src/components/Select/__tests__/__snapshots__/SelectToggle.test.tsx.snap +3 -3
- package/src/components/SimpleList/__tests__/SimpleList.test.tsx +29 -32
- package/src/components/SimpleList/__tests__/__snapshots__/SimpleList.test.tsx.snap +4 -366
- package/src/components/Switch/__tests__/Switch.test.tsx +85 -75
- package/src/components/Switch/__tests__/__snapshots__/Switch.test.tsx.snap +30 -40
- package/src/components/Tabs/Tab.tsx +6 -1
- package/src/components/Tabs/Tabs.tsx +2 -2
- package/src/components/Tabs/__tests__/Generated/__snapshots__/Tabs.test.tsx.snap +1 -0
- package/src/components/Tabs/__tests__/__snapshots__/Tab.test.tsx.snap +3 -0
- package/src/components/Tabs/__tests__/__snapshots__/Tabs.test.tsx.snap +135 -0
- package/src/components/Tabs/examples/Tabs.md +32 -26
- package/src/components/TextArea/__tests__/TextArea.test.tsx +98 -103
- package/src/components/TextArea/__tests__/__snapshots__/TextArea.test.tsx.snap +24 -103
- package/src/components/TextInput/__tests__/TextInput.test.tsx +71 -70
- package/src/components/TextInput/__tests__/__snapshots__/TextInput.test.tsx.snap +15 -103
- package/src/components/TextInputGroup/__tests__/TextInputGroup.test.tsx +65 -39
- package/src/components/TextInputGroup/__tests__/__snapshots__/TextInputGroup.test.tsx.snap +53 -14
- package/src/components/TimePicker/__tests__/TimePicker.test.tsx +113 -110
- package/src/components/Title/__tests__/Title.test.tsx +21 -20
- package/src/components/Title/__tests__/__snapshots__/Title.test.tsx.snap +24 -30
- package/src/components/ToggleGroup/__tests__/ToggleGroup.test.tsx +43 -39
- package/src/components/ToggleGroup/__tests__/__snapshots__/ToggleGroup.test.tsx.snap +20 -19
- package/src/components/Wizard/__tests__/Wizard.test.tsx +195 -189
- package/src/components/Wizard/__tests__/__snapshots__/Wizard.test.tsx.snap +131 -10
- package/src/helpers/Popper/Popper.tsx +5 -7
- package/src/helpers/__tests__/util.test.ts +113 -0
- package/src/layouts/Bullseye/__tests__/Bullseye.test.tsx +25 -25
- package/src/layouts/Bullseye/__tests__/__snapshots__/Bullseye.test.tsx.snap +3 -5
- package/src/layouts/Flex/__tests__/Flex.test.tsx +159 -96
- package/src/layouts/Flex/__tests__/__snapshots__/Flex.test.tsx.snap +9 -17
- package/src/components/Page/__tests__/Generated/Page.test.tsx +0 -28
- package/src/components/Page/__tests__/Generated/__snapshots__/Page.test.tsx.snap +0 -19
- package/src/components/Pagination/__tests__/Generated/Pagination.test.tsx +0 -58
- package/src/components/Pagination/__tests__/Generated/__snapshots__/Pagination.test.tsx.snap +0 -205
- package/src/components/Radio/__tests__/Generated/Radio.test.tsx +0 -29
- package/src/components/Radio/__tests__/Generated/__snapshots__/Radio.test.tsx.snap +0 -36
- package/src/components/Select/__tests__/Generated/Select.test.tsx +0 -49
- package/src/components/Select/__tests__/Generated/SelectToggle.test.tsx +0 -34
- package/src/components/Select/__tests__/Generated/__snapshots__/Select.test.tsx.snap +0 -48
- package/src/components/Select/__tests__/Generated/__snapshots__/SelectToggle.test.tsx.snap +0 -36
- package/src/components/SimpleList/__tests__/Generated/SimpleList.test.tsx +0 -22
- package/src/components/SimpleList/__tests__/Generated/__snapshots__/SimpleList.test.tsx.snap +0 -13
- package/src/components/Switch/__tests__/Generated/Switch.test.tsx +0 -24
- package/src/components/Switch/__tests__/Generated/__snapshots__/Switch.test.tsx.snap +0 -36
- package/src/components/TextArea/__tests__/Generated/TextArea.test.tsx +0 -23
- package/src/components/TextArea/__tests__/Generated/__snapshots__/TextArea.test.tsx.snap +0 -13
- package/src/components/Title/__tests__/Generated/Title.test.tsx +0 -13
- package/src/components/Title/__tests__/Generated/__snapshots__/Title.test.tsx.snap +0 -12
- package/src/helpers/__tests__/util.test.js +0 -235
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
import {
|
|
2
|
+
|
|
3
|
+
import { configure, render, screen } from '@testing-library/react';
|
|
4
|
+
import userEvent from '@testing-library/user-event';
|
|
5
|
+
import '@testing-library/jest-dom';
|
|
6
|
+
|
|
4
7
|
import { Select } from '../Select';
|
|
5
8
|
import { SelectOption, SelectOptionObject } from '../SelectOption';
|
|
6
9
|
import { SelectGroup } from '../SelectGroup';
|
|
@@ -34,54 +37,74 @@ const selectOptionsCustom = [
|
|
|
34
37
|
<SelectOption id="option-3" value={new User('Ms', 'Test', 'Three')} key="2" />
|
|
35
38
|
];
|
|
36
39
|
|
|
37
|
-
|
|
40
|
+
// Update testId accessor since data-testid is not passed to the parent component of Select
|
|
41
|
+
configure({ testIdAttribute: 'data-ouia-component-id' });
|
|
42
|
+
|
|
43
|
+
describe('Select', () => {
|
|
38
44
|
describe('single select', () => {
|
|
39
45
|
test('renders closed successfully', () => {
|
|
40
|
-
const
|
|
41
|
-
<Select
|
|
42
|
-
|
|
46
|
+
const { asFragment } = render(
|
|
47
|
+
<Select
|
|
48
|
+
toggleId="single-select-closed"
|
|
49
|
+
variant={SelectVariant.single}
|
|
50
|
+
onSelect={jest.fn()}
|
|
51
|
+
onToggle={jest.fn()}
|
|
52
|
+
ouiaId="test-id"
|
|
53
|
+
>
|
|
43
54
|
{selectOptions}
|
|
44
55
|
</Select>
|
|
45
56
|
);
|
|
46
|
-
expect(
|
|
57
|
+
expect(asFragment()).toMatchSnapshot();
|
|
47
58
|
});
|
|
48
59
|
|
|
49
60
|
test('renders disabled successfully', () => {
|
|
50
|
-
const
|
|
51
|
-
<Select
|
|
52
|
-
|
|
61
|
+
const { asFragment } = render(
|
|
62
|
+
<Select
|
|
63
|
+
toggleId="single-select-disabled"
|
|
64
|
+
variant={SelectVariant.single}
|
|
65
|
+
onSelect={jest.fn()}
|
|
66
|
+
onToggle={jest.fn()}
|
|
67
|
+
isDisabled
|
|
68
|
+
ouiaId="test-id"
|
|
69
|
+
>
|
|
53
70
|
{selectOptions}
|
|
54
71
|
</Select>
|
|
55
72
|
);
|
|
56
|
-
expect(
|
|
73
|
+
expect(asFragment()).toMatchSnapshot();
|
|
57
74
|
});
|
|
58
75
|
|
|
59
76
|
test('renders expanded successfully', () => {
|
|
60
|
-
const
|
|
61
|
-
<Select variant={SelectVariant.single} onSelect={jest.fn()} onToggle={jest.fn()} isOpen>
|
|
77
|
+
const { asFragment } = render(
|
|
78
|
+
<Select variant={SelectVariant.single} onSelect={jest.fn()} onToggle={jest.fn()} isOpen ouiaId="test-id">
|
|
62
79
|
{selectOptions}
|
|
63
80
|
</Select>
|
|
64
81
|
);
|
|
65
|
-
expect(
|
|
82
|
+
expect(asFragment()).toMatchSnapshot();
|
|
66
83
|
});
|
|
67
84
|
test('renders expanded successfully with custom objects', () => {
|
|
68
|
-
const
|
|
69
|
-
<Select variant={SelectVariant.single} onSelect={jest.fn()} onToggle={jest.fn()} isOpen>
|
|
85
|
+
const { asFragment } = render(
|
|
86
|
+
<Select variant={SelectVariant.single} onSelect={jest.fn()} onToggle={jest.fn()} isOpen ouiaId="test-id">
|
|
70
87
|
{selectOptionsCustom}
|
|
71
88
|
</Select>
|
|
72
89
|
);
|
|
73
|
-
expect(
|
|
90
|
+
expect(asFragment()).toMatchSnapshot();
|
|
74
91
|
});
|
|
75
92
|
});
|
|
76
93
|
|
|
77
94
|
test('renders up direction successfully', () => {
|
|
78
|
-
const
|
|
79
|
-
<Select
|
|
80
|
-
|
|
95
|
+
const { asFragment } = render(
|
|
96
|
+
<Select
|
|
97
|
+
toggleId="select-up"
|
|
98
|
+
variant={SelectVariant.single}
|
|
99
|
+
direction={SelectDirection.up}
|
|
100
|
+
onSelect={jest.fn()}
|
|
101
|
+
onToggle={jest.fn()}
|
|
102
|
+
ouiaId="test-id"
|
|
103
|
+
>
|
|
81
104
|
{selectOptions}
|
|
82
105
|
</Select>
|
|
83
106
|
);
|
|
84
|
-
expect(
|
|
107
|
+
expect(asFragment()).toMatchSnapshot();
|
|
85
108
|
});
|
|
86
109
|
|
|
87
110
|
describe('custom select filter', () => {
|
|
@@ -99,7 +122,7 @@ describe('select', () => {
|
|
|
99
122
|
: selectOptions;
|
|
100
123
|
return typeaheadFilteredChildren;
|
|
101
124
|
};
|
|
102
|
-
|
|
125
|
+
render(
|
|
103
126
|
<Select
|
|
104
127
|
toggleId="custom-select-filters"
|
|
105
128
|
variant={SelectVariant.typeahead}
|
|
@@ -107,25 +130,36 @@ describe('select', () => {
|
|
|
107
130
|
onToggle={jest.fn()}
|
|
108
131
|
onFilter={customFilter}
|
|
109
132
|
isOpen
|
|
133
|
+
ouiaId="test-id"
|
|
134
|
+
aria-label="Some label"
|
|
110
135
|
>
|
|
111
136
|
{selectOptions}
|
|
112
137
|
</Select>
|
|
113
138
|
);
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
expect(
|
|
139
|
+
|
|
140
|
+
userEvent.type(screen.getByTestId('test-id').querySelector('input'), 'r');
|
|
141
|
+
|
|
142
|
+
expect(screen.getByText('Mr')).toBeInTheDocument();
|
|
143
|
+
expect(screen.getByText('Mrs')).toBeInTheDocument();
|
|
144
|
+
expect(screen.getByText('Other')).toBeInTheDocument();
|
|
118
145
|
});
|
|
119
146
|
});
|
|
120
147
|
|
|
121
148
|
test('renders select groups successfully', () => {
|
|
122
|
-
const
|
|
123
|
-
<Select
|
|
149
|
+
const { asFragment } = render(
|
|
150
|
+
<Select
|
|
151
|
+
variant={SelectVariant.single}
|
|
152
|
+
onSelect={jest.fn()}
|
|
153
|
+
onToggle={jest.fn()}
|
|
154
|
+
isOpen
|
|
155
|
+
isGrouped
|
|
156
|
+
ouiaId="test-id"
|
|
157
|
+
>
|
|
124
158
|
<SelectGroup label="group 1">{selectOptions}</SelectGroup>
|
|
125
159
|
<SelectGroup label="group 2">{selectOptions}</SelectGroup>
|
|
126
160
|
</Select>
|
|
127
161
|
);
|
|
128
|
-
expect(
|
|
162
|
+
expect(asFragment()).toMatchSnapshot();
|
|
129
163
|
});
|
|
130
164
|
});
|
|
131
165
|
|
|
@@ -134,73 +168,88 @@ test('renders select with favorites successfully', () => {
|
|
|
134
168
|
<SelectOption id="option-1" value="Mr" key="00" />,
|
|
135
169
|
<SelectOption id="option-2" value="Mrs" key="01" />,
|
|
136
170
|
<SelectOption id="option-2" value="Ms" key="02" />,
|
|
137
|
-
<SelectOption id="option-4"
|
|
171
|
+
<SelectOption id="option-4" value="Other" key="03" />
|
|
138
172
|
];
|
|
139
|
-
const
|
|
140
|
-
<Select
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
173
|
+
const { asFragment } = render(
|
|
174
|
+
<Select
|
|
175
|
+
variant={SelectVariant.single}
|
|
176
|
+
onSelect={jest.fn()}
|
|
177
|
+
onToggle={jest.fn()}
|
|
178
|
+
isOpen
|
|
179
|
+
isGrouped
|
|
180
|
+
onFavorite={jest.fn()}
|
|
181
|
+
favorites={['option-1']}
|
|
182
|
+
ouiaId="test-id"
|
|
183
|
+
>
|
|
184
|
+
<SelectGroup key="group-1" label="group 1">
|
|
185
|
+
{selectOptionsFavorites}
|
|
186
|
+
</SelectGroup>
|
|
187
|
+
<SelectGroup key="group-2" label="group 2">
|
|
188
|
+
{selectOptionsFavorites}
|
|
189
|
+
</SelectGroup>
|
|
144
190
|
</Select>
|
|
145
191
|
);
|
|
146
|
-
expect(
|
|
192
|
+
expect(asFragment()).toMatchSnapshot();
|
|
147
193
|
});
|
|
148
194
|
|
|
149
195
|
describe('checkbox select', () => {
|
|
150
196
|
test('renders closed successfully', () => {
|
|
151
|
-
const
|
|
152
|
-
<Select
|
|
197
|
+
const { asFragment } = render(
|
|
198
|
+
<Select
|
|
199
|
+
toggleId="checkbox-select-closed"
|
|
200
|
+
variant={SelectVariant.checkbox}
|
|
201
|
+
onSelect={jest.fn()}
|
|
202
|
+
onToggle={jest.fn()}
|
|
203
|
+
ouiaId="test-id"
|
|
204
|
+
>
|
|
153
205
|
{selectOptions}
|
|
154
206
|
</Select>
|
|
155
207
|
);
|
|
156
|
-
expect(
|
|
208
|
+
expect(asFragment()).toMatchSnapshot();
|
|
157
209
|
});
|
|
158
210
|
|
|
159
211
|
test('renders checkbox select selections properly', () => {
|
|
160
|
-
const
|
|
161
|
-
<Select
|
|
212
|
+
const { asFragment } = render(
|
|
213
|
+
<Select
|
|
214
|
+
toggleId="checkbox-select-selections"
|
|
215
|
+
variant={SelectVariant.checkbox}
|
|
216
|
+
onToggle={jest.fn()}
|
|
217
|
+
selections={[selectOptions[0]]}
|
|
218
|
+
ouiaId="test-id"
|
|
219
|
+
>
|
|
162
220
|
{selectOptions}
|
|
163
221
|
</Select>
|
|
164
222
|
);
|
|
165
|
-
expect(
|
|
223
|
+
expect(asFragment()).toMatchSnapshot();
|
|
166
224
|
});
|
|
167
225
|
|
|
168
226
|
test('renders checkbox select selections properly when isCheckboxSelectionBadgeHidden is true', () => {
|
|
169
|
-
const
|
|
170
|
-
<Select
|
|
227
|
+
const { asFragment } = render(
|
|
228
|
+
<Select
|
|
229
|
+
toggleId="checkbox-select-hidden-badge"
|
|
230
|
+
variant={SelectVariant.checkbox}
|
|
231
|
+
onToggle={jest.fn()}
|
|
232
|
+
isCheckboxSelectionBadgeHidden
|
|
233
|
+
selections={[selectOptions[0]]}
|
|
234
|
+
ouiaId="test-id"
|
|
235
|
+
>
|
|
171
236
|
{selectOptions}
|
|
172
237
|
</Select>
|
|
173
238
|
);
|
|
174
|
-
expect(
|
|
239
|
+
expect(asFragment()).toMatchSnapshot();
|
|
175
240
|
});
|
|
176
241
|
|
|
177
242
|
test('renders expanded successfully', () => {
|
|
178
|
-
const
|
|
179
|
-
<Select variant={SelectVariant.checkbox} onSelect={jest.fn()} onToggle={jest.fn()} isOpen>
|
|
243
|
+
const { asFragment } = render(
|
|
244
|
+
<Select variant={SelectVariant.checkbox} onSelect={jest.fn()} onToggle={jest.fn()} isOpen ouiaId="test-id">
|
|
180
245
|
{selectOptions}
|
|
181
246
|
</Select>
|
|
182
247
|
);
|
|
183
|
-
expect(
|
|
248
|
+
expect(asFragment()).toMatchSnapshot();
|
|
184
249
|
});
|
|
185
250
|
|
|
186
251
|
test('renders expanded with filtering successfully', () => {
|
|
187
|
-
const
|
|
188
|
-
<Select
|
|
189
|
-
variant={SelectVariant.checkbox}
|
|
190
|
-
onSelect={jest.fn()}
|
|
191
|
-
onToggle={jest.fn()}
|
|
192
|
-
onClear={jest.fn()}
|
|
193
|
-
isOpen
|
|
194
|
-
hasInlineFilter
|
|
195
|
-
>
|
|
196
|
-
{selectOptions}
|
|
197
|
-
</Select>
|
|
198
|
-
);
|
|
199
|
-
expect(view.container).toMatchSnapshot();
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
test('renders expanded with filtering successfully', () => {
|
|
203
|
-
const view = render(
|
|
252
|
+
const { asFragment } = render(
|
|
204
253
|
<Select
|
|
205
254
|
toggleId="checkbox-select-expanded-filtered"
|
|
206
255
|
variant={SelectVariant.checkbox}
|
|
@@ -209,153 +258,124 @@ describe('checkbox select', () => {
|
|
|
209
258
|
onClear={jest.fn()}
|
|
210
259
|
isOpen
|
|
211
260
|
hasInlineFilter
|
|
261
|
+
ouiaId="test-id"
|
|
212
262
|
>
|
|
213
263
|
{selectOptions}
|
|
214
264
|
</Select>
|
|
215
265
|
);
|
|
216
|
-
expect(
|
|
266
|
+
expect(asFragment()).toMatchSnapshot();
|
|
217
267
|
});
|
|
218
268
|
|
|
219
269
|
test('renders expanded successfully with custom objects', () => {
|
|
220
|
-
const
|
|
221
|
-
<Select variant={SelectVariant.checkbox} onSelect={jest.fn()} onToggle={jest.fn()} isOpen>
|
|
270
|
+
const { asFragment } = render(
|
|
271
|
+
<Select variant={SelectVariant.checkbox} onSelect={jest.fn()} onToggle={jest.fn()} isOpen ouiaId="test-id">
|
|
222
272
|
{selectOptionsCustom}
|
|
223
273
|
</Select>
|
|
224
274
|
);
|
|
225
|
-
expect(
|
|
275
|
+
expect(asFragment()).toMatchSnapshot();
|
|
226
276
|
});
|
|
227
277
|
|
|
228
278
|
test('renders checkbox select groups successfully', () => {
|
|
229
|
-
const
|
|
230
|
-
<Select
|
|
279
|
+
const { asFragment } = render(
|
|
280
|
+
<Select
|
|
281
|
+
variant={SelectVariant.checkbox}
|
|
282
|
+
onSelect={jest.fn()}
|
|
283
|
+
onToggle={jest.fn()}
|
|
284
|
+
isOpen
|
|
285
|
+
isGrouped
|
|
286
|
+
ouiaId="test-id"
|
|
287
|
+
>
|
|
231
288
|
<SelectGroup label="group 1">{selectOptions}</SelectGroup>
|
|
232
289
|
<SelectGroup label="group 2">{selectOptions}</SelectGroup>
|
|
233
290
|
</Select>
|
|
234
291
|
);
|
|
235
|
-
expect(
|
|
292
|
+
expect(asFragment()).toMatchSnapshot();
|
|
236
293
|
});
|
|
237
294
|
});
|
|
238
295
|
|
|
239
296
|
describe('typeahead select', () => {
|
|
240
297
|
test('renders closed successfully', () => {
|
|
241
|
-
const
|
|
242
|
-
<Select
|
|
298
|
+
const { asFragment } = render(
|
|
299
|
+
<Select
|
|
300
|
+
toggleId="typeahead-select-closed"
|
|
301
|
+
variant={SelectVariant.typeahead}
|
|
302
|
+
onSelect={jest.fn()}
|
|
303
|
+
onToggle={jest.fn()}
|
|
304
|
+
ouiaId="test-id"
|
|
305
|
+
>
|
|
243
306
|
{selectOptions}
|
|
244
307
|
</Select>
|
|
245
308
|
);
|
|
246
|
-
expect(
|
|
309
|
+
expect(asFragment()).toMatchSnapshot();
|
|
247
310
|
});
|
|
248
311
|
|
|
249
312
|
test('renders expanded successfully', () => {
|
|
250
|
-
const
|
|
251
|
-
<Select variant={SelectVariant.typeahead} onSelect={jest.fn()} onToggle={jest.fn()} isOpen>
|
|
313
|
+
const { asFragment } = render(
|
|
314
|
+
<Select variant={SelectVariant.typeahead} onSelect={jest.fn()} onToggle={jest.fn()} isOpen ouiaId="test-id">
|
|
252
315
|
{selectOptions}
|
|
253
316
|
</Select>
|
|
254
317
|
);
|
|
255
|
-
expect(
|
|
318
|
+
expect(asFragment()).toMatchSnapshot();
|
|
256
319
|
});
|
|
257
320
|
|
|
258
321
|
test('renders selected successfully', () => {
|
|
259
|
-
const
|
|
260
|
-
<Select
|
|
261
|
-
{
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
const mockEvent = { target: { value: 'test' } } as React.ChangeEvent<HTMLInputElement>;
|
|
269
|
-
const view = mount(
|
|
270
|
-
<Select variant={SelectVariant.typeahead} onSelect={jest.fn()} onToggle={jest.fn()} onClear={jest.fn()} isOpen>
|
|
322
|
+
const { asFragment } = render(
|
|
323
|
+
<Select
|
|
324
|
+
variant={SelectVariant.typeahead}
|
|
325
|
+
selections="Mr"
|
|
326
|
+
onSelect={jest.fn()}
|
|
327
|
+
onToggle={jest.fn()}
|
|
328
|
+
isOpen
|
|
329
|
+
ouiaId="test-id"
|
|
330
|
+
>
|
|
271
331
|
{selectOptions}
|
|
272
332
|
</Select>
|
|
273
333
|
);
|
|
274
|
-
|
|
275
|
-
inst.onChange(mockEvent);
|
|
276
|
-
view.update();
|
|
277
|
-
expect(view).toMatchSnapshot();
|
|
334
|
+
expect(asFragment()).toMatchSnapshot();
|
|
278
335
|
});
|
|
279
336
|
|
|
280
337
|
test('test select existing option on a non-creatable select', () => {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
<Select variant={SelectVariant.typeahead} onToggle={jest.fn()} isOpen>
|
|
338
|
+
render(
|
|
339
|
+
<Select variant={SelectVariant.typeahead} onToggle={jest.fn()} isOpen ouiaId="test-id">
|
|
284
340
|
{selectOptions}
|
|
285
341
|
</Select>
|
|
286
342
|
);
|
|
287
|
-
const inst = view.find('Select').instance() as any;
|
|
288
|
-
inst.onChange(mockEvent);
|
|
289
|
-
inst.handleTypeaheadKeys('enter');
|
|
290
|
-
view.update();
|
|
291
|
-
expect(view).toMatchSnapshot();
|
|
292
|
-
});
|
|
293
343
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
const mockEvent = { target: { value: 'zzz' } } as React.ChangeEvent<HTMLInputElement>;
|
|
298
|
-
const view = mount(
|
|
299
|
-
<Select variant={SelectVariant.typeahead} onToggle={jest.fn()} isOpen isInputValuePersisted>
|
|
300
|
-
{selectOptions}
|
|
301
|
-
</Select>
|
|
302
|
-
);
|
|
303
|
-
const inst = view.find('Select').instance() as any;
|
|
304
|
-
inst.onChange(mockEvent);
|
|
305
|
-
inst.handleTypeaheadKeys('tab');
|
|
306
|
-
view.update();
|
|
307
|
-
expect(view).toMatchSnapshot();
|
|
308
|
-
});
|
|
344
|
+
const input = screen.getByTestId('test-id').querySelector('input');
|
|
345
|
+
userEvent.type(input, 'Other');
|
|
346
|
+
userEvent.type(input, '{enter}');
|
|
309
347
|
|
|
310
|
-
|
|
311
|
-
const mockEvent = { target: { value: 'NonExistingOption' } } as React.ChangeEvent<HTMLInputElement>;
|
|
312
|
-
const view = mount(
|
|
313
|
-
<Select variant={SelectVariant.typeahead} onToggle={jest.fn()} isOpen>
|
|
314
|
-
{selectOptions}
|
|
315
|
-
</Select>
|
|
316
|
-
);
|
|
317
|
-
const inst = view.find('Select').instance() as any;
|
|
318
|
-
inst.onChange(mockEvent);
|
|
319
|
-
inst.handleTypeaheadKeys('enter');
|
|
320
|
-
view.update();
|
|
321
|
-
expect(view).toMatchSnapshot();
|
|
322
|
-
});
|
|
323
|
-
|
|
324
|
-
xtest('test creatable option', () => {
|
|
325
|
-
const mockEvent = { target: { value: 'test' } } as React.ChangeEvent<HTMLInputElement>;
|
|
326
|
-
const view = mount(
|
|
327
|
-
<Select variant={SelectVariant.typeahead} onToggle={jest.fn()} isOpen isCreatable>
|
|
328
|
-
{selectOptions}
|
|
329
|
-
</Select>
|
|
330
|
-
);
|
|
331
|
-
const inst = view.find('Select').instance() as any;
|
|
332
|
-
inst.onChange(mockEvent);
|
|
333
|
-
view.update();
|
|
334
|
-
expect(view).toMatchSnapshot();
|
|
348
|
+
expect(screen.getByText('Other')).toBeVisible();
|
|
335
349
|
});
|
|
336
350
|
});
|
|
337
351
|
|
|
338
352
|
describe('typeahead multi select', () => {
|
|
339
353
|
test('renders closed successfully', () => {
|
|
340
|
-
const
|
|
341
|
-
<Select
|
|
354
|
+
const { asFragment } = render(
|
|
355
|
+
<Select
|
|
356
|
+
toggleId="typeahead-multi-select-closed"
|
|
357
|
+
variant={SelectVariant.typeaheadMulti}
|
|
358
|
+
onSelect={jest.fn()}
|
|
359
|
+
onToggle={jest.fn()}
|
|
360
|
+
ouiaId="test-id"
|
|
361
|
+
>
|
|
342
362
|
{selectOptions}
|
|
343
363
|
</Select>
|
|
344
364
|
);
|
|
345
|
-
expect(
|
|
365
|
+
expect(asFragment()).toMatchSnapshot();
|
|
346
366
|
});
|
|
347
367
|
|
|
348
368
|
test('renders expanded successfully', () => {
|
|
349
|
-
const
|
|
350
|
-
<Select variant={SelectVariant.typeaheadMulti} onSelect={jest.fn()} onToggle={jest.fn()} isOpen>
|
|
369
|
+
const { asFragment } = render(
|
|
370
|
+
<Select variant={SelectVariant.typeaheadMulti} onSelect={jest.fn()} onToggle={jest.fn()} isOpen ouiaId="test-id">
|
|
351
371
|
{selectOptions}
|
|
352
372
|
</Select>
|
|
353
373
|
);
|
|
354
|
-
expect(
|
|
374
|
+
expect(asFragment()).toMatchSnapshot();
|
|
355
375
|
});
|
|
356
376
|
|
|
357
377
|
test('renders selected successfully', () => {
|
|
358
|
-
const
|
|
378
|
+
const { asFragment } = render(
|
|
359
379
|
<Select
|
|
360
380
|
toggleId="typeahead-multi-select-selected"
|
|
361
381
|
variant={SelectVariant.typeaheadMulti}
|
|
@@ -363,24 +383,12 @@ describe('typeahead multi select', () => {
|
|
|
363
383
|
onSelect={jest.fn()}
|
|
364
384
|
onToggle={jest.fn()}
|
|
365
385
|
isOpen
|
|
386
|
+
ouiaId="test-id"
|
|
366
387
|
>
|
|
367
388
|
{selectOptions}
|
|
368
389
|
</Select>
|
|
369
390
|
);
|
|
370
|
-
expect(
|
|
371
|
-
});
|
|
372
|
-
|
|
373
|
-
xtest('test onChange', () => {
|
|
374
|
-
const mockEvent = { target: { value: 'test' } } as React.ChangeEvent<HTMLInputElement>;
|
|
375
|
-
const view = mount(
|
|
376
|
-
<Select variant={SelectVariant.typeahead} onSelect={jest.fn()} onToggle={jest.fn()} onClear={jest.fn()} isOpen>
|
|
377
|
-
{selectOptions}
|
|
378
|
-
</Select>
|
|
379
|
-
);
|
|
380
|
-
const inst = view.find('Select').instance() as any;
|
|
381
|
-
inst.onChange(mockEvent);
|
|
382
|
-
view.update();
|
|
383
|
-
expect(view).toMatchSnapshot();
|
|
391
|
+
expect(asFragment()).toMatchSnapshot();
|
|
384
392
|
});
|
|
385
393
|
});
|
|
386
394
|
|
|
@@ -388,89 +396,124 @@ describe('API', () => {
|
|
|
388
396
|
test('click on item', () => {
|
|
389
397
|
const mockToggle = jest.fn();
|
|
390
398
|
const mockSelect = jest.fn();
|
|
391
|
-
|
|
392
|
-
|
|
399
|
+
|
|
400
|
+
render(
|
|
401
|
+
<Select variant="single" onToggle={mockToggle} onSelect={mockSelect} isOpen ouiaId="test-id">
|
|
393
402
|
{selectOptions}
|
|
394
403
|
</Select>
|
|
395
404
|
);
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
expect(
|
|
401
|
-
expect(mockSelect.mock.calls).toHaveLength(1);
|
|
405
|
+
|
|
406
|
+
userEvent.click(screen.getByRole('option', { name: 'Mr' }));
|
|
407
|
+
|
|
408
|
+
expect(mockToggle).not.toHaveBeenCalled();
|
|
409
|
+
expect(mockSelect).toHaveBeenCalled();
|
|
402
410
|
});
|
|
403
411
|
|
|
404
412
|
test('children only, no console error', () => {
|
|
405
413
|
const myMock = jest.fn();
|
|
406
414
|
global.console = { ...global.console, error: myMock };
|
|
407
|
-
|
|
415
|
+
|
|
416
|
+
render(
|
|
408
417
|
<Select variant="single" onSelect={jest.fn()} onToggle={jest.fn()} isOpen>
|
|
409
418
|
{selectOptions}
|
|
410
419
|
</Select>
|
|
411
420
|
);
|
|
421
|
+
|
|
412
422
|
expect(myMock).not.toBeCalled();
|
|
413
423
|
});
|
|
414
424
|
});
|
|
415
425
|
|
|
416
|
-
|
|
417
426
|
describe('toggle icon', () => {
|
|
418
427
|
const ToggleIcon = <div>Icon</div>;
|
|
428
|
+
|
|
419
429
|
test('select single', () => {
|
|
420
|
-
|
|
421
|
-
<Select
|
|
430
|
+
render(
|
|
431
|
+
<Select
|
|
432
|
+
toggleId="select-toggle-icon-single"
|
|
433
|
+
toggleIcon={ToggleIcon}
|
|
434
|
+
variant={SelectVariant.single}
|
|
435
|
+
onSelect={jest.fn()}
|
|
436
|
+
onToggle={jest.fn()}
|
|
437
|
+
>
|
|
422
438
|
{selectOptions}
|
|
423
439
|
</Select>
|
|
424
440
|
);
|
|
425
|
-
expect(
|
|
441
|
+
expect(screen.getByText('Icon')).toBeInTheDocument();
|
|
426
442
|
});
|
|
427
443
|
|
|
428
444
|
test('select checkbox', () => {
|
|
429
|
-
|
|
430
|
-
<Select
|
|
445
|
+
render(
|
|
446
|
+
<Select
|
|
447
|
+
toggleId="checkbox-select-toggle-icon"
|
|
448
|
+
toggleIcon={ToggleIcon}
|
|
449
|
+
variant={SelectVariant.checkbox}
|
|
450
|
+
onSelect={jest.fn()}
|
|
451
|
+
onToggle={jest.fn()}
|
|
452
|
+
>
|
|
431
453
|
{selectOptions}
|
|
432
454
|
</Select>
|
|
433
455
|
);
|
|
434
|
-
expect(
|
|
456
|
+
expect(screen.getByText('Icon')).toBeInTheDocument();
|
|
435
457
|
});
|
|
436
458
|
|
|
437
459
|
test('typeahead select', () => {
|
|
438
|
-
|
|
439
|
-
<Select
|
|
460
|
+
render(
|
|
461
|
+
<Select
|
|
462
|
+
toggleId="typeahead-select-toggle-icon"
|
|
463
|
+
toggleIcon={ToggleIcon}
|
|
464
|
+
variant={SelectVariant.typeahead}
|
|
465
|
+
onSelect={jest.fn()}
|
|
466
|
+
onToggle={jest.fn()}
|
|
467
|
+
>
|
|
440
468
|
{selectOptions}
|
|
441
469
|
</Select>
|
|
442
470
|
);
|
|
443
|
-
expect(
|
|
471
|
+
expect(screen.getByText('Icon')).toBeInTheDocument();
|
|
444
472
|
});
|
|
445
473
|
|
|
446
474
|
test('typeahead multi select', () => {
|
|
447
|
-
|
|
448
|
-
<Select
|
|
475
|
+
render(
|
|
476
|
+
<Select
|
|
477
|
+
toggleId="multi-typeahead-select-toggle-icon"
|
|
478
|
+
toggleIcon={ToggleIcon}
|
|
479
|
+
variant={SelectVariant.typeaheadMulti}
|
|
480
|
+
onSelect={jest.fn()}
|
|
481
|
+
onToggle={jest.fn()}
|
|
482
|
+
>
|
|
449
483
|
{selectOptions}
|
|
450
484
|
</Select>
|
|
451
485
|
);
|
|
452
|
-
expect(
|
|
486
|
+
expect(screen.getByText('Icon')).toBeInTheDocument();
|
|
453
487
|
});
|
|
454
488
|
});
|
|
455
489
|
|
|
456
490
|
describe('select with custom content', () => {
|
|
457
491
|
test('renders closed successfully', () => {
|
|
458
|
-
|
|
459
|
-
expect(
|
|
492
|
+
render(<Select toggleId="select-custom-content" customContent="testing custom" onToggle={jest.fn()} />);
|
|
493
|
+
expect(screen.queryByText('testing custom')).toBeNull();
|
|
460
494
|
});
|
|
495
|
+
|
|
461
496
|
test('renders expanded successfully', () => {
|
|
462
|
-
|
|
463
|
-
expect(
|
|
497
|
+
render(<Select customContent="testing custom" onToggle={jest.fn()} isOpen />);
|
|
498
|
+
expect(screen.getByText('testing custom')).toBeInTheDocument();
|
|
464
499
|
});
|
|
465
500
|
});
|
|
466
501
|
|
|
467
502
|
describe('select with placeholder', () => {
|
|
468
503
|
test('applies the placeholder class when not selected', () => {
|
|
469
|
-
|
|
470
|
-
expect(
|
|
504
|
+
render(<Select variant={SelectVariant.single} onSelect={jest.fn()} onToggle={jest.fn()} hasPlaceholderStyle />);
|
|
505
|
+
expect(screen.getByRole('button', { name: 'Options menu' })).toHaveClass('pf-m-placeholder');
|
|
471
506
|
});
|
|
472
507
|
test('does not apply the placeholder class when selected', () => {
|
|
473
|
-
|
|
474
|
-
|
|
508
|
+
render(
|
|
509
|
+
<Select
|
|
510
|
+
variant={SelectVariant.single}
|
|
511
|
+
onSelect={jest.fn()}
|
|
512
|
+
onToggle={jest.fn()}
|
|
513
|
+
hasPlaceholderStyle
|
|
514
|
+
selections={['selected option']}
|
|
515
|
+
/>
|
|
516
|
+
);
|
|
517
|
+
expect(screen.getByRole('button', { name: 'Options menu' })).not.toHaveClass('pf-m-placeholder');
|
|
475
518
|
});
|
|
476
|
-
});
|
|
519
|
+
});
|