mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-26 19:06:11 +01:00
test(web): Card
This commit is contained in:
parent
1aa9a7a093
commit
5ee7146884
@ -9,10 +9,7 @@ export default function Box({
|
|||||||
elevated = true,
|
elevated = true,
|
||||||
header,
|
header,
|
||||||
href,
|
href,
|
||||||
icons,
|
|
||||||
media = null,
|
media = null,
|
||||||
subheader,
|
|
||||||
supportingText,
|
|
||||||
...props
|
...props
|
||||||
}) {
|
}) {
|
||||||
const Element = href ? 'a' : 'div';
|
const Element = href ? 'a' : 'div';
|
||||||
|
46
web/src/components/__tests__/Card.test.jsx
Normal file
46
web/src/components/__tests__/Card.test.jsx
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import { h } from 'preact';
|
||||||
|
import Card from '../Card';
|
||||||
|
import { render, screen } from '@testing-library/preact';
|
||||||
|
|
||||||
|
describe('Card', () => {
|
||||||
|
test('renders a Card with media', async () => {
|
||||||
|
render(<Card media={<img src="tacos.jpg" alt="tacos" />} />);
|
||||||
|
expect(screen.queryByAltText('tacos')).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('renders a Card with a link around media', async () => {
|
||||||
|
render(<Card href="/tacos" media={<img src="tacos.jpg" alt="tacos" />} />);
|
||||||
|
expect(screen.queryByAltText('tacos')).toBeInTheDocument();
|
||||||
|
expect(screen.getByAltText('tacos').closest('a')).toHaveAttribute('href', '/tacos');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('renders a Card with a header', async () => {
|
||||||
|
render(<Card header="Tacos!" />);
|
||||||
|
expect(screen.queryByText('Tacos!')).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('renders a Card with a linked header', async () => {
|
||||||
|
render(<Card href="/tacos" header="Tacos!" />);
|
||||||
|
expect(screen.queryByText('Tacos!')).toBeInTheDocument();
|
||||||
|
expect(screen.queryByText('Tacos!').closest('a')).toHaveAttribute('href', '/tacos');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('renders content', async () => {
|
||||||
|
const content = <div data-testid="content">hello</div>;
|
||||||
|
render(<Card content={content} />);
|
||||||
|
expect(screen.queryByTestId('content')).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('renders buttons', async () => {
|
||||||
|
const buttons = [
|
||||||
|
{ name: 'Tacos', href: '/tacos' },
|
||||||
|
{ name: 'Burritos', href: '/burritos' },
|
||||||
|
];
|
||||||
|
render(<Card buttons={buttons} />);
|
||||||
|
expect(screen.queryByText('Tacos')).toHaveAttribute('role', 'button');
|
||||||
|
expect(screen.queryByText('Tacos')).toHaveAttribute('href', '/tacos');
|
||||||
|
|
||||||
|
expect(screen.queryByText('Burritos')).toHaveAttribute('role', 'button');
|
||||||
|
expect(screen.queryByText('Burritos')).toHaveAttribute('href', '/burritos');
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user