chore: remove CI workflow file and update test files for improved structure and functionality
Some checks failed
CI / lint (push) Successful in 15s
CI / test (push) Failing after 16s
CI / build (push) Has been skipped
CI / deploy (push) Has been skipped

This commit is contained in:
2025-11-14 13:25:02 +01:00
parent e5e346b26a
commit e9678b6736
4 changed files with 19 additions and 220 deletions

View File

@@ -71,7 +71,8 @@ def navigation_client() -> Tuple[TestClient, StubNavigationService, AuthSession]
user = cast(User, object())
session = AuthSession(
tokens=SessionTokens(access_token=secrets.token_urlsafe(16), refresh_token=None),
tokens=SessionTokens(
access_token=secrets.token_urlsafe(16), refresh_token=None),
user=user,
role_slugs=("viewer",),
)

View File

@@ -11,8 +11,8 @@ from sqlalchemy import select
from sqlalchemy.orm import Session, sessionmaker
from models import Role, User, UserRole
from dependencies import get_auth_session, require_current_user
from services.security import hash_password
from dependencies import get_auth_session, get_jwt_settings, require_current_user
from services.security import decode_access_token, hash_password
from services.session import AuthSession, SessionTokens
from tests.utils.security import random_password, random_token
@@ -334,6 +334,7 @@ class TestLoginFlowEndToEnd:
# Override to anonymous for login
app = cast(FastAPI, client.app)
original_override = app.dependency_overrides.get(get_auth_session)
app.dependency_overrides[get_auth_session] = lambda: AuthSession.anonymous(
)
try:
@@ -347,14 +348,21 @@ class TestLoginFlowEndToEnd:
"location") == "http://testserver/"
set_cookie_header = login_response.headers.get("set-cookie", "")
assert "calminer_access_token=" in set_cookie_header
# Now with cookies, GET / should show dashboard
dashboard_response = client.get("/")
assert dashboard_response.status_code == 200
assert "Dashboard" in dashboard_response.text or "metrics" in dashboard_response.text
finally:
app.dependency_overrides.pop(get_auth_session, None)
access_cookie = client.cookies.get("calminer_access_token")
refresh_cookie = client.cookies.get("calminer_refresh_token")
assert access_cookie, "Access token cookie was not set"
assert refresh_cookie, "Refresh token cookie was not set"
jwt_settings = get_jwt_settings()
payload = decode_access_token(access_cookie, jwt_settings)
assert payload.sub == str(user.id)
assert payload.scopes == ["auth"], "Unexpected access token scopes"
if original_override is not None:
app.dependency_overrides[get_auth_session] = original_override
def test_logout_redirects_to_login_and_clears_session(self, client: TestClient) -> None:
# Assuming authenticated from conftest
logout_response = client.get("/logout", follow_redirects=False)

View File

@@ -1,6 +1,7 @@
from fastapi.testclient import TestClient
from main import app
from scripts.init_db import init_db
def test_login_form_post_does_not_trigger_json_error():
@@ -8,6 +9,7 @@ def test_login_form_post_does_not_trigger_json_error():
the JSON "Invalid JSON payload" error which indicates the middleware
attempted to parse non-JSON bodies.
"""
init_db()
client = TestClient(app)
resp = client.post(