def test_create_task(client):
    r = client.post("/api/tasks", json={"titre": "Arroser les tomates", "priorite": "haute"})
    assert r.status_code == 201
    assert r.json()["statut"] == "a_faire"


def test_list_tasks(client):
    client.post("/api/tasks", json={"titre": "Tâche 1"})
    client.post("/api/tasks", json={"titre": "Tâche 2"})
    r = client.get("/api/tasks")
    assert r.status_code == 200
    assert len(r.json()) == 2


def test_filter_tasks_by_statut(client):
    client.post("/api/tasks", json={"titre": "À faire", "statut": "a_faire"})
    client.post("/api/tasks", json={"titre": "Fait", "statut": "fait"})
    r = client.get("/api/tasks?statut=a_faire")
    assert r.status_code == 200
    assert all(t["statut"] == "a_faire" for t in r.json())


def test_update_task_statut(client):
    r = client.post("/api/tasks", json={"titre": "À faire"})
    id = r.json()["id"]
    r2 = client.put(f"/api/tasks/{id}", json={"titre": "À faire", "statut": "fait"})
    assert r2.status_code == 200
    assert r2.json()["statut"] == "fait"
