#!/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 - <&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 "===== 验证完成 ====="