import { render, screen } from '@testing-library/react'; import { describe, it, expect } from 'vitest'; import { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent, } from './card'; import React from 'react'; describe('Card', () => { it('renders correctly with all sub-components', () => { render( Title Description Action Content Footer ); expect(screen.getByText('Title')).toBeInTheDocument(); expect(screen.getByText('Description')).toBeInTheDocument(); expect(screen.getByText('Action')).toBeInTheDocument(); expect(screen.getByText('Content')).toBeInTheDocument(); expect(screen.getByText('Footer')).toBeInTheDocument(); }); it('has correct data-slot attributes', () => { const { container } = render( Title Content ); expect(container.querySelector('[data-slot="card"]')).toBeInTheDocument(); expect(container.querySelector('[data-slot="card-header"]')).toBeInTheDocument(); expect(container.querySelector('[data-slot="card-title"]')).toBeInTheDocument(); expect(container.querySelector('[data-slot="card-content"]')).toBeInTheDocument(); }); it('applies custom classNames', () => { const { container } = render(Content); expect(container.querySelector('[data-slot="card"]')).toHaveClass('custom-card'); }); });