import { render, screen } from '@testing-library/react';
import { describe, expect, it } from 'vitest';
import { TickerStrip, type TickerItem } from '../ticker-strip';
const items: TickerItem[] = [
{ id: 'q1', label: 'Quận 1', changePercent: 2.5 },
{ id: 'q2', label: 'Quận 7', changePercent: -1.2 },
{ id: 'q3', label: 'Thủ Đức', changePercent: 0 },
];
describe('TickerStrip', () => {
it('renders each item label twice (duplicated for seamless loop)', () => {
render();
expect(screen.getAllByText('Quận 1')).toHaveLength(2);
expect(screen.getAllByText('Quận 7')).toHaveLength(2);
expect(screen.getAllByText('Thủ Đức')).toHaveLength(2);
});
it('applies animate-ticker class when not paused', () => {
const { container } = render();
const inner = container.querySelector('.animate-ticker');
expect(inner).not.toBeNull();
});
it('omits animate-ticker class when paused', () => {
const { container } = render();
expect(container.querySelector('.animate-ticker')).toBeNull();
});
it('passes through className to root', () => {
const { container } = render(
,
);
expect(container.querySelector('.custom-strip')).not.toBeNull();
});
it('renders with empty items without crashing', () => {
const { container } = render();
expect(container.querySelector('.overflow-hidden')).not.toBeNull();
});
});