elearning/frontend_management/tests/instructor/dashboard.spec.ts
Missez 0205aab461
All checks were successful
Build and Deploy Frontend Management to Dev Server / Build Frontend Management Docker Image (push) Successful in 52s
Build and Deploy Frontend Management to Dev Server / Deploy E-learning Frontend Management to Dev Server (push) Successful in 4s
Build and Deploy Frontend Management to Dev Server / Notify Deployment Status (push) Successful in 1s
feat: Introduce core authentication service, several new admin management pages, and instructor feature tests.
2026-03-06 11:24:10 +07:00

52 lines
2.3 KiB
TypeScript

import { test, expect } from '@playwright/test';
import { TEST_URLS } from '../fixtures/test-data';
/**
* Instructor Dashboard Tests
* ใช้ cookies จาก instructor-setup project (ไม่ต้อง login ซ้ำ)
*/
test.describe('Instructor Dashboard', () => {
test.beforeEach(async ({ page }) => {
await page.goto(TEST_URLS.instructorDashboard);
await page.waitForLoadState('networkidle');
});
test('check display dashboard', async ({ page }) => {
await expect(page.getByText('หลักสูตรทั้งหมด')).toBeVisible();
await expect(page.getByText('ผู้เรียนทั้งหมด')).toBeVisible();
await expect(page.getByText('เรียนจบแล้ว')).toBeVisible();
await expect(page.getByText('สถานะหลักสูตร')).toBeVisible();
await expect(page.getByRole('button', { name: 'ดูทั้งหมด' })).toBeVisible();
});
test('should navigate to courses list', async ({ page }) => {
await page.getByRole('button', { name: 'ดูทั้งหมด' }).click();
await page.waitForURL('**/instructor/courses**');
await expect(page).toHaveURL(/\/instructor\/courses/);
});
test('should show user menu on avatar click', async ({ page }) => {
await page.locator('.w-12.h-12.rounded-full').click();
await expect(page.getByText('โปรไฟล์')).toBeVisible();
});
test('should navigate to profile', async ({ page }) => {
await page.locator('.w-12.h-12.rounded-full').click();
await page.getByText('โปรไฟล์').click();
await page.waitForURL('**/instructor/profile**');
await expect(page).toHaveURL(/\/instructor\/profile/);
});
test('should logout and redirect to login', async ({ page }) => {
await page.locator('.w-12.h-12.rounded-full').click();
await page.getByRole('menu').getByText('ออกจากระบบ').click();
// Confirm logout dialog
await page.locator('.q-dialog').getByRole('button', { name: 'ออกจากระบบ' }).click();
await page.waitForURL('**/login**', { timeout: 10_000 });
await expect(page).toHaveURL(/\/login/);
});
});