test_update.sh 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #!/bin/bash
  2. echo "🔄 测试任务状态更新"
  3. echo "=================="
  4. # 获取token
  5. LOGIN_RESP=$(curl -s -X POST -H "Content-Type: application/json" \
  6. -d '{"email":"test@example.com","password":"12345678"}' \
  7. http://localhost:3001/api/auth/login)
  8. if [[ $LOGIN_RESP == *"token"* ]]; then
  9. TOKEN=$(echo $LOGIN_RESP | grep -o '"token":"[^"]*"' | cut -d'"' -f4)
  10. echo "✅ 登录成功"
  11. # 获取任务列表
  12. echo "📋 获取任务列表..."
  13. TASKS_RESP=$(curl -s -H "Authorization: Bearer $TOKEN" \
  14. http://localhost:3001/api/tasks)
  15. # 提取第一个任务的ID
  16. TASK_ID=$(echo $TASKS_RESP | grep -o '"id":[0-9]*' | head -1 | cut -d':' -f2)
  17. echo "🎯 测试任务ID: $TASK_ID"
  18. if [[ -n "$TASK_ID" ]]; then
  19. echo ""
  20. echo "🧪 测试1: 包含所有字段的更新(模拟前端发送的数据)"
  21. UPDATE_RESP1=$(curl -s -X PUT -H "Content-Type: application/json" \
  22. -H "Authorization: Bearer $TOKEN" \
  23. -d '{
  24. "id": '$TASK_ID',
  25. "title": "测试任务",
  26. "description": "测试描述",
  27. "status": "in_progress",
  28. "priority": "high",
  29. "due_date": null,
  30. "created_at": "2025-07-10 15:28:01",
  31. "updated_at": "2025-07-10 15:28:01"
  32. }' \
  33. http://localhost:3001/api/tasks/$TASK_ID)
  34. echo "响应1: $UPDATE_RESP1"
  35. echo ""
  36. echo "🧪 测试2: 只包含必要字段的更新"
  37. UPDATE_RESP2=$(curl -s -X PUT -H "Content-Type: application/json" \
  38. -H "Authorization: Bearer $TOKEN" \
  39. -d '{
  40. "status": "completed"
  41. }' \
  42. http://localhost:3001/api/tasks/$TASK_ID)
  43. echo "响应2: $UPDATE_RESP2"
  44. else
  45. echo "❌ 未找到可测试的任务"
  46. fi
  47. else
  48. echo "❌ 登录失败: $LOGIN_RESP"
  49. fi