@@ -88,4 +88,84 @@ describe('AuthorizationServerMetadataEndpointScenario', () => {
8888 expect ( check . status ) . toBe ( 'FAILURE' ) ;
8989 expect ( check . errorMessage ) . toContain ( 'code_challenge_methods_supported' ) ;
9090 } ) ;
91+
92+ it ( 'returns SUCCESS for CIMD check when server metadata includes client_id_metadata_document_supported=true with spec version 2025-11-25' , async ( ) => {
93+ const scenario = new AuthorizationServerMetadataEndpointScenario ( ) ;
94+ mockMetadataResponse ( {
95+ ...validMetadata ,
96+ client_id_metadata_document_supported : true
97+ } ) ;
98+
99+ const checks = await scenario . run ( SERVER_URL , '2025-11-25' ) ;
100+
101+ expect ( checks ) . toHaveLength ( 2 ) ;
102+
103+ const metadataCheck = checks [ 0 ] ;
104+ expect ( metadataCheck . status ) . toBe ( 'SUCCESS' ) ;
105+
106+ const cimdCheck = checks [ 1 ] ;
107+ expect ( cimdCheck . id ) . toBe ( 'authorization-server-metadata-cimd' ) ;
108+ expect ( cimdCheck . status ) . toBe ( 'SUCCESS' ) ;
109+ expect ( cimdCheck . errorMessage ) . toBeUndefined ( ) ;
110+ expect ( cimdCheck . details ) . toEqual ( {
111+ client_id_metadata_document_supported : true
112+ } ) ;
113+ } ) ;
114+
115+ it ( 'returns FAILURE for CIMD check when server metadata lacks client_id_metadata_document_supported with spec version 2025-11-25' , async ( ) => {
116+ const scenario = new AuthorizationServerMetadataEndpointScenario ( ) ;
117+ mockMetadataResponse ( validMetadata ) ;
118+
119+ const checks = await scenario . run ( SERVER_URL , '2025-11-25' ) ;
120+
121+ expect ( checks ) . toHaveLength ( 2 ) ;
122+
123+ const metadataCheck = checks [ 0 ] ;
124+ expect ( metadataCheck . status ) . toBe ( 'SUCCESS' ) ;
125+
126+ const cimdCheck = checks [ 1 ] ;
127+ expect ( cimdCheck . id ) . toBe ( 'authorization-server-metadata-cimd' ) ;
128+ expect ( cimdCheck . status ) . toBe ( 'FAILURE' ) ;
129+ expect ( cimdCheck . errorMessage ) . toContain (
130+ 'client_id_metadata_document_supported'
131+ ) ;
132+ } ) ;
133+
134+ it ( 'returns FAILURE for CIMD check when client_id_metadata_document_supported is false with spec version 2025-11-25' , async ( ) => {
135+ const scenario = new AuthorizationServerMetadataEndpointScenario ( ) ;
136+ mockMetadataResponse ( {
137+ ...validMetadata ,
138+ client_id_metadata_document_supported : false
139+ } ) ;
140+
141+ const checks = await scenario . run ( SERVER_URL , '2025-11-25' ) ;
142+
143+ expect ( checks ) . toHaveLength ( 2 ) ;
144+
145+ const metadataCheck = checks [ 0 ] ;
146+ expect ( metadataCheck . status ) . toBe ( 'SUCCESS' ) ;
147+
148+ const cimdCheck = checks [ 1 ] ;
149+ expect ( cimdCheck . id ) . toBe ( 'authorization-server-metadata-cimd' ) ;
150+ expect ( cimdCheck . status ) . toBe ( 'FAILURE' ) ;
151+ expect ( cimdCheck . errorMessage ) . toContain (
152+ 'client_id_metadata_document_supported'
153+ ) ;
154+ expect ( cimdCheck . errorMessage ) . toContain ( 'false' ) ;
155+ } ) ;
156+
157+ it ( 'does not add CIMD check when spec version is 2025-06-18 even if claim is false' , async ( ) => {
158+ const scenario = new AuthorizationServerMetadataEndpointScenario ( ) ;
159+ mockMetadataResponse ( {
160+ ...validMetadata ,
161+ client_id_metadata_document_supported : false
162+ } ) ;
163+
164+ const checks = await scenario . run ( SERVER_URL , '2025-06-18' ) ;
165+
166+ expect ( checks ) . toHaveLength ( 1 ) ;
167+
168+ const metadataCheck = checks [ 0 ] ;
169+ expect ( metadataCheck . status ) . toBe ( 'SUCCESS' ) ;
170+ } ) ;
91171} ) ;
0 commit comments