import { describe, it, expect, beforeEach, afterEach } from 'vitest'; import type { StepHarness } from '../support/StepHarness'; import { createStepHarness } from '../support/StepHarness'; import { IRACING_SELECTORS } from 'packages/infrastructure/adapters/automation/dom/IRacingSelectors'; describe('Step 2 – create race', () => { let harness: StepHarness; beforeEach(async () => { harness = await createStepHarness(); }); afterEach(async () => { await harness.dispose(); }); it('opens the real Create Race confirmation modal with Last Settings / New Race options', async () => { await harness.navigateToFixtureStep(2); const page = harness.adapter.getPage(); expect(page).not.toBeNull(); const bodyTextBefore = await page!.textContent('body'); expect(bodyTextBefore).toContain('Create a Race'); const result = await harness.executeStep(2, {}); expect(result.success).toBe(true); expect(result.error).toBeUndefined(); await page!.waitForSelector( IRACING_SELECTORS.hostedRacing.createRaceModal, ); const modalText = await page!.textContent( IRACING_SELECTORS.hostedRacing.createRaceModal, ); expect(modalText).toMatch(/Last Settings/i); expect(modalText).toMatch(/New Race/i); const lastSettingsButton = await page!.$( IRACING_SELECTORS.hostedRacing.lastSettingsButton, ); const newRaceButton = await page!.$( IRACING_SELECTORS.hostedRacing.newRaceButton, ); expect(lastSettingsButton).not.toBeNull(); expect(newRaceButton).not.toBeNull(); }); });