/** * Tests for the TicketPrizeDisplay component * @jest-environment jsdom */ import React from 'react'; import { render, screen } from '@testing-library/react'; import { TicketPrizeDisplay } from '@/components/ui/TicketPrizeDisplay'; describe('TicketPrizeDisplay', () => { it('should render prize name for INFUSEUR', () => { render(); expect(screen.getByText('Infuseur à thé')).toBeInTheDocument(); }); it('should render prize name for THE_SIGNATURE', () => { render(); expect(screen.getByText('Thé signature 100g')).toBeInTheDocument(); }); it('should render prize name for COFFRET_DECOUVERTE', () => { render(); expect(screen.getByText('Coffret découverte 39€')).toBeInTheDocument(); }); it('should render prize name for COFFRET_PRESTIGE', () => { render(); expect(screen.getByText('Coffret prestige 69€')).toBeInTheDocument(); }); it('should render prize name for THE_GRATUIT', () => { render(); expect(screen.getByText('Thé gratuit en magasin')).toBeInTheDocument(); }); it('should render icon for each prize type', () => { const { container } = render(); const svg = container.querySelector('svg'); expect(svg).toBeInTheDocument(); }); it('should return null for unknown prize type', () => { const { container } = render(); expect(container.firstChild).toBeNull(); }); it('should apply custom className', () => { const { container } = render( ); expect(container.firstChild).toHaveClass('custom-class'); }); it('should render with prize color styling', () => { const { container } = render(); const iconContainer = container.querySelector('.rounded-full'); expect(iconContainer).toBeInTheDocument(); }); it('should have flex layout with gap', () => { const { container } = render(); expect(container.firstChild).toHaveClass('flex'); expect(container.firstChild).toHaveClass('items-center'); expect(container.firstChild).toHaveClass('gap-3'); }); it('should render prize name with correct text styling', () => { render(); const nameElement = screen.getByText('Infuseur à thé'); expect(nameElement).toHaveClass('text-sm'); expect(nameElement).toHaveClass('font-medium'); }); });