Make invalid search input explicit in UI and API

This commit is contained in:
Alfredo Di Stasio
2026-03-10 15:53:55 +01:00
parent 92c804a474
commit 2586f15ae8
6 changed files with 150 additions and 17 deletions

View File

@ -196,3 +196,28 @@ def test_api_combined_filters_respect_same_player_season_context(client):
)
assert response.status_code == 200
assert response.json()["count"] == 0
@pytest.mark.django_db
def test_players_api_returns_400_for_invalid_numeric_filter(client):
response = client.get(reverse("api:players"), data={"points_per_game_min": "abc"})
assert response.status_code == 400
payload = response.json()
assert payload["detail"] == "Invalid search parameters."
assert "points_per_game_min" in payload["errors"]
@pytest.mark.django_db
def test_players_api_returns_400_for_invalid_choice_filter(client):
response = client.get(reverse("api:players"), data={"sort": "not-a-sort"})
assert response.status_code == 400
payload = response.json()
assert "sort" in payload["errors"]
@pytest.mark.django_db
def test_players_api_returns_400_for_invalid_range_combination(client):
response = client.get(reverse("api:players"), data={"age_min": 30, "age_max": 20})
assert response.status_code == 400
payload = response.json()
assert "age_max" in payload["errors"]