/** * 全局测试初始化 * 在所有测试运行前执行,验证服务健康、准备测试数据 */ import { initApiClient, apiGet, apiPost, setAuthToken } from './helpers/api-client'; async function globalSetup() { console.log('\n========================================'); console.log(' 自动化测试 - 全局初始化'); console.log('========================================\n'); // 1. 初始化 API 客户端 await initApiClient(); // 2. 健康检查 console.log('[setup] 检查服务健康状态...'); try { const health = await apiGet('/health'); if (health.code === 0) { console.log(' ✅ 后端服务正常'); } else { console.warn(' ⚠ 后端服务状态异常:', health); } } catch (e: any) { console.error(' ❌ 后端服务不可达!', e.message); throw new Error(`后端服务不可达: ${e.message}`); } // 3. 检查数据库连接 console.log('[setup] 检查数据库连接...'); try { const db = await apiGet('/api/tts/test-db'); if (db.code === 0) { console.log(' ✅ 数据库连接正常'); } else { console.warn(' ⚠ 数据库连接异常:', db); } } catch (e: any) { console.warn(' ⚠ 数据库检查失败:', e.message); } // 4. 创建测试用户并获取 token console.log('[setup] 创建测试用户...'); try { // 使用固定测试手机号 const codeRes = await apiPost('/api/auth/send-code', { phone: '13800000001' }); const code = codeRes.data?.code || '123456'; const loginRes = await apiPost('/api/auth/login', { phone: '13800000001', code }); const token = loginRes.data?.token; if (token) { setAuthToken(token); } console.log(` ✅ 测试用户就绪 (token: ${token ? '已获取' : '未获取'})`); } catch (e: any) { console.warn(' ⚠ 测试用户创建失败:', e.message); } // 5. 检查关键 API 列表是否可用 console.log('[setup] 验证核心 API 端点...'); const checks = [ { name: '音色列表', path: '/api/tts/voices' }, { name: '音频列表', path: '/api/player/audio/list' }, { name: '书籍列表', path: '/api/book-generator/langgraph/books' }, { name: '专辑列表', path: '/api/book-generator/albums' }, { name: '历史记录', path: '/api/history' }, ]; for (const check of checks) { try { const res = await apiGet(check.path); if (res.code === 0) { console.log(` ✅ ${check.name}`); } else { console.warn(` ⚠ ${check.name}: code=${res.code}`); } } catch (e: any) { console.warn(` ⚠ ${check.name}: ${e.message}`); } } console.log('\n========================================'); console.log(' 全局初始化完成,开始运行测试...'); console.log('========================================\n'); } export default globalSetup;