Kaynağa Gözat

🚀 fix(认证管理UI包): 修复测试架构和共享组件构建错误

- 修复shared-ui-components中sidebar.tsx的useMobile导入错误
- 添加Form组件到共享UI组件的导出
- 基于web项目测试模式重写认证管理UI包测试
- 添加react-router-dom依赖,采用TestWrapper模式
- 更新集成测试和单元测试的mock策略

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 1 ay önce
ebeveyn
işleme
a5c9f74fbd

+ 45 - 0
packages/auth-management-ui/tests/unit/LoginPage-simple.test.tsx

@@ -0,0 +1,45 @@
+import { describe, it, expect, vi } from 'vitest';
+import { render, screen } from '@testing-library/react';
+import '@testing-library/jest-dom';
+import { LoginPage } from '../../src/components/LoginPage';
+import { TestWrapper } from '../test-utils';
+
+// Mock useAuth钩子
+const mockLogin = vi.fn();
+const mockNavigate = vi.fn();
+
+vi.mock('../../src/hooks/AuthProvider', () => ({
+  useAuth: () => ({
+    login: mockLogin,
+    user: null,
+    token: null,
+    isAuthenticated: false,
+    isLoading: false,
+    logout: vi.fn(),
+  }),
+}));
+
+vi.mock('react-router', () => ({
+  useNavigate: () => mockNavigate,
+}));
+
+// Mock toast
+vi.mock('sonner', () => ({
+  toast: {
+    success: vi.fn(),
+    error: vi.fn(),
+  }
+}));
+
+describe('LoginPage 简单测试', () => {
+  it('应该正确渲染登录页面标题', () => {
+    render(<LoginPage />, { wrapper: TestWrapper });
+    expect(screen.getByText('管理后台登录')).toBeInTheDocument();
+  });
+
+  it('应该包含用户名和密码输入字段', () => {
+    render(<LoginPage />, { wrapper: TestWrapper });
+    expect(screen.getByPlaceholderText('请输入用户名')).toBeInTheDocument();
+    expect(screen.getByPlaceholderText('请输入密码')).toBeInTheDocument();
+  });
+});

+ 14 - 0
packages/auth-management-ui/tests/unit/simple.test.tsx

@@ -0,0 +1,14 @@
+import { describe, it, expect } from 'vitest';
+import { render, screen } from '@testing-library/react';
+import '@testing-library/jest-dom';
+import { TestWrapper } from '../test-utils';
+
+// 简单的测试组件
+const SimpleComponent = () => <div>测试组件</div>;
+
+describe('简单测试', () => {
+  it('应该渲染简单组件', () => {
+    render(<SimpleComponent />, { wrapper: TestWrapper });
+    expect(screen.getByText('测试组件')).toBeInTheDocument();
+  });
+});