import pytest
from fastapi.testclient import TestClient
from main import app

client = TestClient(app)

def test_anime_search_htmx():
    """Vérifie que la recherche d'anime renvoie du HTML avec HTMX"""
    response = client.get("/api/anime/search?q=Naruto", headers={"HX-Request": "true"})
    assert response.status_code == 200
    assert "search-results-container" in response.text
    assert "anime-card" in response.text

def test_series_search_htmx():
    """Vérifie que la recherche de séries renvoie du HTML avec HTMX"""
    response = client.get("/api/series/search?q=Breaking", headers={"HX-Request": "true"})
    assert response.status_code == 200
    assert "search-results-container" in response.text
    # On vérifie que soit on a des résultats, soit le message "aucune série trouvée"
    assert "anime-grid" in response.text or "aucune série TV trouvée" in response.text.lower()

def test_recommendations_htmx():
    """Vérifie que les recommandations renvoient du HTML"""
    response = client.get("/api/recommendations", headers={"HX-Request": "true"})
    assert response.status_code == 200
    assert "recommendations-grid" in response.text

def test_latest_releases_htmx():
    """Vérifie que les sorties récentes renvoient du HTML"""
    response = client.get("/api/releases/latest", headers={"HX-Request": "true"})
    assert response.status_code == 200
    assert "releases-grid" in response.text

def test_episode_list_htmx():
    """Vérifie que la liste des épisodes renvoie du HTML"""
    # Utilisation d'un lien bidon pour tester le rendu du composant
    test_url = "https://anime-sama.fr/anime/vostfr/naruto"
    response = client.get(f"/api/anime/episodes?url={test_url}", headers={"HX-Request": "true"})
    assert response.status_code == 200
    assert "episode-list-container" in response.text
