import { test, expect } from '../../utils/test-setup'; import testUsers from '../../fixtures/test-users.json' with { type: 'json' }; test.describe('用户登出流程', () => { test.beforeEach(async ({ loginPage }) => { await loginPage.goto(); await loginPage.login(testUsers.admin.username, testUsers.admin.password); }); test('成功登出', async ({ page }) => { // 点击用户菜单(需要根据实际UI调整选择器) const userMenu = page.locator('[data-testid="user-menu"]'); await userMenu.click(); // 点击登出按钮 const logoutButton = page.getByRole('button', { name: '登出' }); await logoutButton.click(); // 验证重定向到登录页面 await expect(page).toHaveURL('/login'); await expect(page.getByText('欢迎回来')).toBeVisible(); }); test('登出后无法访问受保护页面', async ({ page }) => { // 先登出 const userMenu = page.locator('[data-testid="user-menu"]'); await userMenu.click(); const logoutButton = page.getByRole('button', { name: '登出' }); await logoutButton.click(); // 尝试访问受保护页面 await page.goto('/dashboard'); // 应该被重定向到登录页面 await expect(page).toHaveURL(/\/login/); }); });