import { test, expect } from 'vitest';
import { render, screen } from '@testing-library/react';
import RadioButton, { RadioGroup } from '../RadioButton';
test('radio group renders correctly', () => {
render(
);
const radioGroup = screen.getByTestId('radiogroup');
expect(radioGroup).toHaveClass('ds_radios', 'ds_field-group');
expect(radioGroup).not.toHaveClass('ds_field-group--inline');
const radio = screen.getByRole('radio');
const radioContainer = radio.parentElement;
expect(radioContainer).not.toHaveClass('ds_radio--small');
});
test('radio group passes all expected item params', () => {
const RADIO_NAME = 'radioname';
render(
foo
);
const radio = screen.getByRole('radio');
const radioContainer = radio.parentElement;
expect(radio).toHaveAttribute('name', RADIO_NAME);
expect(radioContainer).toHaveClass('ds_radio--small');
});
test('inline radio group', () => {
render(
);
const radio = screen.getAllByRole('radio')[0];
const groupContainer = radio.parentElement?.parentElement;
expect(groupContainer).toHaveClass('ds_field-group--inline');
});
test('passing additional props', () => {
render(
);
const radioGroup = screen.getByTestId('radiogroup');
expect(radioGroup?.dataset.test).toEqual('foo');
});
test('passing additional CSS classes', () => {
render(
);
const radioGroup = screen.getByTestId('radiogroup');
expect(radioGroup).toHaveClass('foo');
});