theo-agent-dashboard

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

test_auth_helpers.py (1396B)


      1 """Tests for auth helpers (set_jwt_cookie, get_jwt_from_cookie, clear_jwt_cookie)."""
      2 
      3 from unittest.mock import MagicMock
      4 
      5 from app.auth import (
      6     clear_jwt_cookie,
      7     create_jwt,
      8     get_jwt_from_cookie,
      9     set_jwt_cookie,
     10 )
     11 
     12 
     13 class TestCookieHelpers:
     14     """JWT cookie management functions."""
     15 
     16     def test_set_jwt_cookie(self) -> None:
     17         """Sets the cookie on a response object."""
     18         response = MagicMock()
     19         token = create_jwt({"sub": "user1"})
     20         set_jwt_cookie(response, token)
     21         response.set_cookie.assert_called_once_with(
     22             key="theo_token",
     23             value=token,
     24             httponly=True,
     25             samesite="lax",
     26             max_age=86400,
     27         )
     28 
     29     def test_get_jwt_from_cookie(self) -> None:
     30         """Extracts the token from request cookies."""
     31         request = MagicMock()
     32         request.cookies = {"theo_token": "my-token"}
     33         assert get_jwt_from_cookie(request) == "my-token"
     34 
     35     def test_get_jwt_from_cookie_missing(self) -> None:
     36         """Returns None when cookie is absent."""
     37         request = MagicMock()
     38         request.cookies = {}
     39         assert get_jwt_from_cookie(request) is None
     40 
     41     def test_clear_jwt_cookie(self) -> None:
     42         """Deletes the cookie."""
     43         response = MagicMock()
     44         clear_jwt_cookie(response)
     45         response.delete_cookie.assert_called_once_with(key="theo_token")