0.0.1.0
This commit is contained in:
Executable
+113
@@ -0,0 +1,113 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "🧪 华夏谱 API 全面测试"
|
||||
echo "======================"
|
||||
echo ""
|
||||
|
||||
BASE_URL="http://localhost:3000"
|
||||
|
||||
# 测试计数
|
||||
PASS=0
|
||||
FAIL=0
|
||||
|
||||
# 测试函数
|
||||
test_api() {
|
||||
local name=$1
|
||||
local method=$2
|
||||
local url=$3
|
||||
local data=$4
|
||||
local expected_status=$5
|
||||
|
||||
echo "测试: $name"
|
||||
echo "请求: $method $url"
|
||||
|
||||
if [ -z "$data" ]; then
|
||||
response=$(curl -s -w "\n%{http_code}" -X $method "$BASE_URL$url")
|
||||
else
|
||||
response=$(curl -s -w "\n%{http_code}" -X $method "$BASE_URL$url" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "$data")
|
||||
fi
|
||||
|
||||
status=$(echo "$response" | tail -n1)
|
||||
body=$(echo "$response" | head -n-1)
|
||||
|
||||
echo "状态码: $status"
|
||||
echo "响应: $body"
|
||||
|
||||
if [ "$status" = "$expected_status" ]; then
|
||||
echo "✅ 通过"
|
||||
((PASS++))
|
||||
else
|
||||
echo "❌ 失败 (期望: $expected_status, 实际: $status)"
|
||||
((FAIL++))
|
||||
fi
|
||||
echo ""
|
||||
}
|
||||
|
||||
echo "=== 1. 认证 API 测试 ==="
|
||||
echo ""
|
||||
|
||||
# 1.1 注册新用户
|
||||
TIMESTAMP=$(date +%s)
|
||||
TEST_EMAIL="test-$TIMESTAMP@example.com"
|
||||
test_api "用户注册" "POST" "/api/auth/register" \
|
||||
"{\"email\":\"$TEST_EMAIL\",\"password\":\"password123\",\"name\":\"测试用户\"}" \
|
||||
"200"
|
||||
|
||||
# 1.2 重复注册(应该失败)
|
||||
test_api "重复注册" "POST" "/api/auth/register" \
|
||||
"{\"email\":\"$TEST_EMAIL\",\"password\":\"password123\",\"name\":\"测试用户\"}" \
|
||||
"400"
|
||||
|
||||
# 1.3 登录
|
||||
test_api "用户登录" "POST" "/api/auth/signin" \
|
||||
"{\"email\":\"$TEST_EMAIL\",\"password\":\"password123\"}" \
|
||||
"302"
|
||||
|
||||
echo "=== 2. 权限验证测试 ==="
|
||||
echo ""
|
||||
|
||||
# 2.1 未登录访问家族树列表
|
||||
test_api "未登录获取家族树" "GET" "/api/trees" "" "401"
|
||||
|
||||
# 2.2 未登录创建家族树
|
||||
test_api "未登录创建家族树" "POST" "/api/trees" \
|
||||
"{\"name\":\"测试树\",\"description\":\"测试\"}" \
|
||||
"401"
|
||||
|
||||
# 2.3 未登录获取成员
|
||||
test_api "未登录获取成员" "GET" "/api/trees/test-id/members" "" "401"
|
||||
|
||||
# 2.4 未登录创建成员
|
||||
test_api "未登录创建成员" "POST" "/api/trees/test-id/members" \
|
||||
"{\"surname\":\"李\",\"givenName\":\"明\",\"fullName\":\"李明\",\"gender\":\"MALE\",\"generation\":1}" \
|
||||
"401"
|
||||
|
||||
echo "=== 3. 数据验证测试 ==="
|
||||
echo ""
|
||||
|
||||
# 3.1 注册时缺少必填字段
|
||||
test_api "注册缺少邮箱" "POST" "/api/auth/register" \
|
||||
"{\"password\":\"password123\",\"name\":\"测试\"}" \
|
||||
"400"
|
||||
|
||||
# 3.2 注册时密码太短
|
||||
test_api "密码太短" "POST" "/api/auth/register" \
|
||||
"{\"email\":\"short@test.com\",\"password\":\"123\",\"name\":\"测试\"}" \
|
||||
"400"
|
||||
|
||||
echo "=== 测试总结 ==="
|
||||
echo ""
|
||||
echo "总计: $((PASS + FAIL)) 个测试"
|
||||
echo "✅ 通过: $PASS"
|
||||
echo "❌ 失败: $FAIL"
|
||||
echo ""
|
||||
|
||||
if [ $FAIL -eq 0 ]; then
|
||||
echo "🎉 所有测试通过!"
|
||||
exit 0
|
||||
else
|
||||
echo "⚠️ 有 $FAIL 个测试失败"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user