Explorar o código

✅ test(disability): 添加银行卡类别和类型筛选集成测试

- 添加银行卡类别筛选测试(bankNameId)
- 添加银行卡类型筛选测试(cardType)
- 所有筛选功能集成测试现在完整覆盖5个新筛选条件

🤖 Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname hai 1 semana
pai
achega
ff7f5d332f

+ 204 - 0
allin-packages/disability-module/tests/integration/disability.integration.test.ts

@@ -885,6 +885,210 @@ describe('残疾人管理API集成测试', () => {
         expect(data.data[0].name).toBe('北京一级视力残疾人');
       }
     });
+
+    it('应该支持银行卡类别筛选', async () => {
+      // 创建测试数据
+      const dataSource = await IntegrationTestDatabase.getDataSource();
+      const disabledPersonRepository = dataSource.getRepository(DisabledPerson);
+      const bankNameRepository = dataSource.getRepository(BankName);
+      const bankCardRepository = dataSource.getRepository(DisabledBankCard);
+
+      // 创建银行名称
+      const bankName1 = bankNameRepository.create({
+        name: '中国工商银行',
+        code: 'ICBC',
+        status: 1
+      });
+      await bankNameRepository.save(bankName1);
+
+      const bankName2 = bankNameRepository.create({
+        name: '中国建设银行',
+        code: 'CCB',
+        status: 1
+      });
+      await bankNameRepository.save(bankName2);
+
+      // 创建人员1 - 有工商银行卡
+      const person1 = disabledPersonRepository.create({
+        name: '工商银行用户',
+        gender: '男',
+        idCard: '110101199001011391',
+        disabilityId: 'D123456891',
+        disabilityType: '视力残疾',
+        disabilityLevel: '一级',
+        idAddress: '北京市测试区',
+        phone: '1380013891',
+        province: '北京市',
+        city: '北京市'
+      });
+      await disabledPersonRepository.save(person1);
+
+      // 为人员1创建工商银行卡
+      const bankCard1 = bankCardRepository.create({
+        personId: person1.id,
+        subBankName: '北京分行',
+        bankName: '中国工商银行',
+        bankNameId: bankName1.id,
+        cardNumber: '6222001234567890123',
+        cardholderName: '工商银行用户',
+        cardType: '储蓄卡',
+        fileId: testFile.id,
+        isDefault: 1
+      });
+      await bankCardRepository.save(bankCard1);
+
+      // 创建人员2 - 有建设银行卡
+      const person2 = disabledPersonRepository.create({
+        name: '建设银行用户',
+        gender: '女',
+        idCard: '110101199001011392',
+        disabilityId: 'D123456892',
+        disabilityType: '肢体残疾',
+        disabilityLevel: '二级',
+        idAddress: '北京市测试区',
+        phone: '1380013892',
+        province: '北京市',
+        city: '北京市'
+      });
+      await disabledPersonRepository.save(person2);
+
+      // 为人员2创建建设银行卡
+      const bankCard2 = bankCardRepository.create({
+        personId: person2.id,
+        subBankName: '北京分行',
+        bankName: '中国建设银行',
+        bankNameId: bankName2.id,
+        cardNumber: '6227001234567890123',
+        cardholderName: '建设银行用户',
+        cardType: '信用卡',
+        fileId: testFile.id,
+        isDefault: 1
+      });
+      await bankCardRepository.save(bankCard2);
+
+      // 测试工商银行筛选
+      const response = await client.getAllDisabledPersons.$get({
+        query: {
+          bankNameId: bankName1.id,
+          skip: 0,
+          take: 10
+        }
+      }, {
+        headers: {
+          'Authorization': `Bearer ${testToken}`
+        }
+      });
+
+      expect(response.status).toBe(200);
+
+      if (response.status === 200) {
+        const data = await response.json();
+        expect(data.data).toHaveLength(1);
+        expect(data.data[0].name).toBe('工商银行用户');
+      }
+    });
+
+    it('应该支持银行卡类型筛选', async () => {
+      // 创建测试数据
+      const dataSource = await IntegrationTestDatabase.getDataSource();
+      const disabledPersonRepository = dataSource.getRepository(DisabledPerson);
+      const bankNameRepository = dataSource.getRepository(BankName);
+      const bankCardRepository = dataSource.getRepository(DisabledBankCard);
+
+      // 创建银行名称
+      const bankName1 = bankNameRepository.create({
+        name: '中国工商银行',
+        code: 'ICBC',
+        status: 1
+      });
+      await bankNameRepository.save(bankName1);
+
+      const bankName2 = bankNameRepository.create({
+        name: '中国建设银行',
+        code: 'CCB',
+        status: 1
+      });
+      await bankNameRepository.save(bankName2);
+
+      // 创建人员1 - 有储蓄卡
+      const person1 = disabledPersonRepository.create({
+        name: '储蓄卡用户',
+        gender: '男',
+        idCard: '110101199001011393',
+        disabilityId: 'D123456893',
+        disabilityType: '视力残疾',
+        disabilityLevel: '一级',
+        idAddress: '北京市测试区',
+        phone: '1380013893',
+        province: '北京市',
+        city: '北京市'
+      });
+      await disabledPersonRepository.save(person1);
+
+      // 为人员1创建储蓄卡
+      const bankCard1 = bankCardRepository.create({
+        personId: person1.id,
+        subBankName: '北京分行',
+        bankName: '中国工商银行',
+        bankNameId: bankName1.id,
+        cardNumber: '6222001234567890124',
+        cardholderName: '储蓄卡用户',
+        cardType: '储蓄卡',
+        fileId: testFile.id,
+        isDefault: 1
+      });
+      await bankCardRepository.save(bankCard1);
+
+      // 创建人员2 - 有信用卡
+      const person2 = disabledPersonRepository.create({
+        name: '信用卡用户',
+        gender: '女',
+        idCard: '110101199001011394',
+        disabilityId: 'D123456894',
+        disabilityType: '肢体残疾',
+        disabilityLevel: '二级',
+        idAddress: '北京市测试区',
+        phone: '1380013894',
+        province: '北京市',
+        city: '北京市'
+      });
+      await disabledPersonRepository.save(person2);
+
+      // 为人员2创建信用卡
+      const bankCard2 = bankCardRepository.create({
+        personId: person2.id,
+        subBankName: '北京分行',
+        bankName: '中国建设银行',
+        bankNameId: bankName2.id,
+        cardNumber: '6227001234567890124',
+        cardholderName: '信用卡用户',
+        cardType: '信用卡',
+        fileId: testFile.id,
+        isDefault: 1
+      });
+      await bankCardRepository.save(bankCard2);
+
+      // 测试储蓄卡筛选
+      const response = await client.getAllDisabledPersons.$get({
+        query: {
+          cardType: '储蓄卡',
+          skip: 0,
+          take: 10
+        }
+      }, {
+        headers: {
+          'Authorization': `Bearer ${testToken}`
+        }
+      });
+
+      expect(response.status).toBe(200);
+
+      if (response.status === 200) {
+        const data = await response.json();
+        expect(data.data).toHaveLength(1);
+        expect(data.data[0].name).toBe('储蓄卡用户');
+      }
+    });
   });
 
   describe('GET /searchDisabledPersons', () => {