Spaces:
Sleeping
Sleeping
File size: 1,682 Bytes
ebe1c3d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | import { describe, it, expect } from 'vitest';
import { render, screen } from '@testing-library/react';
import { Button } from '../components/ui/Button';
import { Badge } from '../components/ui/Badge';
import { Card, CardHeader, CardContent } from '../components/ui/Card';
describe('UI Components', () => {
describe('Button', () => {
it('renders with children', () => {
render(<Button>Click me</Button>);
expect(screen.getByText('Click me')).toBeInTheDocument();
});
it('applies variant classes', () => {
render(<Button variant="primary">Primary</Button>);
const button = screen.getByText('Primary');
expect(button).toHaveClass('btn-primary');
});
it('is disabled when disabled prop is true', () => {
render(<Button disabled>Disabled</Button>);
const button = screen.getByText('Disabled');
expect(button).toBeDisabled();
});
});
describe('Badge', () => {
it('renders with text', () => {
render(<Badge>Status</Badge>);
expect(screen.getByText('Status')).toBeInTheDocument();
});
it('applies success variant classes', () => {
render(<Badge variant="success">Success</Badge>);
const badge = screen.getByText('Success');
expect(badge).toHaveClass('text-green-400');
});
});
describe('Card', () => {
it('renders card with header and content', () => {
render(
<Card>
<CardHeader title="Test Card" />
<CardContent>Card content</CardContent>
</Card>
);
expect(screen.getByText('Test Card')).toBeInTheDocument();
expect(screen.getByText('Card content')).toBeInTheDocument();
});
});
});
|