Files
wecom_it_smart_desk/scripts/verify_fix.sh
T

98 lines
3.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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 "===== 验证完成 ====="