import { render, screen, act } from '@testing-library/react';
import { JudgeIntroAnimation } from './JudgeIntroAnimation';
describe('JudgeIntroAnimation', () => {
beforeEach(() => {
jest.useFakeTimers();
});
afterEach(() => {
jest.useRealTimers();
});
it('renders JUDGE! text', () => {
render();
const elements = screen.getAllByText('JUDGE!');
expect(elements.length).toBeGreaterThanOrEqual(1);
});
it('does not call onComplete before animation ends', () => {
const onComplete = jest.fn();
render();
act(() => { jest.advanceTimersByTime(1000); });
expect(onComplete).not.toHaveBeenCalled();
});
it('calls onComplete after 1800ms', () => {
const onComplete = jest.fn();
render();
act(() => { jest.advanceTimersByTime(1800); });
expect(onComplete).toHaveBeenCalledTimes(1);
});
it('renders as a fixed overlay', () => {
const { container } = render();
const overlay = container.firstChild as HTMLElement;
expect(overlay).toHaveClass('fixed');
});
});