29 lines
1.0 KiB
TypeScript
29 lines
1.0 KiB
TypeScript
import { render, screen } from '@testing-library/react';
|
|
import { describe, expect, it } from 'vitest';
|
|
import { Form } from '../../src/components/Form';
|
|
|
|
describe('Form', () => {
|
|
it('renders title, title actions and children', () => {
|
|
render(
|
|
<Form title="User Details" titleBarRight={<button type="button">Action</button>}>
|
|
<div>Form child</div>
|
|
</Form>,
|
|
);
|
|
|
|
expect(screen.getByText('User Details')).toBeInTheDocument();
|
|
expect(screen.getByRole('button', { name: 'Action' })).toBeInTheDocument();
|
|
expect(screen.getByText('Form child')).toBeInTheDocument();
|
|
});
|
|
|
|
it('supports custom class names and optional title actions', () => {
|
|
const { container } = render(
|
|
<Form title="No Actions" className="form-custom">
|
|
<div>Child</div>
|
|
</Form>,
|
|
);
|
|
|
|
expect(container.firstElementChild).toHaveClass('form-custom');
|
|
expect(screen.queryByRole('button')).not.toBeInTheDocument();
|
|
});
|
|
});
|