diff options
Diffstat (limited to 'src/components/molecules/forms/radio-group/radio-group.test.tsx')
| -rw-r--r-- | src/components/molecules/forms/radio-group/radio-group.test.tsx | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/components/molecules/forms/radio-group/radio-group.test.tsx b/src/components/molecules/forms/radio-group/radio-group.test.tsx new file mode 100644 index 0000000..dba1541 --- /dev/null +++ b/src/components/molecules/forms/radio-group/radio-group.test.tsx @@ -0,0 +1,59 @@ +import { render, screen } from '../../../../../tests/utils'; +import { Legend } from '../../../atoms'; +import { RadioGroup } from './radio-group'; +import { getOptions, initialChoice } from './radio-group.fixture'; + +const doNothing = () => { + /* Do nothing. */ +}; + +describe('RadioGroup', () => { + it('renders a legend', () => { + const legend = 'Options:'; + + render( + <RadioGroup + legend={<Legend>{legend}</Legend>} + name="possimus" + onSwitch={doNothing} + options={getOptions()} + value={initialChoice} + /> + ); + + expect( + screen.getByRole('radiogroup', { name: legend }) + ).toBeInTheDocument(); + }); + + it('renders the correct number of radio', () => { + const options = getOptions(); + + render( + <RadioGroup + name="eaque" + onSwitch={doNothing} + options={options} + value={initialChoice} + /> + ); + + expect(screen.getAllByRole('radio')).toHaveLength(options.length); + }); + + it('can render an inlined radio group', () => { + const options = getOptions(); + + render( + <RadioGroup + isInline + name="architecto" + onSwitch={doNothing} + options={options} + value={initialChoice} + /> + ); + + expect(screen.getByRole('radiogroup')).toHaveClass('group--inline'); + }); +}); |
