58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
"""Tests for TokenService using Flask-JWT-Extended."""
|
|
|
|
from unittest.mock import patch
|
|
|
|
from app import create_app
|
|
from app.services.token_service import TokenService
|
|
|
|
|
|
class TestTokenServiceJWTExtended:
|
|
"""Test cases for TokenService with Flask-JWT-Extended."""
|
|
|
|
def test_generate_access_token(self) -> None:
|
|
"""Test access token generation."""
|
|
app = create_app()
|
|
with app.app_context():
|
|
token_service = TokenService()
|
|
user_data = {
|
|
"id": "123",
|
|
"email": "test@example.com",
|
|
"name": "Test User",
|
|
"picture": "https://example.com/pic.jpg",
|
|
}
|
|
|
|
token = token_service.generate_access_token(user_data)
|
|
assert isinstance(token, str)
|
|
assert len(token) > 0
|
|
|
|
def test_generate_refresh_token(self) -> None:
|
|
"""Test refresh token generation."""
|
|
app = create_app()
|
|
with app.app_context():
|
|
token_service = TokenService()
|
|
user_data = {
|
|
"id": "123",
|
|
"email": "test@example.com",
|
|
"name": "Test User",
|
|
}
|
|
|
|
token = token_service.generate_refresh_token(user_data)
|
|
assert isinstance(token, str)
|
|
assert len(token) > 0
|
|
|
|
def test_generate_tokens_different(self) -> None:
|
|
"""Test that access and refresh tokens are different."""
|
|
app = create_app()
|
|
with app.app_context():
|
|
token_service = TokenService()
|
|
user_data = {
|
|
"id": "123",
|
|
"email": "test@example.com",
|
|
"name": "Test User",
|
|
}
|
|
|
|
access_token = token_service.generate_access_token(user_data)
|
|
refresh_token = token_service.generate_refresh_token(user_data)
|
|
|
|
assert access_token != refresh_token
|