mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-10-29 18:28:28 -04:00
37 lines
1.3 KiB
React
37 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 PickerButton from './PickerButton';
|
|
|
|
describe('PickerButton', () => {
|
|
it('shows the label', () => {
|
|
render(<PickerButton label="Add garden" onClick={vi.fn()} />);
|
|
expect(screen.getByRole('button', {name: 'Add garden'})).toBeInTheDocument();
|
|
});
|
|
|
|
it('calls onClick when clicked', async () => {
|
|
const onClick = vi.fn();
|
|
render(<PickerButton label="Add garden" onClick={onClick} />);
|
|
await userEvent.click(screen.getByRole('button'));
|
|
expect(onClick).toHaveBeenCalledTimes(1);
|
|
});
|
|
|
|
it('is not a submit button', () => {
|
|
render(<PickerButton label="Add garden" onClick={vi.fn()} />);
|
|
expect(screen.getByRole('button')).toHaveAttribute('type', 'button');
|
|
});
|
|
|
|
describe('with a sublabel', () => {
|
|
it('bolds the label', () => {
|
|
render(<PickerButton label="Plant" sublabel="something" onClick={vi.fn()} />);
|
|
expect(screen.getByText('Plant').tagName).toBe('B');
|
|
});
|
|
|
|
it('shows the sublabel', () => {
|
|
render(<PickerButton label="Plant" sublabel="something" onClick={vi.fn()} />);
|
|
expect(screen.getByRole('button')).toHaveTextContent('Plantsomething');
|
|
});
|
|
});
|
|
});
|