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")