/**
 * Playwright global setup：指向 mock 主站钱包、tick 期号调度。
 */
import { request as pwRequest } from '@playwright/test';

export default async function globalSetup(): Promise<void> {
  const api = process.env.PLAYWRIGHT_API_URL ?? 'http://127.0.0.1:8000';
  const mockPort = process.env.E2E_MOCK_WALLET_PORT ?? '5555';
  const ctx = await pwRequest.newContext({ baseURL: api });

  const siteCode = process.env.E2E_PLAYER_SITE_CODE ?? 'demo';
  const walletResp = await ctx.post('/api/v1/_e2e/site/wallet-api', {
    data: {
      site_code: siteCode,
      base_url: `http://127.0.0.1:${mockPort}`,
      wallet_api_key: 'e2e-mock-key',
    },
  });
  if (!walletResp.ok()) {
    const body = await walletResp.text().catch(() => '');
    throw new Error(`e2e wallet-api setup failed: ${walletResp.status()} ${body.slice(0, 400)}`);
  }

  await ctx.post('/api/v1/_e2e/draw/tick', { data: {} });

  await ctx.dispose();
}
