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');
});
});