docbrown/app/javascript/listings/__tests__/ContactViaConnect.test.jsx
2020-06-25 18:04:01 -04:00

44 lines
1.3 KiB
JavaScript

import { h } from 'preact';
import { render, fireEvent } from '@testing-library/preact';
import { axe } from 'jest-axe';
import ContactViaConnect from '../components/ContactViaConnect';
describe('<ContactViaConnect />', () => {
it('should have no a11y violations', async () => {
const onChange = jest.fn;
const { container } = render(
<ContactViaConnect onChange={onChange} checked />,
);
const results = await axe(container);
expect(results).toHaveNoViolations();
});
it('should render a checked check box opting in to open DMs', () => {
const onChange = jest.fn();
const { queryByLabelText } = render(
<ContactViaConnect onChange={onChange} checked />,
);
expect(
queryByLabelText(
'Allow Users to Message Me Via In-App Chat (DEV Connect)',
),
).toBeDefined();
});
it('should fire a change event when clicking the checkbox', () => {
const onChange = jest.fn();
const { getByLabelText } = render(
<ContactViaConnect onChange={onChange} checked />,
);
const checkbox = getByLabelText(
'Allow Users to Message Me Via In-App Chat (DEV Connect)',
);
fireEvent.input(checkbox, { target: { checked: true } });
expect(onChange).toHaveBeenCalledTimes(1);
});
});