def test_leaderboard_requires_filter(client): r = client.get("/api/tss/leaderboard/players") assert r.status_code == 400 assert r.json()["code"] == "FILTER_REQUIRED" def test_leaderboard_players_with_window(client): r = client.get("/api/tss/leaderboard/players?start_date=1780000000&end_date=1790000000") assert r.status_code == 200 rows = r.json()["players"] assert rows[0]["uid"] == "148919027" # highest score def test_leaderboard_vehicles_with_tournament(client): r = client.get("/api/tss/leaderboard/vehicles?tournament_id=24839") assert r.status_code == 200 assert r.json()["vehicles"][0]["vehicle_internal"] == "i-153_m62" def test_leaderboard_stats(client): r = client.get("/api/tss/leaderboard/stats?start_date=1780000000&end_date=1790000000") body = r.json() assert body["totals"]["battles"] == 2 assert body["top_vehicles"][0]["vehicle_internal"] == "i-153_m62"