generation-flow.spec.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { test, expect } from '../fixtures/base';
  2. import { GenerationPreviewPage } from '../pages/generation-preview.page';
  3. import { createSettingsStorage } from '../fixtures/test-data/settings';
  4. const SETTINGS_STORAGE = createSettingsStorage();
  5. const GENERATION_SESSION = JSON.stringify({
  6. sessionId: 'e2e-test-session',
  7. requirements: {
  8. requirement: '讲解光合作用',
  9. language: 'zh-CN',
  10. },
  11. pdfText: '',
  12. pdfImages: [],
  13. imageStorageIds: [],
  14. sceneOutlines: null,
  15. currentStep: 'generating',
  16. });
  17. test.describe('Generation Flow', () => {
  18. test.beforeEach(async ({ page }) => {
  19. await page.addInitScript(
  20. ({ settings, session }) => {
  21. localStorage.setItem('settings-storage', settings);
  22. sessionStorage.setItem('generationSession', session);
  23. },
  24. { settings: SETTINGS_STORAGE, session: GENERATION_SESSION },
  25. );
  26. });
  27. test('completes generation pipeline and redirects to classroom', async ({ page, mockApi }) => {
  28. // Set up all API mocks
  29. await mockApi.setupGenerationMocks();
  30. const preview = new GenerationPreviewPage(page);
  31. await preview.goto();
  32. // Generation card with progress dots should be visible
  33. await expect(preview.stepTitle).toBeVisible();
  34. // Wait for auto-redirect to classroom
  35. await preview.waitForRedirectToClassroom();
  36. expect(page.url()).toMatch(/\/classroom\//);
  37. });
  38. });