@@ -22,10 +22,8 @@ import (
22
22
protocol "github.com/gitpod-io/gitpod/gitpod-protocol"
23
23
"github.com/gitpod-io/gitpod/public-api-server/pkg/auth"
24
24
"github.com/golang/mock/gomock"
25
- "github.com/google/go-cmp/cmp"
26
25
"github.com/google/uuid"
27
26
"github.com/stretchr/testify/require"
28
- "google.golang.org/protobuf/testing/protocmp"
29
27
"google.golang.org/protobuf/types/known/timestamppb"
30
28
"gorm.io/gorm"
31
29
)
@@ -368,6 +366,33 @@ func TestTokensService_RegeneratePersonalAccessToken(t *testing.T) {
368
366
require .Equal (t , connect .CodeInvalidArgument , connect .CodeOf (err ))
369
367
})
370
368
369
+ t .Run ("responds with not found when token is not found" , func (t * testing.T ) {
370
+ serverMock , dbConn , client := setupTokensService (t , withTokenFeatureEnabled )
371
+
372
+ someTokenId := uuid .New ().String ()
373
+
374
+ dbtest .CreatePersonalAccessTokenRecords (t , dbConn ,
375
+ dbtest .NewPersonalAccessToken (t , db.PersonalAccessToken {
376
+ UserID : uuid .MustParse (user .ID ),
377
+ }),
378
+ dbtest .NewPersonalAccessToken (t , db.PersonalAccessToken {
379
+ UserID : uuid .MustParse (user2 .ID ),
380
+ }),
381
+ )
382
+
383
+ serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
384
+
385
+ newTime , err := time .Parse (time .RFC3339 , "2023-01-02T15:04:05Z" )
386
+ require .NoError (t , err )
387
+
388
+ newTimestamp := timestamppb .New (newTime )
389
+ _ , err = client .RegeneratePersonalAccessToken (context .Background (), connect .NewRequest (& v1.RegeneratePersonalAccessTokenRequest {
390
+ Id : someTokenId ,
391
+ ExpirationTime : newTimestamp ,
392
+ }))
393
+ require .Error (t , err , fmt .Errorf ("Token with ID %s does not exist: not found" , someTokenId ))
394
+ })
395
+
371
396
t .Run ("regenerate correct token" , func (t * testing.T ) {
372
397
serverMock , dbConn , client := setupTokensService (t , withTokenFeatureEnabled )
373
398
@@ -380,36 +405,30 @@ func TestTokensService_RegeneratePersonalAccessToken(t *testing.T) {
380
405
}),
381
406
)
382
407
383
- serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
408
+ serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil ). MaxTimes ( 2 )
384
409
385
410
origResponse , err := client .GetPersonalAccessToken (context .Background (), connect .NewRequest (& v1.GetPersonalAccessTokenRequest {
386
411
Id : tokens [0 ].ID .String (),
387
412
}))
413
+ require .NoError (t , err )
388
414
415
+ newTime , err := time .Parse (time .RFC3339 , "2023-01-02T15:04:05Z" )
389
416
require .NoError (t , err )
390
417
391
- newTimestamp := timestamppb .Now ( )
418
+ newTimestamp := timestamppb .New ( newTime )
392
419
response , err := client .RegeneratePersonalAccessToken (context .Background (), connect .NewRequest (& v1.RegeneratePersonalAccessTokenRequest {
393
420
Id : tokens [0 ].ID .String (),
394
421
ExpirationTime : newTimestamp ,
395
422
}))
396
-
397
423
require .NoError (t , err )
398
424
399
- // require.Equal(t, response.Msg.Token.ExpirationTime, newTimestamp)
400
- // require.NotEqual(t, response.Msg.Token.Value, origResponse.Msg.Token.Value)
401
-
402
- requireNotEqualProto (t , & v1.RegeneratePersonalAccessTokenResponse {
403
- Token : personalAccessTokenToAPI (tokens [0 ], origResponse .Msg .Token .Value ),
404
- }, response .Msg )
405
-
406
- // fake code
407
- tokens [0 ].Hash = response .Msg .Token .Value
408
- tokens [0 ].ExpirationTime = response .Msg .Token .GetExpirationTime ().AsTime ()
409
-
410
- requireEqualProto (t , & v1.RegeneratePersonalAccessTokenResponse {
411
- Token : personalAccessTokenToAPI (tokens [0 ], "" ),
412
- }, response .Msg )
425
+ require .Equal (t , origResponse .Msg .Token .Id , response .Msg .Token .Id )
426
+ require .NotEqual (t , "" , response .Msg .Token .Value )
427
+ require .Equal (t , origResponse .Msg .Token .Name , response .Msg .Token .Name )
428
+ require .Equal (t , origResponse .Msg .Token .Description , response .Msg .Token .Description )
429
+ require .Equal (t , origResponse .Msg .Token .Scopes , response .Msg .Token .Scopes )
430
+ require .Equal (t , newTimestamp .AsTime (), response .Msg .Token .ExpirationTime .AsTime ())
431
+ require .Equal (t , origResponse .Msg .Token .CreatedAt , response .Msg .Token .CreatedAt )
413
432
})
414
433
}
415
434
@@ -536,12 +555,3 @@ func setupTokensService(t *testing.T, expClient experiments.Client) (*protocol.M
536
555
537
556
return serverMock , dbConn , client
538
557
}
539
-
540
- func requireNotEqualProto (t * testing.T , expected interface {}, actual interface {}) {
541
- t .Helper ()
542
-
543
- diff := cmp .Diff (expected , actual , protocmp .Transform ())
544
- if diff == "" {
545
- require .Fail (t , diff , "they should not equal" )
546
- }
547
- }
0 commit comments