feat: 修复测试套件问题并添加Woodpecker CI配置
- 修复API测试认证问题:创建全局认证设置,更新Playwright配置 - 优化回归测试稳定性:增加超时时间到15秒,修复定位器 - 创建Woodpecker CI工作流:CI、部署和质量门禁配置 - 添加Jest配置和测试脚本 - 移除登录页面的默认账号密码显示(安全问题修复)
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
- **在线咨询** - 联系表单、公司信息展示
|
||||
- **响应式设计** - 完美适配桌面端、平板和移动设备
|
||||
- **SEO 优化** - 结构化数据、元信息优化
|
||||
- **CMS管理后台** - 内容管理、用户管理、配置中心、审计日志
|
||||
|
||||
## 技术栈
|
||||
|
||||
@@ -32,6 +33,10 @@
|
||||
| 数据验证 | Zod | 4.3.6 |
|
||||
| 图表 | @antv/g2 | 5.4.8 |
|
||||
| 3D 效果 | Three.js | 0.183.1 |
|
||||
| 数据库 | SQLite | - |
|
||||
| ORM | Drizzle ORM | - |
|
||||
| 认证 | NextAuth.js | 5.x beta |
|
||||
| 富文本编辑 | Tiptap | - |
|
||||
|
||||
## 快速开始
|
||||
|
||||
@@ -57,8 +62,24 @@ cp .env.example .env.local
|
||||
配置必要的环境变量:
|
||||
|
||||
```env
|
||||
# 邮件服务
|
||||
RESEND_API_KEY=your_resend_api_key
|
||||
COMPANY_EMAIL=contact@novalon.cn
|
||||
|
||||
# 数据库
|
||||
DATABASE_URL=./data/novalon.db
|
||||
|
||||
# NextAuth.js
|
||||
NEXTAUTH_SECRET=your_nextauth_secret
|
||||
NEXTAUTH_URL=http://localhost:3000
|
||||
|
||||
# 文件上传
|
||||
UPLOAD_DIR=./uploads
|
||||
MAX_FILE_SIZE=10485760
|
||||
|
||||
# 管理员账号(首次运行时创建)
|
||||
ADMIN_EMAIL=admin@novalon.cn
|
||||
ADMIN_PASSWORD=your_secure_password
|
||||
```
|
||||
|
||||
### 开发模式
|
||||
@@ -98,8 +119,22 @@ novalon-website/
|
||||
│ │ │ ├── products/ # 产品服务
|
||||
│ │ │ ├── services/ # 核心业务
|
||||
│ │ │ └── solutions/ # 解决方案
|
||||
│ │ ├── admin/ # 管理后台
|
||||
│ │ │ ├── page.tsx # 仪表盘
|
||||
│ │ │ ├── login/ # 登录页面
|
||||
│ │ │ ├── content/ # 内容管理
|
||||
│ │ │ ├── users/ # 用户管理
|
||||
│ │ │ ├── settings/ # 配置中心
|
||||
│ │ │ └── logs/ # 审计日志
|
||||
│ │ ├── api/ # API 路由
|
||||
│ │ │ └── contact/ # 联系表单 API
|
||||
│ │ │ ├── auth/ # 认证 API
|
||||
│ │ │ ├── contact/ # 联系表单 API
|
||||
│ │ │ └── admin/ # 管理 API
|
||||
│ │ │ ├── content/ # 内容管理
|
||||
│ │ │ ├── users/ # 用户管理
|
||||
│ │ │ ├── config/ # 配置管理
|
||||
│ │ │ ├── upload/ # 文件上传
|
||||
│ │ │ └── logs/ # 审计日志
|
||||
│ │ ├── layout.tsx # 根布局
|
||||
│ │ ├── error.tsx # 错误页面
|
||||
│ │ └── not-found.tsx # 404 页面
|
||||
@@ -109,18 +144,36 @@ novalon-website/
|
||||
│ │ ├── sections/ # 页面区块组件
|
||||
│ │ ├── effects/ # 视觉效果组件
|
||||
│ │ ├── seo/ # SEO 组件
|
||||
│ │ └── analytics/ # 分析组件
|
||||
│ │ ├── analytics/ # 分析组件
|
||||
│ │ └── admin/ # 管理后台组件
|
||||
│ ├── lib/ # 工具函数
|
||||
│ │ ├── auth/ # 认证相关
|
||||
│ │ ├── db.ts # 数据库连接
|
||||
│ │ ├── audit.ts # 审计日志
|
||||
│ │ └── upload.ts # 文件上传
|
||||
│ ├── db/ # 数据库相关
|
||||
│ │ ├── schema.ts # 数据库 Schema
|
||||
│ │ ├── seed.ts # 种子数据
|
||||
│ │ └── migrations/ # 迁移文件
|
||||
│ ├── hooks/ # 自定义 Hooks
|
||||
│ └── contexts/ # React Context
|
||||
├── e2e/ # E2E 测试
|
||||
│ ├── src/
|
||||
│ │ ├── tests/ # 测试用例
|
||||
│ │ │ ├── smoke/ # 冒烟测试
|
||||
│ │ │ ├── regression/ # 回归测试
|
||||
│ │ │ ├── api/ # API 测试
|
||||
│ │ │ ├── accessibility/ # 可访问性测试
|
||||
│ │ │ ├── performance/ # 性能测试
|
||||
│ │ │ ├── security/ # 安全测试
|
||||
│ │ │ └── visual/ # 视觉回归测试
|
||||
│ │ ├── pages/ # Page Object
|
||||
│ │ ├── fixtures/ # 测试 Fixtures
|
||||
│ │ └── config/ # 测试配置
|
||||
│ └── playwright.config.ts
|
||||
├── public/ # 静态资源
|
||||
├── uploads/ # 上传文件存储
|
||||
├── data/ # SQLite 数据库文件
|
||||
├── docs/ # 项目文档
|
||||
└── dist/ # 构建输出
|
||||
```
|
||||
@@ -142,6 +195,13 @@ novalon-website/
|
||||
| `/contact` | 联系我们 |
|
||||
| `/privacy` | 隐私政策 |
|
||||
| `/terms` | 服务条款 |
|
||||
| `/admin` | 管理后台仪表盘 |
|
||||
| `/admin/login` | 管理员登录 |
|
||||
| `/admin/content` | 内容管理 |
|
||||
| `/admin/content/[id]` | 内容编辑 |
|
||||
| `/admin/users` | 用户管理 |
|
||||
| `/admin/settings` | 配置中心 |
|
||||
| `/admin/logs` | 审计日志 |
|
||||
|
||||
## NPM 脚本
|
||||
|
||||
@@ -155,6 +215,10 @@ novalon-website/
|
||||
| `npm run test:smoke` | 运行冒烟测试 |
|
||||
| `npm run check:contrast` | 检查颜色对比度 |
|
||||
| `npm run check:headings` | 检查标题层级 |
|
||||
| `npm run db:generate` | 生成数据库迁移文件 |
|
||||
| `npm run db:migrate` | 执行数据库迁移 |
|
||||
| `npm run db:seed` | 填充数据库种子数据 |
|
||||
| `npm run db:studio` | 启动 Drizzle Studio |
|
||||
|
||||
## 测试
|
||||
|
||||
@@ -164,6 +228,7 @@ novalon-website/
|
||||
|
||||
- **冒烟测试** - 基础功能验证
|
||||
- **回归测试** - 功能完整性验证
|
||||
- **API测试** - 后端API接口测试
|
||||
- **性能测试** - Core Web Vitals
|
||||
- **响应式测试** - 多设备适配
|
||||
- **可访问性测试** - WCAG 合规
|
||||
@@ -178,6 +243,72 @@ npm install
|
||||
npm run test
|
||||
```
|
||||
|
||||
## 管理后台
|
||||
|
||||
### 功能模块
|
||||
|
||||
#### 内容管理
|
||||
- 支持新闻、产品、服务、案例四种内容类型
|
||||
- 富文本编辑器(支持图片上传)
|
||||
- 内容版本管理
|
||||
- 草稿/发布/归档状态管理
|
||||
|
||||
#### 用户管理
|
||||
- 用户创建、编辑、删除
|
||||
- 角色权限控制(管理员、编辑、查看者)
|
||||
- 密码加密存储
|
||||
|
||||
#### 配置中心
|
||||
- 网站基本信息配置
|
||||
- SEO配置
|
||||
- 联系信息配置
|
||||
- 分类管理
|
||||
|
||||
#### 审计日志
|
||||
- 操作记录追踪
|
||||
- 按操作类型、资源类型筛选
|
||||
- 分页查询
|
||||
|
||||
### 权限说明
|
||||
|
||||
| 角色 | 内容管理 | 用户管理 | 配置管理 | 审计日志 |
|
||||
|------|---------|---------|---------|---------|
|
||||
| admin | 全部权限 | 全部权限 | 全部权限 | 查看权限 |
|
||||
| editor | 创建、编辑、发布 | 无权限 | 查看权限 | 查看权限 |
|
||||
| viewer | 查看权限 | 无权限 | 查看权限 | 查看权限 |
|
||||
|
||||
### API 接口
|
||||
|
||||
#### 认证接口
|
||||
- `POST /api/auth/signin` - 登录
|
||||
- `POST /api/auth/signout` - 登出
|
||||
- `GET /api/auth/session` - 获取会话信息
|
||||
|
||||
#### 内容管理接口
|
||||
- `GET /api/admin/content` - 获取内容列表
|
||||
- `POST /api/admin/content` - 创建内容
|
||||
- `GET /api/admin/content/[id]` - 获取内容详情
|
||||
- `PUT /api/admin/content/[id]` - 更新内容
|
||||
- `DELETE /api/admin/content/[id]` - 删除内容
|
||||
|
||||
#### 用户管理接口
|
||||
- `GET /api/admin/users` - 获取用户列表
|
||||
- `POST /api/admin/users` - 创建用户
|
||||
- `GET /api/admin/users/[id]` - 获取用户详情
|
||||
- `PUT /api/admin/users/[id]` - 更新用户
|
||||
- `DELETE /api/admin/users/[id]` - 删除用户
|
||||
|
||||
#### 配置管理接口
|
||||
- `GET /api/admin/config` - 获取配置列表
|
||||
- `POST /api/admin/config` - 更新配置
|
||||
|
||||
#### 文件上传接口
|
||||
- `POST /api/admin/upload` - 上传文件
|
||||
- `DELETE /api/admin/upload` - 删除文件
|
||||
|
||||
#### 审计日志接口
|
||||
- `GET /api/admin/logs` - 获取审计日志列表
|
||||
|
||||
## CI/CD
|
||||
|
||||
项目使用 Woodpecker CI 进行持续集成,配置文件为 `.woodpecker.yml`。
|
||||
@@ -194,6 +325,7 @@ CI 流水线包括:
|
||||
- [API 文档](docs/api.md) - API 接口说明
|
||||
- [测试文档](docs/testing.md) - 测试策略和指南
|
||||
- [部署文档](docs/deployment.md) - 部署流程说明
|
||||
- [CMS文档](docs/cms.md) - CMS系统使用指南
|
||||
|
||||
## 许可证
|
||||
|
||||
|
||||
Reference in New Issue
Block a user