setup.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. const dotenv = require('dotenv');
  2. const express = require('express');
  3. const { initializeParseServer } = require('../../src/config/parse-server');
  4. const { initializeParseSDK } = require('../../src/config/parse-sdk');
  5. // 加载测试环境变量
  6. dotenv.config({ path: '.env.test' });
  7. // 设置测试超时
  8. jest.setTimeout(30000);
  9. let testServer = null;
  10. // 全局测试配置
  11. beforeAll(async () => {
  12. console.log('🧪 开始集成测试...');
  13. try {
  14. // 1. 初始化Parse Server
  15. await initializeParseServer();
  16. console.log('✅ Parse Server 初始化成功');
  17. // 2. 创建简单的Express服务器来托管Parse Server
  18. const app = express();
  19. // 挂载Parse Server中间件
  20. const { getParseServerMiddleware } = require('../../src/config/parse-server');
  21. app.use('/parse', getParseServerMiddleware());
  22. // 3. 启动测试服务器
  23. const PORT = process.env.PORT || 3001;
  24. testServer = app.listen(PORT, () => {
  25. console.log(`✅ 测试服务器启动成功,端口: ${PORT}`);
  26. });
  27. // 4. 等待服务器完全启动
  28. await new Promise(resolve => setTimeout(resolve, 2000));
  29. // 5. 初始化Parse SDK - 确保使用parse-sdk.ts中的配置
  30. await initializeParseSDK();
  31. console.log('✅ Parse SDK 初始化成功');
  32. // 6. 验证Parse SDK是否正确配置
  33. const Parse = require('parse/node');
  34. if (!Parse.applicationId) {
  35. throw new Error('Parse SDK 未正确初始化 - applicationId 缺失');
  36. }
  37. console.log('✅ Parse SDK 验证成功');
  38. } catch (error) {
  39. console.error('❌ 测试环境初始化失败:', error);
  40. throw error;
  41. }
  42. });
  43. afterAll(async () => {
  44. console.log('✅ 集成测试完成');
  45. // 关闭测试服务器
  46. if (testServer) {
  47. testServer.close(() => {
  48. console.log('✅ 测试服务器已关闭');
  49. });
  50. }
  51. });