from __future__ import annotations

from fastapi.testclient import TestClient

from models import MiningOperationType


class TestDashboardRoute:
    def test_renders_empty_state(self, client: TestClient) -> None:
        response = client.get("/")
        assert response.status_code == 200
        html = response.text

        assert "No recent projects" in html
        assert "No simulation runs yet" in html
        assert "All scenarios look good" in html
        assert "—" in html  # Last data import placeholder


class TestProjectUIRoutes:
    def test_projects_ui_page_resolves(self, client: TestClient) -> None:
        create_payload = {
            "name": "UI Project",
            "location": "Peru",
            "operation_type": MiningOperationType.OPEN_PIT.value,
            "description": "Project for UI validation",
        }
        client.post("/projects", json=create_payload)

        response = client.get("/projects/ui")
        assert response.status_code == 200
        assert "Projects" in response.text
        assert "project-card" in response.text

    def test_projects_create_form_resolves(self, client: TestClient) -> None:
        response = client.get("/projects/create")
        assert response.status_code == 200
        assert "Create Project" in response.text
