/** * 学校端 E2E 测试 - 退出登录功能 */ import { test, expect } from '@playwright/test'; import { loginAsSchool, logout } from './helpers'; import { SCHOOL_CONFIG } from './fixtures'; test.describe('学校端退出登录功能', () => { test('正常退出登录', async ({ page }) => { // 1. 先登录 await loginAsSchool(page); // 2. 验证已登录状态 await expect(page).toHaveURL(new RegExp(`${SCHOOL_CONFIG.dashboardPath}`)); // 3. 退出登录 await logout(page); // 4. 验证跳转到登录页 await expect(page).toHaveURL(/.*\/login.*/); }); test('退出登录后无法访问受保护页面', async ({ page }) => { // 1. 先登录 await loginAsSchool(page); // 2. 退出登录 await logout(page); // 3. 尝试访问受保护的页面 await page.goto('/school/dashboard'); await page.waitForTimeout(2000); // 4. 验证被重定向到登录页 await expect(page).toHaveURL(/.*\/login.*/); }); test('退出登录后可以重新登录', async ({ page }) => { // 1. 先登录 await loginAsSchool(page); // 2. 退出登录 await logout(page); // 3. 重新登录 await loginAsSchool(page); // 4. 验证重新登录成功 await expect(page).toHaveURL(new RegExp(`${SCHOOL_CONFIG.dashboardPath}`)); }); });