import { render, screen } from '@testing-library/react'; import { describe, expect, it } from 'vitest'; import { StatCard } from '../stat-card'; describe('StatCard', () => { it('renders label', () => { render(); expect(screen.getByText('Giá TB/m²')).toBeInTheDocument(); }); it('renders string value', () => { render(); expect(screen.getByText('25 tr/m²')).toBeInTheDocument(); }); it('renders number value', () => { render(); expect(screen.getByText('1234')).toBeInTheDocument(); }); it('renders unit when provided', () => { render(); expect(screen.getByText('tr/m²')).toBeInTheDocument(); }); it('renders PriceDelta when delta provided', () => { const { container } = render(); expect(container.querySelector('[data-numeric]')).toBeInTheDocument(); }); it('does not render delta section when delta is undefined', () => { render(); // no PriceDelta text like +x% expect(screen.queryByText(/\+\d/)).toBeNull(); }); it('renders sublabel', () => { render(); expect(screen.getByText('7 ngày')).toBeInTheDocument(); }); it('renders icon node', () => { render( } />, ); expect(screen.getByTestId('icon')).toBeInTheDocument(); }); it('merges custom className', () => { render(); expect(screen.getByTestId('sc')).toHaveClass('extra'); }); });