| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import { test, expect } from '../../utils/test-setup';
- import testUsers from '../../fixtures/test-users.json' with { type: 'json' };
- test.describe('用户认证流程', () => {
- test.beforeEach(async ({ page }) => {
- await page.goto('/login');
- await page.waitForLoadState('networkidle');
- });
- test('成功登录', async ({ loginPage, dashboardPage }) => {
- await loginPage.login(testUsers.admin.username, testUsers.admin.password);
- await dashboardPage.expectToBeVisible();
- });
- test('登录失败 - 错误密码', async ({ loginPage }) => {
- await loginPage.login(testUsers.admin.username, 'wrongpassword');
- await loginPage.expectLoginError();
- });
- test('登录失败 - 不存在的用户', async ({ loginPage }) => {
- await loginPage.login('nonexistent', testUsers.admin.password);
- await loginPage.expectLoginError();
- });
- test('导航到注册页面', async ({ loginPage, page }) => {
- await loginPage.navigateToRegister();
- await expect(page).toHaveURL('/register');
- });
- test('表单验证 - 空用户名', async ({ loginPage }) => {
- await loginPage.login('', testUsers.admin.password);
- await expect(loginPage.usernameInput).toHaveClass(/border-destructive/);
- });
- test('表单验证 - 空密码', async ({ loginPage }) => {
- await loginPage.login(testUsers.admin.username, '');
- await expect(loginPage.passwordInput).toHaveClass(/border-destructive/);
- });
- test('记住登录状态', async ({ loginPage, dashboardPage, context }) => {
- await loginPage.login(testUsers.admin.username, testUsers.admin.password);
- await dashboardPage.expectToBeVisible();
- // 重新打开浏览器验证登录状态保持
- const newPage = await context.newPage();
- await newPage.goto('/');
- await expect(newPage).toHaveURL('/');
- });
- });
|