import { Input } from '../inputs/Input';
import { lorem10, render, screen } from '../test-utils';
import { Label } from './Label';
describe('Label', () => {
it('renders string labels', () => {
render(
,
);
expect(screen.getByLabelText(/Phone number/)).toBeInTheDocument();
});
it('renders string labels with (Optional) suffix', () => {
render(
,
);
expect(screen.getByLabelText(/Phone number/)).toBeInTheDocument();
expect(screen.getByLabelText(/(Optional)/)).toBeInTheDocument();
});
it('renders description', () => {
const inputId = 'input-id';
const descriptionId = 'desc-test';
render(
<>
{lorem10}
>,
);
expect(screen.getByLabelText('Phone number')).toBeInTheDocument();
expect(screen.getByText(lorem10)).toBeInTheDocument();
expect(screen.getByText(lorem10)).toHaveAttribute('id', descriptionId);
});
it('renders description with optional', () => {
const descriptionId = 'desc-test';
render(
<>
{lorem10}
>,
);
expect(screen.getByLabelText(/Phone number/)).toBeInTheDocument();
expect(screen.getByText(lorem10)).toBeInTheDocument();
expect(screen.getByText(lorem10)).toHaveAttribute('id', descriptionId);
});
it('connects label with form control via `id` + `aria-labelledby`', () => {
const labelId = 'label-id';
render(
<>
Custom complex component
>,
);
expect(screen.getByLabelText('Phone number')).toHaveAttribute('aria-labelledby', labelId);
});
});