diff --git a/src/views.py b/src/views.py index a891d9f..b16a3ab 100644 --- a/src/views.py +++ b/src/views.py @@ -1,9 +1,12 @@ +from pathlib import Path + from fastapi import APIRouter from fastapi.responses import HTMLResponse router = APIRouter() +DASHBOARD_FILE = Path(__file__).resolve().parent.parent / "frontend" / "index.html" @router.get("/", response_class=HTMLResponse) async def dashboard() -> str: - return open("frontend/index.html").read() + return DASHBOARD_FILE.read_text() diff --git a/tests/test_views.py b/tests/test_views.py new file mode 100644 index 0000000..ea6340b --- /dev/null +++ b/tests/test_views.py @@ -0,0 +1,12 @@ +import pytest + +from src.views import dashboard + + +@pytest.mark.anyio +async def test_dashboard_renders_outside_repository_working_directory(monkeypatch, tmp_path): + monkeypatch.chdir(tmp_path) + + html = await dashboard() + + assert "Stackchain Dashboard" in html