import { render, screen } from '@testing-library/react'; import { describe, it, expect } from 'vitest'; import { KpiCard } from '../kpi-card'; describe('KpiCard', () => { it('renders label', () => { render(); expect(screen.getByText('Tổng giao dịch')).toBeInTheDocument(); }); it('renders value', () => { render(); expect(screen.getByText('9.8 tỷ')).toBeInTheDocument(); }); it('renders delta when provided', () => { render(); expect(screen.getByText('+3.50%')).toBeInTheDocument(); }); it('renders footnote when provided', () => { render(); expect(screen.getByText('So với tháng trước')).toBeInTheDocument(); }); it('renders icon when provided', () => { render(★} />); expect(screen.getByTestId('icon')).toBeInTheDocument(); }); it('renders loading skeleton when loading=true', () => { const { container } = render(); expect(container.querySelector('[aria-busy]')).toBeInTheDocument(); expect(screen.queryByText('L')).not.toBeInTheDocument(); }); it('does not render delta when not provided', () => { render(); expect(screen.queryByText(/%/)).not.toBeInTheDocument(); }); });