@@ -6,6 +6,7 @@ package apiv1
6
6
7
7
import (
8
8
"context"
9
+ "fmt"
9
10
"net/http"
10
11
"net/http/httptest"
11
12
"testing"
@@ -127,26 +128,39 @@ func TestTokensService_CreatePersonalAccessTokenWithoutFeatureFlag(t *testing.T)
127
128
require .NoError (t , err )
128
129
129
130
// token must exist in the DB, with the User ID of the requestor
130
- storedInDB , err := db .GetToken (context .Background (), dbConn , uuid .MustParse (created .GetId ()))
131
+ storedInDB , err := db .GetPersonalAccessTokenForUser (context .Background (), dbConn , uuid .MustParse (created .GetId ()), uuid . MustParse ( user . ID ))
131
132
require .NoError (t , err )
132
133
require .Equal (t , user .ID , storedInDB .UserID .String ())
133
134
})
134
135
}
135
136
136
137
func TestTokensService_GetPersonalAccessToken (t * testing.T ) {
137
138
user := newUser (& protocol.User {})
139
+ user2 := newUser (& protocol.User {})
138
140
139
- t .Run ("permission denied when feature flag is disabled" , func (t * testing.T ) {
140
- serverMock , _ , client := setupTokensService (t , withTokenFeatureDisabled )
141
+ t .Run ("get correct token" , func (t * testing.T ) {
142
+ serverMock , dbConn , client := setupTokensService (t , withTokenFeatureEnabled )
143
+
144
+ tokens := dbtest .CreatePersonalAccessTokenRecords (t , dbConn ,
145
+ dbtest .NewPersonalAccessToken (t , db.PersonalAccessToken {
146
+ UserID : uuid .MustParse (user .ID ),
147
+ }),
148
+ dbtest .NewPersonalAccessToken (t , db.PersonalAccessToken {
149
+ UserID : uuid .MustParse (user2 .ID ),
150
+ }),
151
+ )
141
152
142
153
serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
143
154
144
- _ , err := client .GetPersonalAccessToken (context .Background (), connect .NewRequest (& v1.GetPersonalAccessTokenRequest {
145
- Id : uuid . New () .String (),
155
+ response , err := client .GetPersonalAccessToken (context .Background (), connect .NewRequest (& v1.GetPersonalAccessTokenRequest {
156
+ Id : tokens [ 0 ]. ID .String (),
146
157
}))
147
158
148
- require .Error (t , err , "This feature is currently in beta. If you would like to be part of the beta, please contact us." )
149
- require .Equal (t , connect .CodePermissionDenied , connect .CodeOf (err ))
159
+ require .NoError (t , err )
160
+
161
+ requireEqualProto (t , & v1.GetPersonalAccessTokenResponse {
162
+ Token : personalAccessTokenToAPI (tokens [0 ], "" ),
163
+ }, response .Msg )
150
164
})
151
165
152
166
t .Run ("invalid argument when Token ID is empty" , func (t * testing.T ) {
@@ -167,16 +181,43 @@ func TestTokensService_GetPersonalAccessToken(t *testing.T) {
167
181
require .Equal (t , connect .CodeInvalidArgument , connect .CodeOf (err ))
168
182
})
169
183
170
- t .Run ("unimplemented when feature flag enabled" , func (t * testing.T ) {
171
- serverMock , _ , client := setupTokensService (t , withTokenFeatureEnabled )
184
+ t .Run ("responds with not found when token is not found" , func (t * testing.T ) {
185
+ serverMock , dbConn , client := setupTokensService (t , withTokenFeatureEnabled )
186
+
187
+ someTokenId := uuid .New ().String ()
188
+
189
+ dbtest .CreatePersonalAccessTokenRecords (t , dbConn ,
190
+ dbtest .NewPersonalAccessToken (t , db.PersonalAccessToken {
191
+ UserID : uuid .MustParse (user .ID ),
192
+ }),
193
+ )
172
194
173
195
serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
174
196
175
197
_ , err := client .GetPersonalAccessToken (context .Background (), connect .NewRequest (& v1.GetPersonalAccessTokenRequest {
176
- Id : uuid . New (). String () ,
198
+ Id : someTokenId ,
177
199
}))
178
200
179
- require .Equal (t , connect .CodeUnimplemented , connect .CodeOf (err ))
201
+ require .Error (t , err , fmt .Errorf ("Token with ID %s does not exist: not found" , someTokenId ))
202
+ })
203
+
204
+ t .Run ("permission denied when feature flag disabled" , func (t * testing.T ) {
205
+ serverMock , dbConn , client := setupTokensService (t , withTokenFeatureDisabled )
206
+
207
+ tokens := dbtest .CreatePersonalAccessTokenRecords (t , dbConn ,
208
+ dbtest .NewPersonalAccessToken (t , db.PersonalAccessToken {
209
+ UserID : uuid .MustParse (user .ID ),
210
+ }),
211
+ )
212
+
213
+ serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
214
+
215
+ _ , err := client .GetPersonalAccessToken (context .Background (), connect .NewRequest (& v1.GetPersonalAccessTokenRequest {
216
+ Id : tokens [0 ].ID .String (),
217
+ }))
218
+
219
+ require .Error (t , err , "This feature is currently in beta. If you would like to be part of the beta, please contact us." )
220
+ require .Equal (t , connect .CodePermissionDenied , connect .CodeOf (err ))
180
221
})
181
222
}
182
223
0 commit comments