"""FlowDeck — Basic tests.""" import os import tempfile import pytest from fastapi.testclient import TestClient @pytest.fixture def client(): db_file = tempfile.NamedTemporaryFile(suffix=".db", delete=False) db_path = db_file.name db_file.close() os.environ["GITEA_URL"] = "https://git.dracodev.net" os.environ["GITEA_TOKEN"] = "test" os.environ["DATABASE_URL"] = f"sqlite:///{db_path}" from app.main import app from app.db import init_db init_db() yield TestClient(app) os.unlink(db_path) def test_health(client): resp = client.get("/api/health") assert resp.status_code == 200 data = resp.json() assert "status" in data assert data["db"] is True def test_dashboard(client): resp = client.get("/") assert resp.status_code == 200 assert "FlowDeck" in resp.text or "Projets" in resp.text def test_stats(client): resp = client.get("/api/stats") assert resp.status_code == 200 data = resp.json() assert "boards" in data def test_projects(client): resp = client.get("/api/projects") assert resp.status_code == 200 def test_board_404(client): resp = client.get("/board/test/test") assert resp.status_code in (200, 500) def test_csrf_rejected(client): """POST without CSRF token should return 403.""" resp = client.post("/api/move?owner=x&repo=y&issue_id=1&column=Test") assert resp.status_code == 403 def test_auth_user(client): resp = client.get("/auth/user") assert resp.status_code == 200 data = resp.json() assert "authenticated" in data