const dotenv = require('dotenv'); const express = require('express'); const { initializeParseServer } = require('../../src/config/parse-server'); const { initializeParseSDK } = require('../../src/config/parse-sdk'); // 加载测试环境变量 dotenv.config({ path: '.env.test' }); // 设置测试超时 jest.setTimeout(30000); let testServer = null; // 全局测试配置 beforeAll(async () => { console.log('🧪 开始集成测试...'); try { // 1. 初始化Parse Server await initializeParseServer(); console.log('✅ Parse Server 初始化成功'); // 2. 创建简单的Express服务器来托管Parse Server const app = express(); // 挂载Parse Server中间件 const { getParseServerMiddleware } = require('../../src/config/parse-server'); app.use('/parse', getParseServerMiddleware()); // 3. 启动测试服务器 const PORT = process.env.PORT || 3001; testServer = app.listen(PORT, () => { console.log(`✅ 测试服务器启动成功,端口: ${PORT}`); }); // 4. 等待服务器完全启动 await new Promise(resolve => setTimeout(resolve, 2000)); // 5. 初始化Parse SDK - 确保使用parse-sdk.ts中的配置 await initializeParseSDK(); console.log('✅ Parse SDK 初始化成功'); // 6. 验证Parse SDK是否正确配置 const Parse = require('parse/node'); if (!Parse.applicationId) { throw new Error('Parse SDK 未正确初始化 - applicationId 缺失'); } console.log('✅ Parse SDK 验证成功'); } catch (error) { console.error('❌ 测试环境初始化失败:', error); throw error; } }); afterAll(async () => { console.log('✅ 集成测试完成'); // 关闭测试服务器 if (testServer) { testServer.close(() => { console.log('✅ 测试服务器已关闭'); }); } });