import React from 'react'; import { render, screen } from '@testing-library/react'; import '@testing-library/jest-dom'; import NameContainer from './NameContainer'; import { NOT_READY_COLOR } from '../../../constants/colors'; jest.mock('./AnimatedOverlay/AnimatedOverlay.jsx', () => () => { return ; }); describe('NameContainer component', () => { let player; let time; beforeEach(() => { player = { name: 'TestPlayer', ready: false, color: 'blue', nowMoving: false, }; time = 0; }); it('renders without crashing', () => { render(); }); it('renders player name', () => { render(); expect(screen.getByText(player.name)).toBeInTheDocument(); }); it('applies grey color when player is not ready', () => { player.ready = false; render(); const container = screen.getByText(player.name).closest('div'); expect(container).toHaveStyle({ backgroundColor: NOT_READY_COLOR }); }); it('applies player colors as background when player is ready', () => { player.ready = true; render(); const container = screen.getByText(player.name).closest('div'); expect(container).toHaveStyle({ backgroundColor: player.color }); }); it('renders AnimatedOverlay when player is nowMoving', () => { const movingPlayer = { ...player, nowMoving: true }; render(); expect(screen.getByTestId('animated-overlay')).toBeInTheDocument(); }); it('does not render AnimatedOverlay when player is not nowMoving', () => { render(); expect(screen.queryByTestId('animated-overlay')).toBeNull(); }); });