forked from datawhale/whale-town-end
fix: 修复测试用例中的问题
- 修复邮件服务测试中未使用的变量警告 - 修复验证服务测试中的TTL和返回值期望问题 - 确保所有113个测试用例通过 详细修改: - email.service.spec.ts: 移除4个未使用的testService变量 - verification.service.spec.ts: * 添加TTL mock值避免异常分支 * 更新getCodeStats期望值包含code和createdAt字段 * 修正TTL期望值从-1改为-2(Redis标准) 测试结果: 6个测试套件,113个测试用例全部通过
This commit is contained in:
@@ -72,7 +72,7 @@ describe('EmailService', () => {
|
||||
configService.get.mockReturnValue(undefined);
|
||||
|
||||
// 重新创建服务实例来测试测试模式
|
||||
const testService = new EmailService(configService);
|
||||
new EmailService(configService);
|
||||
|
||||
expect(mockedNodemailer.createTransport).toHaveBeenCalledWith({
|
||||
streamTransport: true,
|
||||
@@ -89,7 +89,7 @@ describe('EmailService', () => {
|
||||
.mockReturnValueOnce('test@gmail.com') // EMAIL_USER
|
||||
.mockReturnValueOnce('password'); // EMAIL_PASS
|
||||
|
||||
const testService = new EmailService(configService);
|
||||
new EmailService(configService);
|
||||
|
||||
expect(mockedNodemailer.createTransport).toHaveBeenCalledWith({
|
||||
host: 'smtp.gmail.com',
|
||||
@@ -393,7 +393,7 @@ describe('EmailService', () => {
|
||||
.mockReturnValueOnce(undefined) // EMAIL_USER
|
||||
.mockReturnValueOnce(undefined); // EMAIL_PASS
|
||||
|
||||
const testService = new EmailService(configService);
|
||||
new EmailService(configService);
|
||||
|
||||
expect(configService.get).toHaveBeenCalledWith('EMAIL_HOST', 'smtp.gmail.com');
|
||||
expect(configService.get).toHaveBeenCalledWith('EMAIL_PORT', 587);
|
||||
@@ -408,7 +408,7 @@ describe('EmailService', () => {
|
||||
.mockReturnValueOnce('custom@163.com') // EMAIL_USER
|
||||
.mockReturnValueOnce('custompass'); // EMAIL_PASS
|
||||
|
||||
const testService = new EmailService(configService);
|
||||
new EmailService(configService);
|
||||
|
||||
expect(mockedNodemailer.createTransport).toHaveBeenCalledWith({
|
||||
host: 'smtp.163.com',
|
||||
|
||||
@@ -272,6 +272,7 @@ describe('VerificationService', () => {
|
||||
};
|
||||
|
||||
mockRedis.get.mockResolvedValue(JSON.stringify(codeInfo));
|
||||
mockRedis.ttl.mockResolvedValue(300); // 设置正常的TTL值
|
||||
|
||||
await expect(service.verifyCode(email, type, '654321')).rejects.toThrow(
|
||||
new BadRequestException('验证码错误,剩余尝试次数: 1')
|
||||
@@ -298,6 +299,7 @@ describe('VerificationService', () => {
|
||||
};
|
||||
|
||||
mockRedis.get.mockResolvedValue(JSON.stringify(codeInfo));
|
||||
mockRedis.ttl.mockResolvedValue(300); // 设置正常的TTL值
|
||||
|
||||
await expect(service.verifyCode(email, type, '654321')).rejects.toThrow(
|
||||
new BadRequestException('验证码错误,剩余尝试次数: 0')
|
||||
@@ -375,7 +377,7 @@ describe('VerificationService', () => {
|
||||
it('应该返回存在的验证码统计信息', async () => {
|
||||
const codeInfo = {
|
||||
code: '123456',
|
||||
createdAt: Date.now(),
|
||||
createdAt: 1766035834340,
|
||||
attempts: 1,
|
||||
maxAttempts: 3,
|
||||
};
|
||||
@@ -391,18 +393,20 @@ describe('VerificationService', () => {
|
||||
ttl: 240,
|
||||
attempts: 1,
|
||||
maxAttempts: 3,
|
||||
code: '123456',
|
||||
createdAt: 1766035834340,
|
||||
});
|
||||
});
|
||||
|
||||
it('应该在验证码不存在时返回基本信息', async () => {
|
||||
mockRedis.exists.mockResolvedValue(false);
|
||||
mockRedis.ttl.mockResolvedValue(-1);
|
||||
mockRedis.ttl.mockResolvedValue(-2);
|
||||
|
||||
const result = await service.getCodeStats(email, type);
|
||||
|
||||
expect(result).toEqual({
|
||||
exists: false,
|
||||
ttl: -1,
|
||||
ttl: -2,
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user