INITIAL COMMIT
This commit is contained in:
57
tests/test_app.py
Normal file
57
tests/test_app.py
Normal file
@ -0,0 +1,57 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import importlib
|
||||
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
|
||||
def test_first_launch_setup_login_and_health(tmp_path, monkeypatch) -> None:
|
||||
monkeypatch.setenv("DATA_DIR", str(tmp_path))
|
||||
monkeypatch.setenv("APP_PASSWORD", "change-me")
|
||||
monkeypatch.setenv("APP_SECRET_KEY", "test-secret")
|
||||
module = importlib.import_module("garmin_coach_clone.app")
|
||||
app = module.create_app()
|
||||
|
||||
with TestClient(app) as client:
|
||||
health = client.get("/healthz")
|
||||
assert health.status_code == 200
|
||||
assert health.json()["app_configured"] is False
|
||||
|
||||
response = client.post(
|
||||
"/setup",
|
||||
data={
|
||||
"username": "owner",
|
||||
"password": "very-secret",
|
||||
"confirm_password": "very-secret",
|
||||
},
|
||||
follow_redirects=False,
|
||||
)
|
||||
assert response.status_code == 303
|
||||
assert "gcc_session" in response.headers["set-cookie"]
|
||||
|
||||
dashboard = client.get("/")
|
||||
assert dashboard.status_code == 200
|
||||
assert "Dashboard" in dashboard.text
|
||||
|
||||
search = client.get("/search")
|
||||
assert search.status_code == 200
|
||||
assert "Garmin credentials are not configured" in search.text
|
||||
|
||||
|
||||
def test_env_bootstrap_login(tmp_path, monkeypatch) -> None:
|
||||
monkeypatch.setenv("DATA_DIR", str(tmp_path))
|
||||
monkeypatch.setenv("APP_USERNAME", "admin")
|
||||
monkeypatch.setenv("APP_PASSWORD", "boot-secret")
|
||||
monkeypatch.setenv("APP_SECRET_KEY", "test-secret")
|
||||
module = importlib.import_module("garmin_coach_clone.app")
|
||||
app = module.create_app()
|
||||
|
||||
with TestClient(app) as client:
|
||||
health = client.get("/healthz")
|
||||
assert health.json()["app_configured"] is True
|
||||
response = client.post(
|
||||
"/login",
|
||||
data={"username": "admin", "password": "boot-secret"},
|
||||
follow_redirects=False,
|
||||
)
|
||||
assert response.status_code == 303
|
||||
Reference in New Issue
Block a user