feat: status dropdown on task detail page
This commit is contained in:
parent
9cbb3cec37
commit
6e872121eb
4 changed files with 102 additions and 0 deletions
|
|
@ -233,3 +233,44 @@ def test_audit_apply_wrong_project(client):
|
|||
json={"task_ids": ["WRONG-001"]})
|
||||
assert r.status_code == 200
|
||||
assert r.json()["count"] == 0
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# PATCH /api/tasks/{task_id} — смена статуса
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
def test_patch_task_status(client):
|
||||
"""PATCH должен обновить статус и вернуть задачу."""
|
||||
r = client.patch("/api/tasks/P1-001", json={"status": "review"})
|
||||
assert r.status_code == 200
|
||||
data = r.json()
|
||||
assert data["status"] == "review"
|
||||
assert data["id"] == "P1-001"
|
||||
|
||||
|
||||
def test_patch_task_status_persisted(client):
|
||||
"""После PATCH повторный GET должен возвращать новый статус."""
|
||||
client.patch("/api/tasks/P1-001", json={"status": "blocked"})
|
||||
r = client.get("/api/tasks/P1-001")
|
||||
assert r.status_code == 200
|
||||
assert r.json()["status"] == "blocked"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("status", ["pending", "in_progress", "review", "done", "blocked"])
|
||||
def test_patch_task_all_valid_statuses(client, status):
|
||||
"""Все 5 допустимых статусов должны приниматься."""
|
||||
r = client.patch("/api/tasks/P1-001", json={"status": status})
|
||||
assert r.status_code == 200
|
||||
assert r.json()["status"] == status
|
||||
|
||||
|
||||
def test_patch_task_invalid_status(client):
|
||||
"""Недопустимый статус → 400."""
|
||||
r = client.patch("/api/tasks/P1-001", json={"status": "flying"})
|
||||
assert r.status_code == 400
|
||||
|
||||
|
||||
def test_patch_task_not_found(client):
|
||||
"""Несуществующая задача → 404."""
|
||||
r = client.patch("/api/tasks/NOPE-999", json={"status": "done"})
|
||||
assert r.status_code == 404
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue