import { test, expect } from '../fixtures/base'; import { GenerationPreviewPage } from '../pages/generation-preview.page'; import { createSettingsStorage } from '../fixtures/test-data/settings'; const SETTINGS_STORAGE = createSettingsStorage(); const GENERATION_SESSION = JSON.stringify({ sessionId: 'e2e-test-session', requirements: { requirement: '讲解光合作用', language: 'zh-CN', }, pdfText: '', pdfImages: [], imageStorageIds: [], sceneOutlines: null, currentStep: 'generating', }); test.describe('Generation Flow', () => { test.beforeEach(async ({ page }) => { await page.addInitScript( ({ settings, session }) => { localStorage.setItem('settings-storage', settings); sessionStorage.setItem('generationSession', session); }, { settings: SETTINGS_STORAGE, session: GENERATION_SESSION }, ); }); test('completes generation pipeline and redirects to classroom', async ({ page, mockApi }) => { // Set up all API mocks await mockApi.setupGenerationMocks(); const preview = new GenerationPreviewPage(page); await preview.goto(); // Generation card with progress dots should be visible await expect(preview.stepTitle).toBeVisible(); // Wait for auto-redirect to classroom await preview.waitForRedirectToClassroom(); expect(page.url()).toMatch(/\/classroom\//); }); });