@@ -74,6 +74,51 @@ func TestPersonalAccessToken_Create(t *testing.T) {
74
74
require .Equal (t , request .ID , result .ID )
75
75
}
76
76
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
+
77
122
func TestListPersonalAccessTokensForUser (t * testing.T ) {
78
123
ctx := context .Background ()
79
124
conn := dbtest .ConnectForTests (t )
0 commit comments