import * as React from 'react';
import { render } from '@testing-library/react';
import { Field } from '../Field';
import { ComponentClassNames } from '../../shared/constants';
describe('Field component', () => {
it('should match snapshot', () => {
const { container } = render(
hi
);
expect(container).toMatchSnapshot();
});
it('should render a label', () => {
const { getByText } = render();
const descriptionElement = getByText('label');
expect(descriptionElement).toHaveClass(ComponentClassNames.Label);
});
it('should render descriptive text', () => {
const { getByText } = render(
);
const descriptionElement = getByText('description');
expect(descriptionElement).toHaveClass(
ComponentClassNames.FieldDescription
);
});
it('should render error message', () => {
const { getByText } = render(
);
const descriptionElement = getByText('error');
expect(descriptionElement).toHaveClass(
ComponentClassNames.FieldErrorMessage
);
});
it('should render if it has a "labelHidden" prop is `true`, as long as there\'s descriptiveText', () => {
const { getByText } = render(
);
const descriptionElement = getByText('some description');
expect(descriptionElement).toHaveClass(ComponentClassNames.VisuallyHidden);
});
it('should not be hidden if it has a "labelHidden" prop is `false`', () => {
const { getByText } = render(
);
const descriptionElement = getByText('some description');
expect(descriptionElement).not.toHaveClass(
ComponentClassNames.VisuallyHidden
);
});
});