@@ -106,6 +106,178 @@ func TestTokensService_GetPersonalAccessToken(t *testing.T) {
106106	})
107107}
108108
109+ func  TestTokensService_ListPersonalAccessTokens (t  * testing.T ) {
110+ 	user  :=  newUser (& protocol.User {})
111+ 
112+ 	t .Run ("permission denied when feature flag is disabled" , func (t  * testing.T ) {
113+ 		serverMock , client  :=  setupTokensService (t , withTokenFeatureDisabled )
114+ 
115+ 		serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
116+ 
117+ 		_ , err  :=  client .ListPersonalAccessTokens (context .Background (), connect .NewRequest (& v1.ListPersonalAccessTokensRequest {}))
118+ 
119+ 		require .Error (t , err , "This feature is currently in beta. If you would like to be part of the beta, please contact us." )
120+ 		require .Equal (t , connect .CodePermissionDenied , connect .CodeOf (err ))
121+ 	})
122+ 
123+ 	t .Run ("unimplemented when feature flag enabled" , func (t  * testing.T ) {
124+ 		serverMock , client  :=  setupTokensService (t , withTokenFeatureEnabled )
125+ 
126+ 		serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
127+ 
128+ 		_ , err  :=  client .ListPersonalAccessTokens (context .Background (), connect .NewRequest (& v1.ListPersonalAccessTokensRequest {}))
129+ 
130+ 		require .Equal (t , connect .CodeUnimplemented , connect .CodeOf (err ))
131+ 	})
132+ }
133+ 
134+ func  TestTokensService_RegeneratePersonalAccessToken (t  * testing.T ) {
135+ 	user  :=  newUser (& protocol.User {})
136+ 
137+ 	t .Run ("permission denied when feature flag is disabled" , func (t  * testing.T ) {
138+ 		serverMock , client  :=  setupTokensService (t , withTokenFeatureDisabled )
139+ 
140+ 		serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
141+ 
142+ 		_ , err  :=  client .RegeneratePersonalAccessToken (context .Background (), connect .NewRequest (& v1.RegeneratePersonalAccessTokenRequest {
143+ 			Id : uuid .New ().String (),
144+ 		}))
145+ 
146+ 		require .Error (t , err , "This feature is currently in beta. If you would like to be part of the beta, please contact us." )
147+ 		require .Equal (t , connect .CodePermissionDenied , connect .CodeOf (err ))
148+ 	})
149+ 
150+ 	t .Run ("invalid argument when Token ID is empty" , func (t  * testing.T ) {
151+ 		_ , client  :=  setupTokensService (t , withTokenFeatureEnabled )
152+ 
153+ 		_ , err  :=  client .RegeneratePersonalAccessToken (context .Background (), connect .NewRequest (& v1.RegeneratePersonalAccessTokenRequest {}))
154+ 
155+ 		require .Equal (t , connect .CodeInvalidArgument , connect .CodeOf (err ))
156+ 	})
157+ 
158+ 	t .Run ("invalid argument when Token ID is not a valid UUID" , func (t  * testing.T ) {
159+ 		_ , client  :=  setupTokensService (t , withTokenFeatureEnabled )
160+ 
161+ 		_ , err  :=  client .RegeneratePersonalAccessToken (context .Background (), connect .NewRequest (& v1.RegeneratePersonalAccessTokenRequest {
162+ 			Id : "foo-bar" ,
163+ 		}))
164+ 
165+ 		require .Equal (t , connect .CodeInvalidArgument , connect .CodeOf (err ))
166+ 	})
167+ 
168+ 	t .Run ("unimplemented when feature flag enabled" , func (t  * testing.T ) {
169+ 		serverMock , client  :=  setupTokensService (t , withTokenFeatureEnabled )
170+ 
171+ 		serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
172+ 
173+ 		_ , err  :=  client .RegeneratePersonalAccessToken (context .Background (), connect .NewRequest (& v1.RegeneratePersonalAccessTokenRequest {
174+ 			Id : uuid .New ().String (),
175+ 		}))
176+ 
177+ 		require .Equal (t , connect .CodeUnimplemented , connect .CodeOf (err ))
178+ 	})
179+ }
180+ 
181+ func  TestTokensService_UpdatePersonalAccessToken (t  * testing.T ) {
182+ 	user  :=  newUser (& protocol.User {})
183+ 
184+ 	t .Run ("permission denied when feature flag is disabled" , func (t  * testing.T ) {
185+ 		serverMock , client  :=  setupTokensService (t , withTokenFeatureDisabled )
186+ 
187+ 		serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
188+ 
189+ 		_ , err  :=  client .UpdatePersonalAccessToken (context .Background (), connect .NewRequest (& v1.UpdatePersonalAccessTokenRequest {
190+ 			Token : & v1.PersonalAccessToken {
191+ 				Id : uuid .New ().String (),
192+ 			},
193+ 		}))
194+ 
195+ 		require .Error (t , err , "This feature is currently in beta. If you would like to be part of the beta, please contact us." )
196+ 		require .Equal (t , connect .CodePermissionDenied , connect .CodeOf (err ))
197+ 	})
198+ 
199+ 	t .Run ("invalid argument when Token ID is empty" , func (t  * testing.T ) {
200+ 		_ , client  :=  setupTokensService (t , withTokenFeatureEnabled )
201+ 
202+ 		_ , err  :=  client .UpdatePersonalAccessToken (context .Background (), connect .NewRequest (& v1.UpdatePersonalAccessTokenRequest {}))
203+ 
204+ 		require .Equal (t , connect .CodeInvalidArgument , connect .CodeOf (err ))
205+ 	})
206+ 
207+ 	t .Run ("invalid argument when Token ID is not a valid UUID" , func (t  * testing.T ) {
208+ 		_ , client  :=  setupTokensService (t , withTokenFeatureEnabled )
209+ 
210+ 		_ , err  :=  client .UpdatePersonalAccessToken (context .Background (), connect .NewRequest (& v1.UpdatePersonalAccessTokenRequest {
211+ 			Token : & v1.PersonalAccessToken {
212+ 				Id : "foo-bar" ,
213+ 			},
214+ 		}))
215+ 
216+ 		require .Equal (t , connect .CodeInvalidArgument , connect .CodeOf (err ))
217+ 	})
218+ 
219+ 	t .Run ("unimplemented when feature flag enabled" , func (t  * testing.T ) {
220+ 		serverMock , client  :=  setupTokensService (t , withTokenFeatureEnabled )
221+ 
222+ 		serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
223+ 
224+ 		_ , err  :=  client .UpdatePersonalAccessToken (context .Background (), connect .NewRequest (& v1.UpdatePersonalAccessTokenRequest {
225+ 			Token : & v1.PersonalAccessToken {
226+ 				Id : uuid .New ().String (),
227+ 			},
228+ 		}))
229+ 
230+ 		require .Equal (t , connect .CodeUnimplemented , connect .CodeOf (err ))
231+ 	})
232+ }
233+ 
234+ func  TestTokensService_DeletePersonalAccessToken (t  * testing.T ) {
235+ 	user  :=  newUser (& protocol.User {})
236+ 
237+ 	t .Run ("permission denied when feature flag is disabled" , func (t  * testing.T ) {
238+ 		serverMock , client  :=  setupTokensService (t , withTokenFeatureDisabled )
239+ 
240+ 		serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
241+ 
242+ 		_ , err  :=  client .DeletePersonalAccessToken (context .Background (), connect .NewRequest (& v1.DeletePersonalAccessTokenRequest {
243+ 			Id : uuid .New ().String (),
244+ 		}))
245+ 
246+ 		require .Error (t , err , "This feature is currently in beta. If you would like to be part of the beta, please contact us." )
247+ 		require .Equal (t , connect .CodePermissionDenied , connect .CodeOf (err ))
248+ 	})
249+ 
250+ 	t .Run ("invalid argument when Token ID is empty" , func (t  * testing.T ) {
251+ 		_ , client  :=  setupTokensService (t , withTokenFeatureEnabled )
252+ 
253+ 		_ , err  :=  client .DeletePersonalAccessToken (context .Background (), connect .NewRequest (& v1.DeletePersonalAccessTokenRequest {}))
254+ 
255+ 		require .Equal (t , connect .CodeInvalidArgument , connect .CodeOf (err ))
256+ 	})
257+ 
258+ 	t .Run ("invalid argument when Token ID is not a valid UUID" , func (t  * testing.T ) {
259+ 		_ , client  :=  setupTokensService (t , withTokenFeatureEnabled )
260+ 
261+ 		_ , err  :=  client .DeletePersonalAccessToken (context .Background (), connect .NewRequest (& v1.DeletePersonalAccessTokenRequest {
262+ 			Id : "foo-bar" ,
263+ 		}))
264+ 
265+ 		require .Equal (t , connect .CodeInvalidArgument , connect .CodeOf (err ))
266+ 	})
267+ 
268+ 	t .Run ("unimplemented when feature flag enabled" , func (t  * testing.T ) {
269+ 		serverMock , client  :=  setupTokensService (t , withTokenFeatureEnabled )
270+ 
271+ 		serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
272+ 
273+ 		_ , err  :=  client .DeletePersonalAccessToken (context .Background (), connect .NewRequest (& v1.DeletePersonalAccessTokenRequest {
274+ 			Id : uuid .New ().String (),
275+ 		}))
276+ 
277+ 		require .Equal (t , connect .CodeUnimplemented , connect .CodeOf (err ))
278+ 	})
279+ }
280+ 
109281func  setupTokensService (t  * testing.T , expClient  experiments.Client ) (* protocol.MockAPIInterface , v1connect.TokensServiceClient ) {
110282	t .Helper ()
111283
0 commit comments