Files
saas_backend/tests/test_sso_controller.py
T

38 lines
1.1 KiB
Python

from types import SimpleNamespace
import unittest
from unittest.mock import patch
from app.controllers.auth.sso_controller import SSOController
from app.schemas.auth.sso_schema import SSOInitiateRequest
class SSOControllerTest(unittest.TestCase):
def test_initiate_sso_uses_one_time_grant_flow(self):
user = SimpleNamespace(id="user-1", tenant_id="tenant-1")
expected = {
"grant_code": "a" * 32,
"redirect_url": "http://127.0.0.1:5173/sso/callback?grant=" + "a" * 32,
}
with patch(
"app.controllers.auth.sso_controller.SSOService.generate_grant",
return_value=expected,
) as generate_grant:
result = SSOController.initiate_sso(
db="db-session",
request=SSOInitiateRequest(module_id="pim"),
current_user=user,
)
self.assertEqual(result, expected)
generate_grant.assert_called_once_with(
db="db-session",
user_id="user-1",
module_id="pim",
tenant_id="tenant-1",
)
if __name__ == "__main__":
unittest.main()