Files

98 lines
3.7 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
# =============================================================================
# 验证 priority 修复 - 端到端测试 (v4 - 用 docker exec)
# =============================================================================
set -e
REDIS_PWD="WKzl7jgKTkeWxFWGIBXfzokm59Gvfr76"
TOKEN=$(openssl rand -hex 32)
# 1. 在 backend 容器内用 Python 写 token(容器已装 redis
USER_INFO='{"employee_id": "sxn", "username": "admin", "name": "宋献", "role": "admin", "department": "IT支持组", "login_source": "test", "login_method": "test_script", "last_active": "2026-07-28T02:00:00"}'
docker exec wecom_it_backend python3 - <<PYEOF
import redis
import json
r = redis.Redis(host="redis", port=6379, password="${REDIS_PWD}", db=0)
token = "${TOKEN}"
user_info = json.loads("""${USER_INFO}""")
r.setex(f"user:token:{token}", 8 * 3600, json.dumps(user_info, ensure_ascii=False))
print(f"Token written: {token[:20]}...")
print(f"Verified: {r.exists(f'user:token:{token}') == 1}")
PYEOF
# 2. 测试 API
echo ""
echo "===== Test 1: GET /admin/quick-rules?rule_type=routing_target ====="
RESP1=$(curl -s "http://localhost/api/admin/quick-rules?rule_type=routing_target&page=1&size=20" \
-H "Authorization: Bearer ${TOKEN}")
echo "${RESP1}" | python3 -m json.tool 2>&1 | head -80
# 3. 测试 API - category=行政
echo ""
echo "===== Test 2: GET /admin/quick-rules?rule_type=routing_target&category=行政 ====="
RESP2=$(curl -s --get "http://localhost/api/admin/quick-rules" \
--data-urlencode "rule_type=routing_target" \
--data-urlencode "category=行政" \
--data-urlencode "page=1" \
--data-urlencode "size=20" \
-H "Authorization: Bearer ${TOKEN}")
echo "${RESP2}" | python3 -m json.tool 2>&1 | head -50
# 4. 测试 API - category=人力资源
echo ""
echo "===== Test 3: GET /admin/quick-rules?rule_type=routing_target&category=人力资源 ====="
RESP3=$(curl -s --get "http://localhost/api/admin/quick-rules" \
--data-urlencode "rule_type=routing_target" \
--data-urlencode "category=人力资源" \
--data-urlencode "page=1" \
--data-urlencode "size=20" \
-H "Authorization: Bearer ${TOKEN}")
echo "${RESP3}" | python3 -m json.tool 2>&1 | head -50
# 5. 测试 API - category=IT服务
echo ""
echo "===== Test 4: GET /admin/quick-rules?rule_type=routing_target&category=IT服务 ====="
RESP4=$(curl -s --get "http://localhost/api/admin/quick-rules" \
--data-urlencode "rule_type=routing_target" \
--data-urlencode "category=IT服务" \
--data-urlencode "page=1" \
--data-urlencode "size=20" \
-H "Authorization: Bearer ${TOKEN}")
echo "${RESP4}" | python3 -m json.tool 2>&1 | head -50
# 6. 测试 API - category=行政-物业
echo ""
echo "===== Test 5: GET /admin/quick-rules?rule_type=routing_target&category=行政-物业 ====="
RESP5=$(curl -s --get "http://localhost/api/admin/quick-rules" \
--data-urlencode "rule_type=routing_target" \
--data-urlencode "category=行政-物业" \
--data-urlencode "page=1" \
--data-urlencode "size=20" \
-H "Authorization: Bearer ${TOKEN}")
echo "${RESP5}" | python3 -m json.tool 2>&1 | head -50
# 7. 测试 API - 不存在的分类
echo ""
echo "===== Test 6: GET /admin/quick-rules?rule_type=routing_target&category=不存在的分类 ====="
RESP6=$(curl -s --get "http://localhost/api/admin/quick-rules" \
--data-urlencode "rule_type=routing_target" \
--data-urlencode "category=不存在的分类" \
--data-urlencode "page=1" \
--data-urlencode "size=20" \
-H "Authorization: Bearer ${TOKEN}")
echo "${RESP6}" | python3 -m json.tool 2>&1 | head -20
# 8. cleanup
echo ""
echo "===== Cleanup ====="
docker exec wecom_it_backend python3 -c "
import redis
r = redis.Redis(host='redis', port=6379, password='${REDIS_PWD}', db=0)
print(r.delete(f'user:token:${TOKEN}'))
"
echo ""
echo "===== 验证完成 ====="