@@ -6,6 +6,7 @@ package apiv1
66
77import (
88 "context"
9+ "fmt"
910 "net/http"
1011 "net/http/httptest"
1112 "testing"
@@ -127,26 +128,39 @@ func TestTokensService_CreatePersonalAccessTokenWithoutFeatureFlag(t *testing.T)
127128 require .NoError (t , err )
128129
129130 // 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 ))
131132 require .NoError (t , err )
132133 require .Equal (t , user .ID , storedInDB .UserID .String ())
133134 })
134135}
135136
136137func TestTokensService_GetPersonalAccessToken (t * testing.T ) {
137138 user := newUser (& protocol.User {})
139+ user2 := newUser (& protocol.User {})
138140
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+ )
141152
142153 serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
143154
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 (),
146157 }))
147158
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 )
150164 })
151165
152166 t .Run ("invalid argument when Token ID is empty" , func (t * testing.T ) {
@@ -167,16 +181,43 @@ func TestTokensService_GetPersonalAccessToken(t *testing.T) {
167181 require .Equal (t , connect .CodeInvalidArgument , connect .CodeOf (err ))
168182 })
169183
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+ )
172194
173195 serverMock .EXPECT ().GetLoggedInUser (gomock .Any ()).Return (user , nil )
174196
175197 _ , err := client .GetPersonalAccessToken (context .Background (), connect .NewRequest (& v1.GetPersonalAccessTokenRequest {
176- Id : uuid . New (). String () ,
198+ Id : someTokenId ,
177199 }))
178200
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 ))
180221 })
181222}
182223
0 commit comments