@@ -143,6 +143,50 @@ func (s *ApplicationSuite) Test_CreateApplication_ignoresReadOnlyPropertiesInPar
143143 }
144144}
145145
146+ func (s * ApplicationSuite ) Test_UpdateApplicationSecurity_regenerateToken () {
147+ s .db .User (5 ).App (1 )
148+ test .WithUser (s .ctx , 5 )
149+
150+ oldToken , err := s .db .GetApplicationByID (1 )
151+ assert .NoError (s .T (), err )
152+ s .ctx .Request = httptest .NewRequest ("PUT" , "/application/1/security" , bytes .NewBufferString (`{"regenerateToken": true}` ))
153+ s .ctx .Request .Header .Set ("Content-Type" , "application/json" )
154+ s .ctx .Params = gin.Params {{Key : "id" , Value : "1" }}
155+ s .a .UpdateApplicationSecurity (s .ctx )
156+ assert .Equal (s .T (), 200 , s .recorder .Code )
157+ bodyBytes , err := io .ReadAll (s .recorder .Body )
158+ assert .NoError (s .T (), err )
159+ var got model.SecurityUpdateActionResponse
160+ assert .NoError (s .T (), json .Unmarshal (bodyBytes , & got ))
161+ assert .Equal (s .T (), & model.SecurityUpdateActionResponse {
162+ RegenerateToken : & model.RegenerateTokenResponse {
163+ Token : got .RegenerateToken .Token ,
164+ },
165+ }, & got )
166+ newToken , err := s .db .GetApplicationByID (1 )
167+ assert .NoError (s .T (), err )
168+ assert .NotEqual (s .T (), oldToken .Token , newToken .Token )
169+ }
170+
171+ func (s * ApplicationSuite ) Test_UpdateApplicationSecurity_isNoOpIfNilAction () {
172+ s .db .User (5 ).App (1 )
173+ test .WithUser (s .ctx , 5 )
174+
175+ oldToken , err := s .db .GetApplicationByID (1 )
176+ assert .NoError (s .T (), err )
177+ s .ctx .Request = httptest .NewRequest ("PUT" , "/application/1/security" , bytes .NewBufferString (`{}` ))
178+ s .ctx .Request .Header .Set ("Content-Type" , "application/json" )
179+ s .ctx .Params = gin.Params {{Key : "id" , Value : "1" }}
180+ s .a .UpdateApplicationSecurity (s .ctx )
181+ assert .Equal (s .T (), 200 , s .recorder .Code )
182+ bodyBytes , err := io .ReadAll (s .recorder .Body )
183+ assert .NoError (s .T (), err )
184+ assert .Equal (s .T (), "{}" , string (bodyBytes ))
185+ newToken , err := s .db .GetApplicationByID (1 )
186+ assert .NoError (s .T (), err )
187+ assert .Equal (s .T (), oldToken , newToken )
188+ }
189+
146190func (s * ApplicationSuite ) Test_DeleteApplication_expectNotFoundOnCurrentUserIsNotOwner () {
147191 s .db .User (2 )
148192 s .db .User (5 ).App (5 )
0 commit comments