import { describe, it, expect, vi } from 'vitest'; import { render, screen, waitFor } from '@testing-library/react'; import { SearchLoadingModal } from '../components/SearchLoadingModal'; describe('SearchLoadingModal', () => { it('renders when open', () => { render(); expect(screen.getByText(/Searching for specs/i)).toBeInTheDocument(); }); it('does not render when closed', () => { const { container } = render(); expect(container.firstChild?.childNodes.length).toBe(0); }); it('displays countdown timer', () => { render(); expect(screen.getByText(/30 seconds remaining/i)).toBeInTheDocument(); }); it('calls onTimeout when timer expires', async () => { const onTimeout = vi.fn(); render(); await waitFor(() => { expect(onTimeout).toHaveBeenCalled(); }, { timeout: 2000 }); }); it('shows progress bar', () => { const { container } = render(); const progressBar = container.querySelector('div[class*="bg-primary"]'); expect(progressBar).toBeInTheDocument(); }); });