"""Test for the JWT Logic.""" from product_staging.logic import jwt def test_get_identity_uuid(decoded_jwt, identity_uuid): """Test getting a user's orchardIdentityId from a JWT.""" identity_uuid = jwt.get_identity_uuid(decoded_jwt) assert identity_uuid == identity_uuid def test_get_identity_uuid_none(): """Test getting a user's orchardIdentityId from a JWT.""" identity_uuid = jwt.get_identity_uuid({}) assert identity_uuid is None def test_get_profiles(): """Test get_profiles returns correct tuples with int profile_id.""" decoded_jwt = { jwt.JWT_PROFILES: [ {jwt.PROFILE_TYPE: "LabelProfile", jwt.PROFILE_ID: 123}, {jwt.PROFILE_TYPE: "ContentProfile", jwt.PROFILE_ID: "456"}, ] } result = jwt.get_profiles(decoded_jwt) assert result == [("LabelProfile", 123), ("ContentProfile", 456)] def test_get_profiles_non_int_profile_id(): """Test get_profiles skips entries with non-int profile_id.""" decoded_jwt = { jwt.JWT_PROFILES: [ {jwt.PROFILE_TYPE: "LabelProfile", jwt.PROFILE_ID: "abc"}, {jwt.PROFILE_TYPE: "ContentProfile", jwt.PROFILE_ID: 789}, ] } result = jwt.get_profiles(decoded_jwt) assert result == [("ContentProfile", 789)] def test_get_profiles_missing_keys(): """Test get_profiles skips entries missing profile_type or profile_id.""" decoded_jwt = { jwt.JWT_PROFILES: [ {jwt.PROFILE_TYPE: "LabelProfile"}, {jwt.PROFILE_ID: 123}, {jwt.PROFILE_TYPE: "ContentProfile", jwt.PROFILE_ID: 456}, ] } result = jwt.get_profiles(decoded_jwt) assert result == [("ContentProfile", 456)] def test_get_profiles_empty(): """Test get_profiles returns empty list if no profiles present.""" decoded_jwt = {jwt.JWT_PROFILES: []} result = jwt.get_profiles(decoded_jwt) assert result == [] def test_get_profiles_no_profiles_key(): """Test get_profiles returns empty list if JWT_PROFILES key is missing.""" decoded_jwt = {} result = jwt.get_profiles(decoded_jwt) assert result == []