添加LOTTERY_E2E环境变量来控制E2E测试相关功能, 包括绕过验证码、登录限制和钱包API URL验证, 同时更新composer.json以包含E2E专用的提供者和服务。
This commit is contained in:
24
e2e/tests/ui/admin-login.spec.ts
Normal file
24
e2e/tests/ui/admin-login.spec.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
|
||||
const ADMIN_URL = process.env.PLAYWRIGHT_ADMIN_URL ?? 'http://localhost:3801';
|
||||
const ADMIN_ACCOUNT = process.env.E2E_ADMIN_USERNAME ?? 'admin';
|
||||
const ADMIN_PASSWORD = process.env.E2E_ADMIN_PASSWORD ?? '12345678';
|
||||
|
||||
test('管理端登录页 → 登录成功进入后台', async ({ page }) => {
|
||||
test.setTimeout(90_000);
|
||||
await page.goto(`${ADMIN_URL}/admin/login`);
|
||||
|
||||
const account = page.locator('#admin-account');
|
||||
await account.waitFor({ state: 'visible', timeout: 60_000 });
|
||||
await account.fill(ADMIN_ACCOUNT);
|
||||
await page.locator('#admin-password').fill(ADMIN_PASSWORD);
|
||||
|
||||
const captchaImg = page.locator('img[src^="data:image"]');
|
||||
await captchaImg.waitFor({ state: 'visible', timeout: 30_000 });
|
||||
|
||||
await page.locator('#admin-captcha').fill('LOTTERY_E2E_BYPASS');
|
||||
await page.getByRole('button', { name: /^登录$|Sign in|submit/i }).click();
|
||||
|
||||
await page.waitForURL(/\/admin(?!\/login)/, { timeout: 45_000 });
|
||||
expect(page.url()).toContain('/admin');
|
||||
});
|
||||
24
e2e/tests/ui/front-login-hall.spec.ts
Normal file
24
e2e/tests/ui/front-login-hall.spec.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
|
||||
const FRONT_URL = process.env.PLAYWRIGHT_FRONT_URL ?? 'http://localhost:3800';
|
||||
const USER = process.env.E2E_PLAYER_USERNAME ?? 'demo_player';
|
||||
const PASS = process.env.E2E_PLAYER_PASSWORD ?? '12345678';
|
||||
|
||||
test('玩家端登录 → 进入大厅', async ({ page }) => {
|
||||
test.setTimeout(90_000);
|
||||
await page.goto(`${FRONT_URL}/login`);
|
||||
|
||||
const userInput = page.locator('#login-user');
|
||||
await userInput.waitFor({ state: 'visible', timeout: 60_000 });
|
||||
await userInput.fill(USER);
|
||||
await page.locator('#login-pass').fill(PASS);
|
||||
|
||||
const captchaImg = page.locator('img[src^="data:image"]');
|
||||
await captchaImg.waitFor({ state: 'visible', timeout: 30_000 });
|
||||
|
||||
await page.locator('#login-captcha').fill('LOTTERY_E2E_BYPASS');
|
||||
await page.getByRole('button', { name: /^登录$|Sign in|submit/i }).click();
|
||||
|
||||
await page.waitForURL(/\/hall/, { timeout: 45_000 });
|
||||
expect(page.url()).toContain('/hall');
|
||||
});
|
||||
Reference in New Issue
Block a user