# 测试脚本说明 本目录包含 VBase 的集成测试脚本,使用 bash + curl 测试 API 功能。 ## 目录结构 ``` scripts/tests/ ├── README.md # 本说明文件 ├── lib.sh # 公共函数库 ├── 01_basic_auth.sh # 基础认证测试 ├── 02_user_permission.sh # 用户权限测试 ├── 03_org_permission.sh # 组织权限测试 └── run_all.sh # 运行所有测试 ``` ## 前置条件 1. 服务必须已启动: ```bash go run cli/main.go -db.type=sqlite -db.dsn /tmp/vb.sqlite -p 4000 ``` 2. 数据库已初始化(如需要可以删除旧数据库): ```bash rm /tmp/vb.sqlite ``` 3. 依赖工具: - `curl` - `jq` (JSON 解析) ## 测试脚本说明 ### lib.sh 公共函数库,包含: - `check_success()` / `check_fail()` - 检查结果 - `check_http_code()` - 检查 HTTP 状态码 - `register_user()` - 注册用户 - `login_user()` - 登录用户 - `api_get()` / `api_post()` / `api_patch()` / `api_delete()` - API 请求封装 - `create_org()` - 创建组织 - `update_org()` - 更新组织 - `add_org_member()` - 添加组织成员 ### 01_basic_auth.sh **测试内容**:基础认证流程 - 用户注册 - 用户登录 - 获取当前用户信息 - 修改自己的用户信息 - 修改密码 - Token 刷新 - 用户登出 ### 02_user_permission.sh **测试内容**:用户级权限控制 - 第一个用户注册(自动成为 admin) - 第二个用户注册(普通 user) - user 可以修改自己的信息 - user **不能**修改 admin 的信息 - admin 可以修改任意用户信息 ### 03_org_permission.sh **测试内容**:组织权限控制 - admin 创建组织 - user 不能修改他人创建的组织 - admin 邀请 user 加入组织 - 普通成员不能修改组织信息 - 只有 admin/owner 可以修改组织 ### run_all.sh **功能**:运行所有测试 - 按顺序执行所有测试脚本 - 遇到错误时停止 - 输出测试摘要 - 统一时间戳避免冲突 ## 使用方法 ### 运行单个测试 ```bash # 基础认证测试 cd scripts/tests bash 01_basic_auth.sh # 用户权限测试 bash 02_user_permission.sh # 组织权限测试 bash 03_org_permission.sh ``` ### 运行所有测试 ```bash cd scripts/tests bash run_all.sh ``` ## 测试环境变量 | 变量 | 默认值 | 说明 | | ---------------- | ----------------------- | ------------------------------ | | `BASE_URL` | `http://localhost:4000` | API 基础地址 | | `TEST_TIMESTAMP` | 自动生成 | 测试时间戳,用于生成唯一用户名 | ## 注意事项 1. 测试脚本会创建真实数据,建议在测试数据库上运行 2. 测试失败时会立即退出(`set -e`) 3. 每次运行使用不同的时间戳,避免用户名冲突