mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-10-29 10:18:29 -04:00
35 lines
1.3 KiB
React
35 lines
1.3 KiB
React
import {render, screen} from '@testing-library/react';
|
|
import userEvent from '@testing-library/user-event';
|
|
import {describe, expect, it, vi} from 'vitest';
|
|
|
|
import GardenPicker from './GardenPicker';
|
|
|
|
vi.mock('./GardenFormModal', () => ({
|
|
default: ({onClose}) => <div role="dialog" aria-label="New garden"><button type="button" onClick={onClose}>Close</button></div>,
|
|
}));
|
|
|
|
describe('GardenPicker', () => {
|
|
it('shows the button', () => {
|
|
render(<GardenPicker label="Add a garden" buttonClass="big" />);
|
|
expect(screen.getByRole('button', {name: 'Add a garden'})).toHaveClass('big');
|
|
});
|
|
|
|
it('starts closed', () => {
|
|
render(<GardenPicker label="Add a garden" />);
|
|
expect(screen.queryByRole('dialog')).not.toBeInTheDocument();
|
|
});
|
|
|
|
it('opens the new garden dialog', async () => {
|
|
render(<GardenPicker label="Add a garden" />);
|
|
await userEvent.click(screen.getByRole('button', {name: 'Add a garden'}));
|
|
expect(screen.getByRole('dialog', {name: 'New garden'})).toBeInTheDocument();
|
|
});
|
|
|
|
it('closes it again', async () => {
|
|
render(<GardenPicker label="Add a garden" />);
|
|
await userEvent.click(screen.getByRole('button', {name: 'Add a garden'}));
|
|
await userEvent.click(screen.getByRole('button', {name: 'Close'}));
|
|
expect(screen.queryByRole('dialog')).not.toBeInTheDocument();
|
|
});
|
|
});
|