/**
 * 学校端 E2E 测试 - 登录流程
 */

import { test, expect, Page } from '@playwright/test';
import { loginAsSchool, logout } from './helpers';
import { SCHOOL_CONFIG } from './fixtures';

test.describe('学校端登录流程', () => {
  test('学校端登录成功', async ({ page }) => {
    await loginAsSchool(page);

    // 验证跳转到正确的仪表盘页面
    await expect(page).toHaveURL(new RegExp(`${SCHOOL_CONFIG.dashboardPath}`));
    await expect(page).toHaveTitle(/少儿智慧阅读/);
  });

  test('验证跳转到正确的仪表盘页面', async ({ page }) => {
    await loginAsSchool(page);

    // 验证学校端仪表盘页面元素 - 校园阅读管理中心
    await expect(page.getByRole('heading', { name: '校园阅读管理中心' })).toBeVisible({
      timeout: 10000,
    });
  });

  test('记住登录状态', async ({ page }) => {
    await loginAsSchool(page);

    // 刷新页面，验证登录状态保持
    await page.reload();

    // 应该仍然在仪表盘页面
    await expect(page).toHaveURL(new RegExp(`${SCHOOL_CONFIG.dashboardPath}`));
  });

  test('错误密码登录失败', async ({ page }) => {
    await page.goto('/login');

    // 点击学校角色按钮
    await page.locator('.role-btn').filter({ hasText: '学校' }).first().click();

    // 输入正确账号和错误密码
    await page.getByPlaceholder('请输入账号').fill(SCHOOL_CONFIG.account);
    await page.getByPlaceholder('请输入密码').fill('wrongpassword');

    // 点击登录按钮
    await page.locator('.login-btn').click();

    // 等待错误提示
    await expect(page.locator('.ant-message-error')).toBeVisible({ timeout: 5000 });
  });

  test('账号不存在登录失败', async ({ page }) => {
    await page.goto('/login');

    // 点击学校角色按钮
    await page.locator('.role-btn').filter({ hasText: '学校' }).first().click();

    // 输入不存在的账号
    await page.getByPlaceholder('请输入账号').fill('nonexistent_school');
    await page.getByPlaceholder('请输入密码').fill(SCHOOL_CONFIG.password);

    // 点击登录按钮
    await page.locator('.login-btn').click();

    // 等待错误提示
    await expect(page.locator('.ant-message-error')).toBeVisible({ timeout: 5000 });
  });
});
