@@ -108,3 +108,54 @@ def test_metadata_endpoint__post_request__returns_405() -> None:
108108
109109 # Then
110110 assert response .status_code == status .HTTP_405_METHOD_NOT_ALLOWED
111+
112+
113+ def test_metadata_endpoint__grant_types__derived_from_allowed_grant_types_setting (
114+ client : Client ,
115+ settings : SettingsWrapper ,
116+ ) -> None :
117+ # Given
118+ settings .OAUTH2_PROVIDER = {
119+ ** settings .OAUTH2_PROVIDER ,
120+ "ALLOWED_GRANT_TYPES" : ["authorization_code" , "client_credentials" ],
121+ }
122+
123+ # When
124+ response = client .get (reverse (METADATA_URL ))
125+
126+ # Then
127+ data = response .json ()
128+ assert data ["grant_types_supported" ] == ["authorization_code" , "client_credentials" ]
129+
130+
131+ def test_metadata_endpoint__grant_types__include_client_credentials_by_default (
132+ client : Client ,
133+ settings : SettingsWrapper ,
134+ ) -> None :
135+ # Given
136+ # Use real settings which now include client_credentials
137+ settings .FLAGSMITH_API_URL = "https://api.flagsmith.com"
138+ settings .FLAGSMITH_FRONTEND_URL = "https://app.flagsmith.com"
139+
140+ # When
141+ response = client .get (reverse (METADATA_URL ))
142+
143+ # Then
144+ data = response .json ()
145+ assert "client_credentials" in data ["grant_types_supported" ]
146+
147+
148+ def test_metadata_endpoint__scim_scope__present_in_scopes_supported (
149+ client : Client ,
150+ settings : SettingsWrapper ,
151+ ) -> None :
152+ # Given
153+ settings .FLAGSMITH_API_URL = "https://api.flagsmith.com"
154+ settings .FLAGSMITH_FRONTEND_URL = "https://app.flagsmith.com"
155+
156+ # When
157+ response = client .get (reverse (METADATA_URL ))
158+
159+ # Then
160+ data = response .json ()
161+ assert "scim" in data ["scopes_supported" ]
0 commit comments