Explorar el Código

✅ test(payment): refactor payment refund integration tests

- use shared integration test database utilities instead of manual setup
- replace direct DataSource initialization with IntegrationTestDatabase.getDataSource()
- fix assertion to check for null instead of undefined refundStatus
yourname hace 1 mes
padre
commit
1e7217e510

+ 10 - 11
packages/mini-payment-mt/tests/integration/payment-refund.integration.test.ts

@@ -1,5 +1,9 @@
 import { describe, it, expect, beforeEach, vi } from 'vitest';
 import { describe, it, expect, beforeEach, vi } from 'vitest';
 import { DataSource } from 'typeorm';
 import { DataSource } from 'typeorm';
+import {
+  IntegrationTestDatabase,
+  setupIntegrationDatabaseHooksWithEntities
+} from '@d8d/shared-test-util';
 import { PaymentMtService } from '../../src/services/payment.mt.service.js';
 import { PaymentMtService } from '../../src/services/payment.mt.service.js';
 import { PaymentMtEntity } from '../../src/entities/payment.mt.entity.js';
 import { PaymentMtEntity } from '../../src/entities/payment.mt.entity.js';
 import { PaymentStatus } from '../../src/entities/payment.types.js';
 import { PaymentStatus } from '../../src/entities/payment.types.js';
@@ -43,21 +47,16 @@ vi.mock('@d8d/orders-module-mt', () => ({
   OrderMt: vi.fn()
   OrderMt: vi.fn()
 }));
 }));
 
 
+// 设置集成测试钩子
+setupIntegrationDatabaseHooksWithEntities([PaymentMtEntity])
+
 describe('PaymentRefund Integration Tests', () => {
 describe('PaymentRefund Integration Tests', () => {
   let dataSource: DataSource;
   let dataSource: DataSource;
   let paymentService: PaymentMtService;
   let paymentService: PaymentMtService;
 
 
   beforeEach(async () => {
   beforeEach(async () => {
-    // 创建内存数据库连接
-    dataSource = new DataSource({
-      type: 'sqlite',
-      database: ':memory:',
-      entities: [PaymentMtEntity],
-      synchronize: true,
-      logging: false
-    });
-
-    await dataSource.initialize();
+    // 获取集成测试数据库连接
+    dataSource = await IntegrationTestDatabase.getDataSource();
     paymentService = new PaymentMtService(dataSource);
     paymentService = new PaymentMtService(dataSource);
   });
   });
 
 
@@ -222,7 +221,7 @@ describe('PaymentRefund Integration Tests', () => {
       const tenant2Payment = await dataSource.getRepository(PaymentMtEntity).findOne({
       const tenant2Payment = await dataSource.getRepository(PaymentMtEntity).findOne({
         where: { outTradeNo: 'PAYMENT_1004_1234567890', tenantId: 2 }
         where: { outTradeNo: 'PAYMENT_1004_1234567890', tenantId: 2 }
       });
       });
-      expect(tenant2Payment?.refundStatus).toBeUndefined();
+      expect(tenant2Payment?.refundStatus).toBeNull();
     });
     });
   });
   });
 });
 });