@@ -74,6 +74,51 @@ func TestPersonalAccessToken_Create(t *testing.T) {
7474 require .Equal (t , request .ID , result .ID )
7575}
7676
77+ func TestPersonalAccessToken_Update (t * testing.T ) {
78+ conn := dbtest .ConnectForTests (t )
79+
80+ firstUserId := uuid .New ()
81+ secondUserId := uuid .New ()
82+
83+ token := dbtest .NewPersonalAccessToken (t , db.PersonalAccessToken {UserID : firstUserId })
84+ token2 := dbtest .NewPersonalAccessToken (t , db.PersonalAccessToken {UserID : secondUserId })
85+
86+ tokenEntries := []db.PersonalAccessToken {token , token2 }
87+
88+ dbtest .CreatePersonalAccessTokenRecords (t , conn , tokenEntries ... )
89+
90+ var newHash = "another-secure-hash"
91+ var newExpirationTime = time .Now ().Add (24 * time .Hour ).UTC ().Truncate (time .Millisecond )
92+
93+ t .Run ("not matching user" , func (t * testing.T ) {
94+ _ , err := db .UpdatePersonalAccessToken (context .Background (), conn , token .ID , token2 .UserID , newHash , newExpirationTime )
95+ require .Error (t , err , db .ErrorNotFound )
96+ })
97+
98+ t .Run ("not matching token" , func (t * testing.T ) {
99+ _ , err := db .UpdatePersonalAccessToken (context .Background (), conn , token2 .ID , token .UserID , newHash , newExpirationTime )
100+ require .Error (t , err , db .ErrorNotFound )
101+ })
102+
103+ t .Run ("both token and user don't exist in the DB" , func (t * testing.T ) {
104+ _ , err := db .UpdatePersonalAccessToken (context .Background (), conn , uuid .New (), uuid .New (), newHash , newExpirationTime )
105+ require .Error (t , err , db .ErrorNotFound )
106+ })
107+
108+ t .Run ("valid" , func (t * testing.T ) {
109+ returned , err := db .UpdatePersonalAccessToken (context .Background (), conn , token .ID , token .UserID , newHash , newExpirationTime )
110+ require .NoError (t , err )
111+ require .Equal (t , token .ID , returned .ID )
112+ require .Equal (t , token .UserID , returned .UserID )
113+ require .Equal (t , newHash , returned .Hash )
114+ require .Equal (t , token .Name , returned .Name )
115+ require .Equal (t , token .Description , returned .Description )
116+ require .Equal (t , token .Scopes , returned .Scopes )
117+ require .Equal (t , newExpirationTime , returned .ExpirationTime )
118+ require .Equal (t , token .CreatedAt , returned .CreatedAt )
119+ })
120+ }
121+
77122func TestListPersonalAccessTokensForUser (t * testing.T ) {
78123 ctx := context .Background ()
79124 conn := dbtest .ConnectForTests (t )
0 commit comments