import { describe, it, expect, vi, beforeEach } from 'vitest' import { screen } from '@testing-library/react' import Accueil from '../../pages/Accueil' import { getGameWindowApi } from '../../services/game' import { renderWithProviders } from '../renderWithProviders' vi.mock('../../services/game', () => ({ getGameWindowApi: vi.fn(), })) describe('Accueil - dates du jeu-concours', () => { beforeEach(() => vi.clearAllMocks()) it("affiche les dates fixées dans le tableau de bord admin", async () => { getGameWindowApi.mockResolvedValue({ configured: true, phase: 'SCHEDULED', startDate: '2026-11-14T23:00:00.000Z', participationDeadline: '2026-12-14T23:00:00.000Z', claimDeadline: '2027-01-13T23:00:00.000Z', }) renderWithProviders(, { route: '/accueil' }) expect(await screen.findByText('Du 15 novembre au 14 décembre 2026')).toBeInTheDocument() expect(screen.getByText(/ouverte du 15 novembre au 14 décembre 2026 inclus/)).toBeInTheDocument() expect(screen.getByText(/retirer jusqu'au 13 janvier 2027/)).toBeInTheDocument() await vi.waitFor(() => { expect(document.title).toBe('Jeu-concours 100 % Gagnant du 15 novembre au 14 décembre | Thé Tip Top') }) }) it("affiche les dates par défaut (2 → 31 octobre 2026) si l'API ne répond pas", async () => { getGameWindowApi.mockRejectedValue(new Error('réseau')) renderWithProviders(, { route: '/accueil' }) expect(screen.getByText('Du 02 au 31 octobre 2026')).toBeInTheDocument() expect(screen.getByText(/retirer jusqu'au 30 novembre 2026/)).toBeInTheDocument() await vi.waitFor(() => expect(getGameWindowApi).toHaveBeenCalled()) expect(screen.getByText('Du 02 au 31 octobre 2026')).toBeInTheDocument() }) })