frigate/web/src/components/__tests__/Button.test.jsx

37 lines
1.3 KiB
React
Raw Normal View History

2021-02-12 01:13:30 +03:00
import { h } from 'preact';
import Button from '../Button';
2022-03-06 07:16:31 +03:00
import { render, screen } from 'testing-library';
2021-02-12 01:13:30 +03:00
describe('Button', () => {
test('renders children', async () => {
render(
<Button>
<div>hello</div>
<div>hi</div>
</Button>
);
expect(screen.queryByText('hello')).toBeInTheDocument();
expect(screen.queryByText('hi')).toBeInTheDocument();
});
test('includes focus, active, and hover classes when enabled', async () => {
render(<Button>click me</Button>);
const classList = screen.queryByRole('button').classList;
expect(classList.contains('focus:outline-none')).toBe(true);
expect(classList.contains('focus:ring-2')).toBe(true);
expect(classList.contains('hover:shadow-md')).toBe(true);
expect(classList.contains('active:bg-blue-600')).toBe(true);
});
test('does not focus, active, and hover classes when enabled', async () => {
render(<Button disabled>click me</Button>);
const classList = screen.queryByRole('button').classList;
expect(classList.contains('focus:outline-none')).toBe(false);
expect(classList.contains('focus:ring-2')).toBe(false);
expect(classList.contains('hover:shadow-md')).toBe(false);
expect(classList.contains('active:bg-blue-600')).toBe(false);
});
});