import { render, screen } from '@testing-library/react';
import { describe, it, expect } from 'vitest';
import { StatusChip, type PropertyStatus } from '../status-chip';
const statuses: PropertyStatus[] = ['active', 'pending', 'sold', 'rented', 'rejected', 'draft'];
describe('StatusChip', () => {
it.each(statuses)('renders label for status "%s"', (status) => {
const { container } = render();
expect(container.firstChild).toBeInTheDocument();
});
it('renders Vietnamese label for active', () => {
render();
expect(screen.getByText('Đang bán')).toBeInTheDocument();
});
it('renders Vietnamese label for pending', () => {
render();
expect(screen.getByText('Chờ duyệt')).toBeInTheDocument();
});
it('renders Vietnamese label for sold', () => {
render();
expect(screen.getByText('Đã bán')).toBeInTheDocument();
});
it('renders Vietnamese label for rented', () => {
render();
expect(screen.getByText('Đã thuê')).toBeInTheDocument();
});
it('renders Vietnamese label for rejected', () => {
render();
expect(screen.getByText('Từ chối')).toBeInTheDocument();
});
it('renders Vietnamese label for draft', () => {
render();
expect(screen.getByText('Bản nháp')).toBeInTheDocument();
});
it('renders dot by default', () => {
const { container } = render();
// dot is aria-hidden span
const dot = container.querySelector('[aria-hidden]');
expect(dot).toBeInTheDocument();
});
it('hides dot when hideDot=true', () => {
const { container } = render();
const dot = container.querySelector('[aria-hidden]');
expect(dot).not.toBeInTheDocument();
});
});