@@ -181,7 +181,9 @@ func TestHandlerCreateConsent_ServiceError(t *testing.T) {
181181func TestHandlerGetConsent_Success (t * testing.T ) {
182182 mockSvc := NewMockConsentService (t )
183183 purposeDisplayName := "Account management"
184+ purposeDescription := "Manage account access"
184185 elementDisplayName := "User email address"
186+ elementDescription := "The user's email address"
185187
186188 out := & model.ConsentOutput {
187189 ConsentID : handlerTestConsentID ,
@@ -193,19 +195,21 @@ func TestHandlerGetConsent_Success(t *testing.T) {
193195 Name : "account_management" ,
194196 VersionNum : 1 ,
195197 DisplayName : & purposeDisplayName ,
198+ Description : & purposeDescription ,
196199 Elements : []model.ConsentElementApprovalOutput {{
197200 ElementID : "element-1" ,
198201 Name : "user_email" ,
199202 Namespace : "default" ,
200203 VersionNum : 1 ,
201204 DisplayName : & elementDisplayName ,
205+ Description : & elementDescription ,
202206 }},
203207 }},
204208 }
205209 mockSvc .On ("GetConsent" , mock .Anything , handlerTestConsentID , handlerTestOrgID ).Return (out , nil )
206210
207211 handler := newConsentHandler (mockSvc )
208- req := httptest .NewRequest (http .MethodGet , "/consents/" + handlerTestConsentID , nil )
212+ req := httptest .NewRequest (http .MethodGet , "/consents/" + handlerTestConsentID + "?details=true" , nil )
209213 req .Header .Set (constants .HeaderOrgID , handlerTestOrgID )
210214 req .SetPathValue ("consentId" , handlerTestConsentID )
211215 rr := httptest .NewRecorder ()
@@ -218,7 +222,42 @@ func TestHandlerGetConsent_Success(t *testing.T) {
218222 require .NoError (t , json .NewDecoder (rr .Body ).Decode (& resp ))
219223 require .Equal (t , handlerTestConsentID , resp .ConsentID )
220224 require .Equal (t , purposeDisplayName , * resp .Purposes [0 ].DisplayName )
225+ require .Equal (t , purposeDescription , * resp .Purposes [0 ].Description )
221226 require .Equal (t , elementDisplayName , * resp .Purposes [0 ].Elements [0 ].DisplayName )
227+ require .Equal (t , elementDescription , * resp .Purposes [0 ].Elements [0 ].Description )
228+ }
229+
230+ func TestHandlerGetConsent_DefaultOmitsDefinitionDetails (t * testing.T ) {
231+ mockSvc := NewMockConsentService (t )
232+ purposeDisplayName := "Account management"
233+ purposeDescription := "Manage account access"
234+ elementDisplayName := "User email address"
235+ elementDescription := "The user's email address"
236+
237+ out := & model.ConsentOutput {
238+ ConsentID : handlerTestConsentID ,
239+ Purposes : []model.ConsentPurposeOutput {{
240+ DisplayName : & purposeDisplayName ,
241+ Description : & purposeDescription ,
242+ Elements : []model.ConsentElementApprovalOutput {{
243+ DisplayName : & elementDisplayName ,
244+ Description : & elementDescription ,
245+ }},
246+ }},
247+ }
248+ mockSvc .On ("GetConsent" , mock .Anything , handlerTestConsentID , handlerTestOrgID ).Return (out , nil )
249+
250+ handler := newConsentHandler (mockSvc )
251+ req := httptest .NewRequest (http .MethodGet , "/consents/" + handlerTestConsentID , nil )
252+ req .Header .Set (constants .HeaderOrgID , handlerTestOrgID )
253+ req .SetPathValue ("consentId" , handlerTestConsentID )
254+ rr := httptest .NewRecorder ()
255+
256+ handler .getConsent (rr , req )
257+
258+ require .Equal (t , http .StatusOK , rr .Code )
259+ require .NotContains (t , rr .Body .String (), "displayName" )
260+ require .NotContains (t , rr .Body .String (), "description" )
222261}
223262
224263func TestHandlerGetConsent_NotFound (t * testing.T ) {
@@ -259,7 +298,9 @@ func TestHandlerGetConsent_MissingOrgID(t *testing.T) {
259298func TestHandlerListConsents_Success (t * testing.T ) {
260299 mockSvc := NewMockConsentService (t )
261300 purposeDisplayName := "Account management"
301+ purposeDescription := "Manage account access"
262302 elementDisplayName := "User email address"
303+ elementDescription := "The user's email address"
263304
264305 listOut := & model.ConsentListOutput {
265306 Data : []model.ConsentOutput {{
@@ -270,10 +311,12 @@ func TestHandlerListConsents_Success(t *testing.T) {
270311 Name : "account_management" ,
271312 VersionNum : 1 ,
272313 DisplayName : & purposeDisplayName ,
314+ Description : & purposeDescription ,
273315 Elements : []model.ConsentElementApprovalOutput {{
274316 Name : "user_email" ,
275317 VersionNum : 1 ,
276318 DisplayName : & elementDisplayName ,
319+ Description : & elementDescription ,
277320 }},
278321 }},
279322 }},
@@ -285,7 +328,7 @@ func TestHandlerListConsents_Success(t *testing.T) {
285328 mockSvc .On ("SearchConsents" , mock .Anything , mock .Anything ).Return (listOut , nil )
286329
287330 handler := newConsentHandler (mockSvc )
288- req := httptest .NewRequest (http .MethodGet , "/consents" , nil )
331+ req := httptest .NewRequest (http .MethodGet , "/consents?details=true " , nil )
289332 req .Header .Set (constants .HeaderOrgID , handlerTestOrgID )
290333 rr := httptest .NewRecorder ()
291334
@@ -297,7 +340,42 @@ func TestHandlerListConsents_Success(t *testing.T) {
297340 require .NoError (t , json .NewDecoder (rr .Body ).Decode (& resp ))
298341 require .Len (t , resp .Data , 1 )
299342 require .Equal (t , purposeDisplayName , * resp .Data [0 ].Purposes [0 ].DisplayName )
343+ require .Equal (t , purposeDescription , * resp .Data [0 ].Purposes [0 ].Description )
300344 require .Equal (t , elementDisplayName , * resp .Data [0 ].Purposes [0 ].Elements [0 ].DisplayName )
345+ require .Equal (t , elementDescription , * resp .Data [0 ].Purposes [0 ].Elements [0 ].Description )
346+ }
347+
348+ func TestHandlerListConsents_DefaultOmitsDefinitionDetails (t * testing.T ) {
349+ mockSvc := NewMockConsentService (t )
350+ purposeDisplayName := "Account management"
351+ purposeDescription := "Manage account access"
352+ elementDisplayName := "User email address"
353+ elementDescription := "The user's email address"
354+
355+ listOut := & model.ConsentListOutput {
356+ Data : []model.ConsentOutput {{
357+ Purposes : []model.ConsentPurposeOutput {{
358+ DisplayName : & purposeDisplayName ,
359+ Description : & purposeDescription ,
360+ Elements : []model.ConsentElementApprovalOutput {{
361+ DisplayName : & elementDisplayName ,
362+ Description : & elementDescription ,
363+ }},
364+ }},
365+ }},
366+ }
367+ mockSvc .On ("SearchConsents" , mock .Anything , mock .Anything ).Return (listOut , nil )
368+
369+ handler := newConsentHandler (mockSvc )
370+ req := httptest .NewRequest (http .MethodGet , "/consents" , nil )
371+ req .Header .Set (constants .HeaderOrgID , handlerTestOrgID )
372+ rr := httptest .NewRecorder ()
373+
374+ handler .listConsents (rr , req )
375+
376+ require .Equal (t , http .StatusOK , rr .Code )
377+ require .NotContains (t , rr .Body .String (), "displayName" )
378+ require .NotContains (t , rr .Body .String (), "description" )
301379}
302380
303381func TestHandlerListConsents_MissingOrgID (t * testing.T ) {
0 commit comments