diff --git a/backend/services/identity-service/test/app.e2e-spec.ts b/backend/services/identity-service/test/app.e2e-spec.ts index 27f7eae7..d41f9af8 100644 --- a/backend/services/identity-service/test/app.e2e-spec.ts +++ b/backend/services/identity-service/test/app.e2e-spec.ts @@ -57,6 +57,20 @@ describe('Identity Service E2E Tests', () => { prisma = app.get(PrismaService); await app.init(); + + // 清理数据库,为测试准备干净的环境 + await prisma.userDevice.deleteMany(); + await prisma.walletAddress.deleteMany(); + await prisma.userAccount.deleteMany(); + + // 初始化账户序列号生成器 + await prisma.accountSequenceGenerator.deleteMany(); + await prisma.accountSequenceGenerator.create({ + data: { + id: 1, + currentSequence: BigInt(100000), + }, + }); }); afterAll(async () => { @@ -233,16 +247,30 @@ describe('Identity Service E2E Tests', () => { }); it('应该限制设备数量为5个', async () => { - // 添加5个设备 - for (let i = 0; i < 5; i++) { + // 创建新的独立账户用于测试设备限制(包含1个初始设备) + const newAccount = await request(app.getHttpServer()) + .post('/api/v1/user/auto-create') + .send({ + deviceId: `limit-test-initial-${Date.now()}`, + deviceName: 'Initial Device', + provinceCode: '110000', + cityCode: '110100', + }) + .expect(201); + + const testAccountSequence = newAccount.body.data.accountSequence; + const testMnemonic = newAccount.body.data.mnemonic; + + // 再添加4个设备,达到5个限制 + for (let i = 0; i < 4; i++) { const testDeviceId = `test-device-limit-${Date.now()}-${i}`; const response = await request(app.getHttpServer()) .post('/api/v1/user/recover-by-mnemonic') .send({ - accountSequence, - mnemonic, + accountSequence: testAccountSequence, + mnemonic: testMnemonic, newDeviceId: testDeviceId, - deviceName: `设备${i + 1}`, + deviceName: `设备${i + 2}`, // 从设备2开始命名(设备1是初始设备) }); if (response.status !== 201) { @@ -255,13 +283,13 @@ describe('Identity Service E2E Tests', () => { expect(response.status).toBe(201); } - // 尝试添加第6个设备,应该失败 + // 现在已经有5个设备了,尝试添加第6个设备,应该失败 const sixthDeviceId = `test-device-sixth-${Date.now()}`; await request(app.getHttpServer()) .post('/api/v1/user/recover-by-mnemonic') .send({ - accountSequence, - mnemonic, + accountSequence: testAccountSequence, + mnemonic: testMnemonic, newDeviceId: sixthDeviceId, deviceName: '第6个设备', })