"""Tests for UI entry-points, redirects, and page mounting health-checks."""

import pytest


@pytest.mark.integration
class TestNavigationAndMounts:
    """Verify application entry-point redirects and route mounting."""

    @pytest.mark.parametrize(
        ("url", "expected_status", "expected_redirect"),
        [
            ("/", 307, "/ui/homepage"),
            ("/ui", 307, "/ui/homepage"),
        ],
    )
    def test_entrypoint_redirects(self, app_client, url: str, expected_status: int, expected_redirect: str):
        """Verify root and legacy routes redirect to primary UI views."""
        _, client = app_client
        response = client.get(url, follow_redirects=False)

        assert response.status_code == expected_status
        assert response.headers["location"] == expected_redirect

    @pytest.mark.parametrize(
        "route_path",
        [
            "/ui/homepage",
            "/ui/homepage/edit",
            "/ui/documents",
            "/ui/people",
            "/ui/sources",
            "/ui/jobs",
        ],
    )
    def test_registered_pages_render_successfully(self, app_client, route_path: str):
        """Smoke test verifying all primary UI routes respond with 200 OK."""
        _, client = app_client
        response = client.get(route_path)

        assert response.status_code == 200
        assert "html" in response.headers.get("content-type", "").lower()