feat: 添加E2E测试环境配置支持
Some checks failed
lotterLaravel CI / test (push) Has been cancelled

添加LOTTERY_E2E环境变量来控制E2E测试相关功能,
包括绕过验证码、登录限制和钱包API URL验证,
同时更新composer.json以包含E2E专用的提供者和服务。
This commit is contained in:
2026-06-18 14:42:22 +08:00
parent 6b2ea39ea1
commit 6ec9634704
45 changed files with 3702 additions and 6 deletions

View File

@@ -0,0 +1,50 @@
/**
* E2E信用盘下注占用授信钱包余额不变。
*/
import { test, expect } from '@playwright/test';
import {
fetchOpenDrawNo,
playerLoginViaBypass,
setupCreditPlayer,
e2e,
} from './_helper';
const CURRENCY = (process.env.LOTTERY_DEFAULT_CURRENCY ?? 'NPR').toUpperCase();
const BET_AMOUNT = 10_000;
test('信用玩家下注 → used_credit 增加、钱包 balance 不变', async () => {
const credit = await setupCreditPlayer({ credit_limit: 50_000 });
const drawNo = await fetchOpenDrawNo();
const session = await playerLoginViaBypass({
site_code: credit.site_code,
username: credit.username,
password: credit.password,
});
const ctx = await (await import('./_helper')).playerCtxOf(session.access_token);
const bal0 = (await (await ctx.get('/api/v1/wallet/balance')).json()) as any;
const walletBefore = Number(bal0.data.balance);
const place = await ctx.post('/api/v1/ticket/place', {
data: {
draw_id: drawNo,
currency_code: CURRENCY,
client_trace_id: `e2e-credit-${Date.now()}`,
lines: [{ number: '1234', play_code: 'straight', amount: BET_AMOUNT }],
},
});
expect(place.ok()).toBeTruthy();
const body = (await place.json()) as any;
expect(body.code).toBe(0);
const bal1 = (await (await ctx.get('/api/v1/wallet/balance')).json()) as any;
expect(Number(bal1.data.balance)).toBe(walletBefore);
await ctx.dispose();
const inspect = await e2e<any>('GET', `/inspect/credit-ledger?player_id=${credit.player_id}&limit=5`);
expect(inspect.data.count).toBeGreaterThan(0);
const hold = inspect.data.rows.find((r: any) => r.reason === 'bet_hold');
expect(hold).toBeTruthy();
});