import { screen, fireEvent } from '@testing-library/react'; import '@testing-library/jest-dom'; import { setupReady, addMonsterViaUI } from './testHelpers'; describe('participant action selected states', () => { test('active toggle clearly changes to selected inactive state', async () => { await setupReady('ActionCamp1', 'ActionEnc1'); await addMonsterViaUI('Toggle Orc', 15, 3); const disable = screen.getByRole('button', { name: 'Disable participant' }); expect(disable).toHaveAttribute('aria-pressed', 'true'); expect(disable).toHaveClass('bg-emerald-700'); fireEvent.click(disable); const enable = await screen.findByRole('button', { name: 'Enable participant' }); expect(enable).toHaveAttribute('aria-pressed', 'false'); expect(enable).toHaveClass('bg-red-900', 'ring-red-500'); }); test('conditions toggle highlights open state and gives close action', async () => { await setupReady('ActionCamp2', 'ActionEnc2'); await addMonsterViaUI('Condition Orc', 15, 3); const open = screen.getByRole('button', { name: 'Open conditions' }); expect(open).toHaveAttribute('aria-expanded', 'false'); fireEvent.click(open); const close = screen.getByRole('button', { name: 'Close conditions' }); expect(close).toHaveAttribute('aria-expanded', 'true'); expect(close).toHaveClass('bg-purple-700', 'ring-purple-300'); }); test('edit toggle exposes selected state while editor is open', async () => { await setupReady('ActionCamp3', 'ActionEnc3'); await addMonsterViaUI('Edit Orc', 15, 3); fireEvent.click(screen.getByRole('button', { name: 'Edit participant' })); const closeEditor = screen.getByRole('button', { name: 'Close participant editor' }); expect(closeEditor).toHaveAttribute('aria-pressed', 'true'); expect(closeEditor).toHaveClass('bg-amber-500', 'ring-amber-200'); }); });