Explorar o código

✅ test(login): 修复登录测试中的潜在内存泄漏问题

- 使用ref对象存储resolve函数,避免闭包中可能的未定义引用
- 添加安全检查确保resolve函数存在后再调用,防止测试清理时的运行时错误
- 优化异步测试的资源清理流程,提高测试稳定性
yourname hai 2 meses
pai
achega
2c82c54aa7
Modificáronse 1 ficheiros con 8 adicións e 5 borrados
  1. 8 5
      src/client/__integration_tests__/admin/login.test.tsx

+ 8 - 5
src/client/__integration_tests__/admin/login.test.tsx

@@ -85,10 +85,11 @@ describe('LoginPage 集成测试', () => {
   });
 
   it('应该显示加载状态当表单提交时', async () => {
-    // 设置mock login返回一个延迟的promise
-    let resolveLogin: (value?: unknown) => void;
+    // 使用ref来安全地存储resolve函数
+    const resolveRef = { current: undefined as ((value?: unknown) => void) | undefined };
+
     mockLogin.mockImplementation(() => new Promise((resolve) => {
-      resolveLogin = resolve;
+      resolveRef.current = resolve;
     }));
 
     render(<LoginPage />, { wrapper: TestWrapper });
@@ -105,8 +106,10 @@ describe('LoginPage 集成测试', () => {
       expect(submitButton).toBeDisabled();
     });
 
-    // 清理
-    resolveLogin?.();
+    // 清理 - 安全地调用resolve函数
+    if (resolveRef.current) {
+      resolveRef.current();
+    }
   });
 
   it('应该显示测试账号信息', async () => {