Create the remaining task api methods on the server. #3

Merged
drew merged 6 commits from remaining-method into main 2025-09-20 19:23:20 +00:00
Showing only changes of commit e2284c7421 - Show all commits

View file

@ -0,0 +1,162 @@
# Task Update API Tests
# Setup: Create a task to update
POST {{host}}/api/tasks
Content-Type: application/json
{
"title": "Original Task",
"description": "Original description"
}
HTTP 201
[Captures]
task_id: jsonpath "$.id"
created_at: jsonpath "$.created_at"
# Test: Update task title only
PUT {{host}}/api/tasks/{{task_id}}
Content-Type: application/json
{
"title": "Updated Task Title"
}
HTTP 200
[Asserts]
jsonpath "$.id" == "{{task_id}}"
jsonpath "$.title" == "Updated Task Title"
jsonpath "$.description" == "Original description"
jsonpath "$.status" == "todo"
jsonpath "$.updated_at" != "{{created_at}}"
# Test: Update description only
PUT {{host}}/api/tasks/{{task_id}}
Content-Type: application/json
{
"description": "Updated description"
}
HTTP 200
[Asserts]
jsonpath "$.id" == "{{task_id}}"
jsonpath "$.title" == "Updated Task Title"
jsonpath "$.description" == "Updated description"
jsonpath "$.status" == "todo"
# Test: Update status to done
PUT {{host}}/api/tasks/{{task_id}}
Content-Type: application/json
{
"status": "done"
}
HTTP 200
[Asserts]
jsonpath "$.id" == "{{task_id}}"
jsonpath "$.status" == "done"
jsonpath "$.completed_at" exists
# Test: Update status to backlog
PUT {{host}}/api/tasks/{{task_id}}
Content-Type: application/json
{
"status": "backlog"
}
HTTP 200
[Asserts]
jsonpath "$.id" == "{{task_id}}"
jsonpath "$.status" == "backlog"
jsonpath "$.completed_at" == null
# Test: Update multiple fields together
PUT {{host}}/api/tasks/{{task_id}}
Content-Type: application/json
{
"title": "Completely Updated Task",
"description": "Completely updated description",
"status": "done"
}
HTTP 200
[Asserts]
jsonpath "$.id" == "{{task_id}}"
jsonpath "$.title" == "Completely Updated Task"
jsonpath "$.description" == "Completely updated description"
jsonpath "$.status" == "done"
jsonpath "$.completed_at" exists
# Test: Clear description (set to null)
PUT {{host}}/api/tasks/{{task_id}}
Content-Type: application/json
{
"description": null
}
HTTP 200
[Asserts]
jsonpath "$.id" == "{{task_id}}"
jsonpath "$.description" == null
# Setup: Create another task for error tests
POST {{host}}/api/tasks
Content-Type: application/json
{
"title": "Task for Error Tests"
}
HTTP 201
[Captures]
error_test_task_id: jsonpath "$.id"
# Test: Update non-existent task
PUT {{host}}/api/tasks/00000000-0000-0000-0000-000000000000
Content-Type: application/json
{
"title": "This should fail"
}
HTTP 404
[Asserts]
jsonpath "$.error" exists
# Test: Update with invalid UUID format
PUT {{host}}/api/tasks/invalid-uuid-format
Content-Type: application/json
{
"title": "This should also fail"
}
HTTP 400
[Asserts]
jsonpath "$.error" exists
# Test: Update with empty title
PUT {{host}}/api/tasks/{{error_test_task_id}}
Content-Type: application/json
{
"title": ""
}
HTTP 422
[Asserts]
jsonpath "$.error" exists
# Test: Update with invalid status
PUT {{host}}/api/tasks/{{error_test_task_id}}
Content-Type: application/json
{
"status": "invalid_status"
}
HTTP 422
[Asserts]
jsonpath "$.error" exists
# Test: Update with no fields (empty object)
PUT {{host}}/api/tasks/{{error_test_task_id}}
Content-Type: application/json
{}
HTTP 422
[Asserts]
jsonpath "$.error" exists