import { render, screen } from '@testing-library/react';
import { describe, expect, it } from 'vitest';
import { KpiCard } from '../kpi-card';
describe('KpiCard', () => {
it('renders label', () => {
render();
expect(screen.getByText('Giá TB')).toBeInTheDocument();
});
it('renders value', () => {
render();
expect(screen.getByText('100')).toBeInTheDocument();
});
it('renders footnote', () => {
render();
expect(screen.getByText('Hôm nay')).toBeInTheDocument();
});
it('renders PriceDelta when delta provided', () => {
render();
expect(screen.getByText('+1.50%')).toBeInTheDocument();
});
it('renders icon', () => {
render(} />);
expect(screen.getByTestId('icon')).toBeInTheDocument();
});
it('renders loading skeleton when loading=true', () => {
const { container } = render();
expect(container.querySelector('[aria-busy]')).toBeInTheDocument();
expect(container.querySelector('.animate-pulse')).toBeInTheDocument();
});
it('does not show value when loading', () => {
render();
expect(screen.queryByText('100')).toBeNull();
});
it('merges custom className', () => {
render();
expect(screen.getByTestId('kc')).toHaveClass('extra');
});
});