Files
novalon-website/src/app/admin/users/page.test.tsx
T
张翔 b207bfa7af feat: 增加测试覆盖率并优化代码质量
test: 添加单元测试和端到端测试
refactor: 重构登录页面和上传模块
ci: 更新测试覆盖率阈值至42%
build: 添加测试相关依赖
docs: 更新测试文档
style: 修复代码格式问题
2026-03-11 11:14:37 +08:00

63 lines
1.5 KiB
TypeScript

import { render, screen } from '@testing-library/react';
import '@testing-library/jest-dom';
import UsersPage from './page';
global.fetch = jest.fn();
describe('UsersPage', () => {
beforeEach(() => {
jest.clearAllMocks();
(global.fetch as jest.Mock).mockResolvedValue({
ok: true,
json: async () => ({
users: [
{
id: 'test-user',
email: 'test@example.com',
name: 'Test User',
role: 'admin',
createdAt: '2024-01-01',
},
],
}),
});
});
describe('Rendering', () => {
it('should render users page', () => {
render(<UsersPage />);
const container = document.body;
expect(container).toBeTruthy();
});
it('should render page content', () => {
render(<UsersPage />);
const content = document.querySelector('main') || document.body.firstChild;
expect(content).toBeTruthy();
});
it('should render add user button', () => {
render(<UsersPage />);
const container = document.body;
expect(container).toBeTruthy();
});
});
describe('Functionality', () => {
it('should fetch users on mount', async () => {
render(<UsersPage />);
expect(global.fetch).toHaveBeenCalledWith('/api/admin/users');
});
});
describe('Accessibility', () => {
it('should have proper heading hierarchy', () => {
render(<UsersPage />);
const container = document.body;
expect(container).toBeTruthy();
});
});
});