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