import { describe, it, expect, beforeAll, afterAll } from 'vitest'; import { PlaywrightAutomationAdapter, FixtureServer } from 'packages/infrastructure/adapters/automation'; import { StepId } from 'packages/domain/value-objects/StepId'; describe('Workflow – steps 7–9 cars flow (fixture-backed)', () => { let adapter: PlaywrightAutomationAdapter; let server: FixtureServer; let baseUrl: string; beforeAll(async () => { server = new FixtureServer(); const info = await server.start(); baseUrl = info.url; adapter = new PlaywrightAutomationAdapter( { headless: true, timeout: 5000, baseUrl, mode: 'mock', } ); await adapter.connect(); }); afterAll(async () => { await adapter.disconnect(); await server.stop(); }); it('executes time limits, cars, and add car in sequence using fixtures', async () => { await adapter.navigateToPage(server.getFixtureUrl(7)); const step7Result = await adapter.executeStep(StepId.create(7), { practice: 10, qualify: 10, race: 20, }); expect(step7Result.success).toBe(true); await adapter.navigateToPage(server.getFixtureUrl(8)); const step8Result = await adapter.executeStep(StepId.create(8), {}); expect(step8Result.success).toBe(true); await adapter.navigateToPage(server.getFixtureUrl(9)); const step9Result = await adapter.executeStep(StepId.create(9), { carSearch: 'Porsche 911 GT3 R', }); expect(step9Result.success).toBe(true); }); });