"""Tests for the upload page route.""" from pathlib import Path import pytest from fastapi.testclient import TestClient from transcription.app import create_app from transcription.config import Settings from transcription.config import _settings @pytest.fixture def client(tmp_path: Path): """Provide a real app client backed by in-memory SQLite.""" settings = Settings( openrouter_api_key="test-key", database_url="sqlite:///:memory:", environment="test", upload_dir=tmp_path / "uploads", prompt_dir=tmp_path / "prompts", ) _settings.set(settings) app = create_app() with TestClient(app) as test_client: yield test_client @pytest.mark.integration class TestPageRendering: """Verify the upload page is available and includes the main controls.""" def test_root_redirects_to_ui(self, client): """GET / redirects to the UI mount point.""" response = client.get("/", follow_redirects=False) assert response.status_code == 307 assert response.headers["location"] == "/ui" def test_ui_redirects_to_upload(self, client): """GET /ui redirects to the upload page.""" response = client.get("/ui", follow_redirects=False) assert response.status_code == 307 assert response.headers["location"] == "/ui/upload" def test_upload_page_renders_expected_controls(self, client): """GET /ui/upload returns the page shell and upload controls.""" response = client.get("/ui/upload") assert response.status_code == 200 assert "Upload Document" in response.text assert "Select document file" in response.text assert "View jobs" in response.text