| import { test, expect } from '../fixtures/base'; |
| import { HomePage } from '../pages/home.page'; |
| import { GenerationPreviewPage } from '../pages/generation-preview.page'; |
| import { ClassroomPage } from '../pages/classroom.page'; |
| import { createSettingsStorage } from '../fixtures/test-data/settings'; |
|
|
| const SETTINGS_STORAGE = createSettingsStorage({ sidebarCollapsed: false }); |
|
|
| test.describe('Full Happy Path', () => { |
| test.beforeEach(async ({ page, mockApi }) => { |
| |
| await page.addInitScript((settings) => { |
| localStorage.setItem('settings-storage', settings); |
| }, SETTINGS_STORAGE); |
|
|
| |
| |
| await mockApi.setupGenerationMocks(); |
| }); |
|
|
| test('home โ generation-preview โ classroom with scene navigation', async ({ page }) => { |
| |
| const home = new HomePage(page); |
| await home.goto(); |
|
|
| |
| await expect(home.logo).toBeVisible(); |
| await expect(home.textarea).toBeVisible(); |
| await expect(home.enterButton).toBeDisabled(); |
|
|
| |
| await home.fillRequirement('่ฎฒ่งฃๅ
ๅไฝ็จ'); |
| await expect(home.enterButton).toBeEnabled(); |
|
|
| |
| await home.submit(); |
| await page.waitForURL(/\/generation-preview/); |
|
|
| |
| const preview = new GenerationPreviewPage(page); |
|
|
| |
| await expect(preview.stepTitle).toBeVisible(); |
|
|
| |
| await preview.waitForRedirectToClassroom(); |
| expect(page.url()).toMatch(/\/classroom\//); |
|
|
| |
| const classroom = new ClassroomPage(page); |
| await classroom.waitForLoaded(); |
|
|
| |
| await expect(classroom.sidebarScenes.first()).toBeVisible({ timeout: 10_000 }); |
|
|
| |
| await expect(classroom.getSceneTitle(0)).toContainText('ๅ
ๅไฝ็จ'); |
|
|
| |
| const sceneCount = await classroom.sidebarScenes.count(); |
| if (sceneCount > 1) { |
| await classroom.clickScene(1); |
| |
| await expect(classroom.sidebarScenes.nth(1)).toBeVisible(); |
| } |
| }); |
| }); |
|
|