Skip to content

Commit 0159b0c

Browse files
Update tests for conditional content
1 parent a8a6b18 commit 0159b0c

2 files changed

Lines changed: 42 additions & 20 deletions

File tree

‎src/components/form-elements/checkboxes/__tests__/Checkboxes.test.tsx‎

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,42 @@ describe('Checkboxes', () => {
194194
expect(fieldRef.current).toHaveClass('nhsuk-checkboxes__input');
195195
});
196196

197+
it('does not render the conditional content if not checked', async () => {
198+
const { container } = await renderClient(
199+
<Checkboxes id="example" name="example">
200+
<Checkboxes.Item value="email" conditional={<p className="conditional-test">Test</p>}>
201+
Email
202+
</Checkboxes.Item>
203+
<Checkboxes.Item value="phone">Phone</Checkboxes.Item>
204+
<Checkboxes.Item value="text">Text message</Checkboxes.Item>
205+
</Checkboxes>,
206+
{ moduleName: 'nhsuk-checkboxes' },
207+
);
208+
209+
const conditionalElement = container.querySelector('.conditional-test');
210+
expect(conditionalElement?.parentElement).toHaveClass('nhsuk-checkboxes__conditional--hidden');
211+
});
212+
213+
it('renders the conditional content if checked', async () => {
214+
const { container } = await renderClient(
215+
<Checkboxes id="example" name="example">
216+
<Checkboxes.Item
217+
value="email"
218+
conditional={<p className="conditional-test">Test</p>}
219+
checked
220+
>
221+
Email
222+
</Checkboxes.Item>
223+
<Checkboxes.Item value="phone">Phone</Checkboxes.Item>
224+
<Checkboxes.Item value="text">Text message</Checkboxes.Item>
225+
</Checkboxes>,
226+
{ moduleName: 'nhsuk-checkboxes' },
227+
);
228+
229+
const conditionalElement = container.querySelector('.conditional-test');
230+
expect(conditionalElement).toHaveTextContent('Test');
231+
});
232+
197233
it('sets attribute `data-checkbox-exclusive` when items are exclusive', async () => {
198234
const { container } = await renderClient(
199235
<Checkboxes id="example" name="example">

‎src/components/form-elements/radios/__tests__/Radios.test.tsx‎

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -121,20 +121,13 @@ describe('Radios', () => {
121121
expect(fieldRef.current).toHaveClass('nhsuk-radios__input');
122122
});
123123

124-
it('does not render the conditional content if checked is false', async () => {
124+
it('does not render the conditional content if not checked', async () => {
125125
const { container } = await renderClient(
126126
<Radios id="example" name="example">
127-
<Radios.Item
128-
id="example-1"
129-
value="yes"
130-
checked={false}
131-
conditional={<p className="conditional-test">Test</p>}
132-
>
127+
<Radios.Item value="yes" conditional={<p className="conditional-test">Test</p>}>
133128
Yes
134129
</Radios.Item>
135-
<Radios.Item id="example-2" value="no">
136-
No
137-
</Radios.Item>
130+
<Radios.Item value="no">No</Radios.Item>
138131
</Radios>,
139132
{ moduleName: 'nhsuk-radios' },
140133
);
@@ -143,20 +136,13 @@ describe('Radios', () => {
143136
expect(conditionalElement?.parentElement).toHaveClass('nhsuk-radios__conditional--hidden');
144137
});
145138

146-
it('renders the conditional content if the radio reference = selected radio', async () => {
139+
it('renders the conditional content if checked', async () => {
147140
const { container } = await renderClient(
148141
<Radios id="example" name="example">
149-
<Radios.Item
150-
id="example-1"
151-
value="yes"
152-
checked={true}
153-
conditional={<p className="conditional-test">Test</p>}
154-
>
142+
<Radios.Item value="yes" conditional={<p className="conditional-test">Test</p>} checked>
155143
Yes
156144
</Radios.Item>
157-
<Radios.Item id="example-2" value="no">
158-
No
159-
</Radios.Item>
145+
<Radios.Item value="no">No</Radios.Item>
160146
</Radios>,
161147
{ moduleName: 'nhsuk-radios' },
162148
);

0 commit comments

Comments
 (0)