feat: 增加测试覆盖率并优化代码质量

test: 添加单元测试和端到端测试
refactor: 重构登录页面和上传模块
ci: 更新测试覆盖率阈值至42%
build: 添加测试相关依赖
docs: 更新测试文档
style: 修复代码格式问题
This commit is contained in:
张翔
2026-03-11 11:14:37 +08:00
parent 8fd7ed84ed
commit b207bfa7af
58 changed files with 14494 additions and 655 deletions
+86
View File
@@ -0,0 +1,86 @@
import { describe, it, expect } from '@jest/globals';
import { users, content, siteConfig, auditLogs, contentVersions } from './schema';
describe('Database Schema', () => {
describe('users table', () => {
it('should have correct columns defined', () => {
expect(users.id).toBeDefined();
expect(users.email).toBeDefined();
expect(users.passwordHash).toBeDefined();
expect(users.name).toBeDefined();
expect(users.role).toBeDefined();
expect(users.avatar).toBeDefined();
expect(users.createdAt).toBeDefined();
expect(users.updatedAt).toBeDefined();
});
it('should have default role as editor', () => {
const role = users.role;
expect(role).toBeDefined();
});
});
describe('content table', () => {
it('should have correct columns defined', () => {
expect(content.id).toBeDefined();
expect(content.type).toBeDefined();
expect(content.title).toBeDefined();
expect(content.slug).toBeDefined();
expect(content.excerpt).toBeDefined();
expect(content.content).toBeDefined();
expect(content.coverImage).toBeDefined();
expect(content.category).toBeDefined();
expect(content.tags).toBeDefined();
expect(content.status).toBeDefined();
expect(content.publishedAt).toBeDefined();
expect(content.authorId).toBeDefined();
expect(content.sortOrder).toBeDefined();
expect(content.metadata).toBeDefined();
expect(content.createdAt).toBeDefined();
expect(content.updatedAt).toBeDefined();
});
it('should have default status as draft', () => {
expect(content.status).toBeDefined();
});
});
describe('contentVersions table', () => {
it('should have correct columns defined', () => {
expect(contentVersions.id).toBeDefined();
expect(contentVersions.contentId).toBeDefined();
expect(contentVersions.version).toBeDefined();
expect(contentVersions.title).toBeDefined();
expect(contentVersions.content).toBeDefined();
expect(contentVersions.changes).toBeDefined();
expect(contentVersions.changedBy).toBeDefined();
expect(contentVersions.changedAt).toBeDefined();
});
});
describe('siteConfig table', () => {
it('should have correct columns defined', () => {
expect(siteConfig.id).toBeDefined();
expect(siteConfig.key).toBeDefined();
expect(siteConfig.value).toBeDefined();
expect(siteConfig.category).toBeDefined();
expect(siteConfig.description).toBeDefined();
expect(siteConfig.updatedAt).toBeDefined();
expect(siteConfig.updatedBy).toBeDefined();
});
});
describe('auditLogs table', () => {
it('should have correct columns defined', () => {
expect(auditLogs.id).toBeDefined();
expect(auditLogs.userId).toBeDefined();
expect(auditLogs.action).toBeDefined();
expect(auditLogs.resourceType).toBeDefined();
expect(auditLogs.resourceId).toBeDefined();
expect(auditLogs.details).toBeDefined();
expect(auditLogs.ipAddress).toBeDefined();
expect(auditLogs.userAgent).toBeDefined();
expect(auditLogs.timestamp).toBeDefined();
});
});
});