@pie-lib/config-ui 11.30.3-next.2 → 11.30.3-next.203
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 +19 -67
- package/lib/alert-dialog.js +35 -42
- package/lib/alert-dialog.js.map +1 -1
- package/lib/checkbox.js +56 -71
- package/lib/checkbox.js.map +1 -1
- package/lib/choice-configuration/feedback-menu.js +29 -64
- package/lib/choice-configuration/feedback-menu.js.map +1 -1
- package/lib/choice-configuration/index.js +202 -262
- package/lib/choice-configuration/index.js.map +1 -1
- package/lib/choice-utils.js +6 -18
- package/lib/choice-utils.js.map +1 -1
- package/lib/feedback-config/feedback-selector.js +79 -115
- package/lib/feedback-config/feedback-selector.js.map +1 -1
- package/lib/feedback-config/group.js +26 -40
- package/lib/feedback-config/group.js.map +1 -1
- package/lib/feedback-config/index.js +47 -90
- package/lib/feedback-config/index.js.map +1 -1
- package/lib/form-section.js +31 -33
- package/lib/form-section.js.map +1 -1
- package/lib/help.js +39 -80
- package/lib/help.js.map +1 -1
- package/lib/index.js +1 -31
- package/lib/index.js.map +1 -1
- package/lib/input.js +21 -54
- package/lib/input.js.map +1 -1
- package/lib/inputs.js +61 -95
- package/lib/inputs.js.map +1 -1
- package/lib/langs.js +58 -101
- package/lib/langs.js.map +1 -1
- package/lib/layout/config-layout.js +40 -70
- package/lib/layout/config-layout.js.map +1 -1
- package/lib/layout/index.js +0 -3
- package/lib/layout/index.js.map +1 -1
- package/lib/layout/layout-contents.js +72 -103
- package/lib/layout/layout-contents.js.map +1 -1
- package/lib/layout/settings-box.js +27 -56
- package/lib/layout/settings-box.js.map +1 -1
- package/lib/mui-box/index.js +41 -57
- package/lib/mui-box/index.js.map +1 -1
- package/lib/number-text-field-custom.js +79 -161
- package/lib/number-text-field-custom.js.map +1 -1
- package/lib/number-text-field.js +80 -114
- package/lib/number-text-field.js.map +1 -1
- package/lib/radio-with-label.js +30 -31
- package/lib/radio-with-label.js.map +1 -1
- package/lib/settings/display-size.js +16 -32
- package/lib/settings/display-size.js.map +1 -1
- package/lib/settings/index.js +14 -47
- package/lib/settings/index.js.map +1 -1
- package/lib/settings/panel.js +159 -229
- package/lib/settings/panel.js.map +1 -1
- package/lib/settings/settings-radio-label.js +28 -30
- package/lib/settings/settings-radio-label.js.map +1 -1
- package/lib/settings/toggle.js +35 -46
- package/lib/settings/toggle.js.map +1 -1
- package/lib/tabs/index.js +22 -57
- package/lib/tabs/index.js.map +1 -1
- package/lib/tags-input/index.js +50 -99
- package/lib/tags-input/index.js.map +1 -1
- package/lib/two-choice.js +46 -90
- package/lib/two-choice.js.map +1 -1
- package/lib/with-stateful-model.js +8 -31
- package/lib/with-stateful-model.js.map +1 -1
- package/package.json +12 -20
- package/src/__tests__/alert-dialog.test.jsx +283 -0
- package/src/__tests__/checkbox.test.jsx +249 -0
- package/src/__tests__/form-section.test.jsx +334 -0
- package/src/__tests__/help.test.jsx +184 -0
- package/src/__tests__/input.test.jsx +192 -0
- package/src/__tests__/langs.test.jsx +435 -15
- package/src/__tests__/number-text-field-custom.test.jsx +438 -0
- package/src/__tests__/number-text-field.test.jsx +295 -102
- package/src/__tests__/radio-with-label.test.jsx +259 -0
- package/src/__tests__/settings-panel.test.js +66 -83
- package/src/__tests__/settings.test.jsx +515 -0
- package/src/__tests__/tabs.test.jsx +193 -0
- package/src/__tests__/two-choice.test.js +104 -18
- package/src/__tests__/with-stateful-model.test.jsx +145 -0
- package/src/alert-dialog.jsx +21 -19
- package/src/checkbox.jsx +42 -46
- package/src/choice-configuration/__tests__/feedback-menu.test.jsx +157 -4
- package/src/choice-configuration/__tests__/index.test.jsx +198 -56
- package/src/choice-configuration/feedback-menu.jsx +6 -6
- package/src/choice-configuration/index.jsx +201 -203
- package/src/feedback-config/__tests__/feedback-config.test.jsx +130 -60
- package/src/feedback-config/__tests__/feedback-selector.test.jsx +81 -44
- package/src/feedback-config/feedback-selector.jsx +50 -55
- package/src/feedback-config/group.jsx +21 -22
- package/src/feedback-config/index.jsx +27 -29
- package/src/form-section.jsx +26 -18
- package/src/help.jsx +20 -28
- package/src/input.jsx +1 -1
- package/src/inputs.jsx +34 -50
- package/src/langs.jsx +41 -46
- package/src/layout/__tests__/config.layout.test.jsx +55 -38
- package/src/layout/config-layout.jsx +38 -32
- package/src/layout/layout-contents.jsx +38 -39
- package/src/layout/settings-box.jsx +16 -19
- package/src/mui-box/index.jsx +35 -43
- package/src/number-text-field-custom.jsx +30 -36
- package/src/number-text-field.jsx +45 -29
- package/src/radio-with-label.jsx +25 -13
- package/src/settings/display-size.jsx +12 -11
- package/src/settings/panel.jsx +97 -91
- package/src/settings/settings-radio-label.jsx +25 -13
- package/src/settings/toggle.jsx +30 -29
- package/src/tabs/index.jsx +8 -8
- package/src/tags-input/__tests__/index.test.jsx +88 -37
- package/src/tags-input/index.jsx +35 -38
- package/src/two-choice.jsx +15 -19
- package/esm/index.css +0 -847
- package/esm/index.js +0 -213950
- package/esm/index.js.map +0 -1
- package/esm/package.json +0 -3
- package/src/__tests__/__snapshots__/langs.test.jsx.snap +0 -32
- package/src/__tests__/__snapshots__/settings-panel.test.js.snap +0 -115
- package/src/__tests__/__snapshots__/two-choice.test.js.snap +0 -171
- package/src/choice-configuration/__tests__/__snapshots__/feedback-menu.test.jsx.snap +0 -51
- package/src/choice-configuration/__tests__/__snapshots__/index.test.jsx.snap +0 -519
- package/src/feedback-config/__tests__/__snapshots__/feedback-config.test.jsx.snap +0 -27
- package/src/feedback-config/__tests__/__snapshots__/feedback-selector.test.jsx.snap +0 -38
- package/src/layout/__tests__/__snapshots__/config.layout.test.jsx.snap +0 -59
- package/src/tags-input/__tests__/__snapshots__/index.test.jsx.snap +0 -170
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
|
+
import userEvent from '@testing-library/user-event';
|
|
4
|
+
import RadioWithLabel from '../radio-with-label';
|
|
5
|
+
|
|
6
|
+
describe('RadioWithLabel Component', () => {
|
|
7
|
+
const onChange = jest.fn();
|
|
8
|
+
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
onChange.mockClear();
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
describe('Rendering', () => {
|
|
14
|
+
it('should render radio button with label', () => {
|
|
15
|
+
render(
|
|
16
|
+
<RadioWithLabel
|
|
17
|
+
label="Option 1"
|
|
18
|
+
value="option1"
|
|
19
|
+
checked={false}
|
|
20
|
+
onChange={onChange}
|
|
21
|
+
/>,
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
expect(screen.getByText('Option 1')).toBeInTheDocument();
|
|
25
|
+
expect(screen.getByRole('radio')).toBeInTheDocument();
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('should render checked radio button', () => {
|
|
29
|
+
render(
|
|
30
|
+
<RadioWithLabel
|
|
31
|
+
label="Selected"
|
|
32
|
+
value="selected"
|
|
33
|
+
checked={true}
|
|
34
|
+
onChange={onChange}
|
|
35
|
+
/>,
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
expect(screen.getByRole('radio')).toBeChecked();
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it('should render unchecked radio button', () => {
|
|
42
|
+
render(
|
|
43
|
+
<RadioWithLabel
|
|
44
|
+
label="Unselected"
|
|
45
|
+
value="unselected"
|
|
46
|
+
checked={false}
|
|
47
|
+
onChange={onChange}
|
|
48
|
+
/>,
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
expect(screen.getByRole('radio')).not.toBeChecked();
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
describe('User interaction', () => {
|
|
56
|
+
it('should call onChange when radio button is clicked', async () => {
|
|
57
|
+
const user = userEvent.setup();
|
|
58
|
+
render(
|
|
59
|
+
<RadioWithLabel
|
|
60
|
+
label="Option"
|
|
61
|
+
value="option"
|
|
62
|
+
checked={false}
|
|
63
|
+
onChange={onChange}
|
|
64
|
+
/>,
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
const radio = screen.getByRole('radio');
|
|
68
|
+
await user.click(radio);
|
|
69
|
+
|
|
70
|
+
expect(onChange).toHaveBeenCalled();
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it('should call onChange when label is clicked', async () => {
|
|
74
|
+
const user = userEvent.setup();
|
|
75
|
+
render(
|
|
76
|
+
<RadioWithLabel
|
|
77
|
+
label="Click me"
|
|
78
|
+
value="test"
|
|
79
|
+
checked={false}
|
|
80
|
+
onChange={onChange}
|
|
81
|
+
/>,
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
const label = screen.getByText('Click me');
|
|
85
|
+
await user.click(label);
|
|
86
|
+
|
|
87
|
+
expect(onChange).toHaveBeenCalled();
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
describe('Props', () => {
|
|
92
|
+
it('should accept different value types', () => {
|
|
93
|
+
const { container: stringContainer } = render(
|
|
94
|
+
<RadioWithLabel
|
|
95
|
+
label="String value"
|
|
96
|
+
value="string"
|
|
97
|
+
checked={false}
|
|
98
|
+
onChange={onChange}
|
|
99
|
+
/>,
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
const { container: numberContainer } = render(
|
|
103
|
+
<RadioWithLabel
|
|
104
|
+
label="Number value"
|
|
105
|
+
value={123}
|
|
106
|
+
checked={false}
|
|
107
|
+
onChange={onChange}
|
|
108
|
+
/>,
|
|
109
|
+
);
|
|
110
|
+
|
|
111
|
+
expect(stringContainer.querySelector('input[type="radio"]')).toBeInTheDocument();
|
|
112
|
+
expect(numberContainer.querySelector('input[type="radio"]')).toBeInTheDocument();
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
it('should display different labels', () => {
|
|
116
|
+
render(
|
|
117
|
+
<>
|
|
118
|
+
<RadioWithLabel
|
|
119
|
+
label="Label A"
|
|
120
|
+
value="a"
|
|
121
|
+
checked={false}
|
|
122
|
+
onChange={onChange}
|
|
123
|
+
/>
|
|
124
|
+
<RadioWithLabel
|
|
125
|
+
label="Label B"
|
|
126
|
+
value="b"
|
|
127
|
+
checked={false}
|
|
128
|
+
onChange={onChange}
|
|
129
|
+
/>
|
|
130
|
+
</>,
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
expect(screen.getByText('Label A')).toBeInTheDocument();
|
|
134
|
+
expect(screen.getByText('Label B')).toBeInTheDocument();
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
describe('Radio button group behavior', () => {
|
|
139
|
+
it('should allow multiple radio buttons to be rendered', () => {
|
|
140
|
+
render(
|
|
141
|
+
<>
|
|
142
|
+
<RadioWithLabel
|
|
143
|
+
label="Option 1"
|
|
144
|
+
value="opt1"
|
|
145
|
+
checked={true}
|
|
146
|
+
onChange={onChange}
|
|
147
|
+
/>
|
|
148
|
+
<RadioWithLabel
|
|
149
|
+
label="Option 2"
|
|
150
|
+
value="opt2"
|
|
151
|
+
checked={false}
|
|
152
|
+
onChange={onChange}
|
|
153
|
+
/>
|
|
154
|
+
<RadioWithLabel
|
|
155
|
+
label="Option 3"
|
|
156
|
+
value="opt3"
|
|
157
|
+
checked={false}
|
|
158
|
+
onChange={onChange}
|
|
159
|
+
/>
|
|
160
|
+
</>,
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
const radios = screen.getAllByRole('radio');
|
|
164
|
+
expect(radios).toHaveLength(3);
|
|
165
|
+
expect(radios[0]).toBeChecked();
|
|
166
|
+
expect(radios[1]).not.toBeChecked();
|
|
167
|
+
expect(radios[2]).not.toBeChecked();
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
it('should handle independent onChange callbacks for multiple radios', async () => {
|
|
171
|
+
const user = userEvent.setup();
|
|
172
|
+
const onChange1 = jest.fn();
|
|
173
|
+
const onChange2 = jest.fn();
|
|
174
|
+
const onChange3 = jest.fn();
|
|
175
|
+
|
|
176
|
+
render(
|
|
177
|
+
<>
|
|
178
|
+
<RadioWithLabel
|
|
179
|
+
label="Option 1"
|
|
180
|
+
value="opt1"
|
|
181
|
+
checked={true}
|
|
182
|
+
onChange={onChange1}
|
|
183
|
+
/>
|
|
184
|
+
<RadioWithLabel
|
|
185
|
+
label="Option 2"
|
|
186
|
+
value="opt2"
|
|
187
|
+
checked={false}
|
|
188
|
+
onChange={onChange2}
|
|
189
|
+
/>
|
|
190
|
+
<RadioWithLabel
|
|
191
|
+
label="Option 3"
|
|
192
|
+
value="opt3"
|
|
193
|
+
checked={false}
|
|
194
|
+
onChange={onChange3}
|
|
195
|
+
/>
|
|
196
|
+
</>,
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
const radios = screen.getAllByRole('radio');
|
|
200
|
+
|
|
201
|
+
await user.click(radios[1]);
|
|
202
|
+
expect(onChange2).toHaveBeenCalled();
|
|
203
|
+
expect(onChange1).not.toHaveBeenCalled();
|
|
204
|
+
expect(onChange3).not.toHaveBeenCalled();
|
|
205
|
+
|
|
206
|
+
onChange2.mockClear();
|
|
207
|
+
|
|
208
|
+
await user.click(radios[2]);
|
|
209
|
+
expect(onChange3).toHaveBeenCalled();
|
|
210
|
+
expect(onChange1).not.toHaveBeenCalled();
|
|
211
|
+
expect(onChange2).not.toHaveBeenCalled();
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
describe('Styling', () => {
|
|
216
|
+
it('should render with correct styling classes', () => {
|
|
217
|
+
const { container } = render(
|
|
218
|
+
<RadioWithLabel
|
|
219
|
+
label="Styled"
|
|
220
|
+
value="styled"
|
|
221
|
+
checked={false}
|
|
222
|
+
onChange={onChange}
|
|
223
|
+
/>,
|
|
224
|
+
);
|
|
225
|
+
|
|
226
|
+
expect(container.querySelector('[class*="MuiFormControlLabel"]')).toBeInTheDocument();
|
|
227
|
+
expect(container.querySelector('[class*="MuiRadio"]')).toBeInTheDocument();
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
describe('Edge cases', () => {
|
|
232
|
+
it('should handle empty string label', () => {
|
|
233
|
+
render(
|
|
234
|
+
<RadioWithLabel
|
|
235
|
+
label=""
|
|
236
|
+
value="empty"
|
|
237
|
+
checked={false}
|
|
238
|
+
onChange={onChange}
|
|
239
|
+
/>,
|
|
240
|
+
);
|
|
241
|
+
|
|
242
|
+
expect(screen.getByRole('radio')).toBeInTheDocument();
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
it('should handle long labels', () => {
|
|
246
|
+
const longLabel = 'This is a very long label that should wrap properly and not break the layout';
|
|
247
|
+
render(
|
|
248
|
+
<RadioWithLabel
|
|
249
|
+
label={longLabel}
|
|
250
|
+
value="long"
|
|
251
|
+
checked={false}
|
|
252
|
+
onChange={onChange}
|
|
253
|
+
/>,
|
|
254
|
+
);
|
|
255
|
+
|
|
256
|
+
expect(screen.getByText(longLabel)).toBeInTheDocument();
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
});
|
|
@@ -1,54 +1,42 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
3
|
import { Panel } from '../settings/panel';
|
|
4
4
|
import { toggle, radio, dropdown, numberField, numberFields } from '../settings';
|
|
5
5
|
|
|
6
6
|
describe('Settings Panel', () => {
|
|
7
|
-
let
|
|
8
|
-
let
|
|
9
|
-
let
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
range: {
|
|
35
|
-
label: 'Range',
|
|
36
|
-
suffix: 'px',
|
|
37
|
-
},
|
|
38
|
-
width: {
|
|
39
|
-
label: 'Width',
|
|
40
|
-
suffix: 'px',
|
|
41
|
-
min: 50,
|
|
42
|
-
max: 250,
|
|
43
|
-
},
|
|
44
|
-
}),
|
|
7
|
+
let onChange;
|
|
8
|
+
let configure;
|
|
9
|
+
let model;
|
|
10
|
+
let groups;
|
|
11
|
+
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
onChange = jest.fn();
|
|
14
|
+
configure = {
|
|
15
|
+
orientationLabel: 'Orientation',
|
|
16
|
+
settingsOrientation: true,
|
|
17
|
+
editChoiceLabel: false,
|
|
18
|
+
};
|
|
19
|
+
model = {
|
|
20
|
+
choiceAreaLayout: 'vertical',
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
groups = ({ configure }) => ({
|
|
24
|
+
'Group 1': {
|
|
25
|
+
choiceAreaLayout: configure.settingsOrientation && {
|
|
26
|
+
type: 'radio',
|
|
27
|
+
label: configure.orientationLabel,
|
|
28
|
+
choices: [
|
|
29
|
+
{ label: 'opt1', value: 'opt1' },
|
|
30
|
+
{ label: 'opt2', value: 'opt2' },
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
editChoiceLabel: { type: 'toggle', label: 'Edit choice label', isConfigProperty: true },
|
|
45
34
|
},
|
|
46
|
-
|
|
47
|
-
},
|
|
35
|
+
});
|
|
48
36
|
});
|
|
49
37
|
|
|
50
|
-
const
|
|
51
|
-
return
|
|
38
|
+
const renderComponent = (extras = {}) => {
|
|
39
|
+
return render(
|
|
52
40
|
<Panel
|
|
53
41
|
model={model}
|
|
54
42
|
configuration={configure}
|
|
@@ -60,58 +48,53 @@ describe('Settings Panel', () => {
|
|
|
60
48
|
);
|
|
61
49
|
};
|
|
62
50
|
|
|
63
|
-
describe('
|
|
64
|
-
it('renders', () => {
|
|
65
|
-
|
|
51
|
+
describe('rendering', () => {
|
|
52
|
+
it('renders settings panel', () => {
|
|
53
|
+
renderComponent();
|
|
66
54
|
|
|
67
|
-
expect(
|
|
55
|
+
expect(screen.getByText('Group 1')).toBeInTheDocument();
|
|
68
56
|
});
|
|
69
57
|
|
|
70
|
-
it('
|
|
71
|
-
|
|
72
|
-
groups: groups({
|
|
73
|
-
configure: {
|
|
74
|
-
...configure,
|
|
75
|
-
settingsOrientation: false,
|
|
76
|
-
},
|
|
77
|
-
}),
|
|
78
|
-
});
|
|
58
|
+
it('renders toggle settings', () => {
|
|
59
|
+
renderComponent();
|
|
79
60
|
|
|
80
|
-
|
|
61
|
+
// Toggle components render with Switch role in MUI v5
|
|
62
|
+
const toggles = screen.getAllByRole('switch');
|
|
63
|
+
expect(toggles.length).toBeGreaterThan(0);
|
|
81
64
|
});
|
|
82
|
-
});
|
|
83
65
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
{
|
|
91
|
-
...model,
|
|
92
|
-
test: false,
|
|
93
|
-
},
|
|
94
|
-
'test',
|
|
95
|
-
);
|
|
96
|
-
});
|
|
66
|
+
it('conditionally renders radio buttons based on configuration', () => {
|
|
67
|
+
renderComponent();
|
|
68
|
+
|
|
69
|
+
// Should render radio when settingsOrientation is true
|
|
70
|
+
expect(screen.getByText('Orientation')).toBeInTheDocument();
|
|
71
|
+
});
|
|
97
72
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
test: {
|
|
105
|
-
test: true,
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
'test.test',
|
|
109
|
-
);
|
|
73
|
+
it('does not render radio buttons when disabled in configuration', () => {
|
|
74
|
+
const disabledGroups = groups({
|
|
75
|
+
configure: {
|
|
76
|
+
...configure,
|
|
77
|
+
settingsOrientation: false,
|
|
78
|
+
},
|
|
110
79
|
});
|
|
80
|
+
|
|
81
|
+
render(
|
|
82
|
+
<Panel
|
|
83
|
+
model={model}
|
|
84
|
+
configuration={{ ...configure, settingsOrientation: false }}
|
|
85
|
+
onChangeModel={onChange}
|
|
86
|
+
onChangeConfiguration={onChange}
|
|
87
|
+
groups={disabledGroups}
|
|
88
|
+
/>,
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
// Should not render radio when settingsOrientation is false
|
|
92
|
+
expect(screen.queryByText('Orientation')).not.toBeInTheDocument();
|
|
111
93
|
});
|
|
112
94
|
});
|
|
113
95
|
});
|
|
114
96
|
|
|
97
|
+
// Utility function tests - these are simple unit tests that don't need RTL
|
|
115
98
|
describe('toggle', () => {
|
|
116
99
|
it('returns a toggle type object', () => {
|
|
117
100
|
const setting = toggle('Label');
|