login-helper.ts 1.0 KB

1234567891011121314151617181920212223242526272829
  1. /**
  2. * 登录辅助函数:访问登录页 → 填手机号 → 点登录(开发环境免密)
  3. */
  4. import { Page, expect } from '@playwright/test';
  5. const FRONTEND_URL = process.env.FRONTEND_URL || 'http://127.0.0.1:5173';
  6. export async function loginAsTestUser(page: Page, phone: string = '13800000001'): Promise<{ ok: boolean; finalUrl: string }> {
  7. // 访问登录页
  8. await page.goto(`${FRONTEND_URL}/#/pages/login/index`, { waitUntil: 'networkidle', timeout: 30000 });
  9. await page.waitForTimeout(2000);
  10. // 填手机号
  11. const phoneInput = page.locator('input').first();
  12. await expect(phoneInput).toBeVisible({ timeout: 10000 });
  13. await phoneInput.fill(phone);
  14. // 点登录按钮(开发环境免密)
  15. const loginBtn = page.locator('.login-btn').first();
  16. await expect(loginBtn).toBeVisible({ timeout: 10000 });
  17. await loginBtn.click();
  18. // 等登录完成(弹 toast 或 URL 变化)
  19. await page.waitForTimeout(3000);
  20. const finalUrl = page.url();
  21. const ok = !finalUrl.includes('/login/');
  22. return { ok, finalUrl };
  23. }