aboutsummaryrefslogtreecommitdiff
path: root/internal/route/lfs/route_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/route/lfs/route_test.go')
-rw-r--r--internal/route/lfs/route_test.go27
1 files changed, 26 insertions, 1 deletions
diff --git a/internal/route/lfs/route_test.go b/internal/route/lfs/route_test.go
index dd8f5cde..eb0225d5 100644
--- a/internal/route/lfs/route_test.go
+++ b/internal/route/lfs/route_test.go
@@ -108,7 +108,7 @@ func Test_authenticate(t *testing.T) {
expBody: "ID: 1, Name: unknwon",
},
{
- name: "authenticate by access token",
+ name: "authenticate by access token via username",
header: http.Header{
"Authorization": []string{"Basic dXNlcm5hbWU="},
},
@@ -127,6 +127,31 @@ func Test_authenticate(t *testing.T) {
expHeader: http.Header{},
expBody: "ID: 1, Name: unknwon",
},
+ {
+ name: "authenticate by access token via password",
+ header: http.Header{
+ "Authorization": []string{"Basic dXNlcm5hbWU6cGFzc3dvcmQ="},
+ },
+ mockUsersStore: func() db.UsersStore {
+ mock := NewMockUsersStore()
+ mock.AuthenticateFunc.SetDefaultReturn(nil, auth.ErrBadCredentials{})
+ mock.GetByIDFunc.SetDefaultReturn(&db.User{ID: 1, Name: "unknwon"}, nil)
+ return mock
+ },
+ mockAccessTokensStore: func() db.AccessTokensStore {
+ mock := NewMockAccessTokensStore()
+ mock.GetBySHA1Func.SetDefaultHook(func(ctx context.Context, sha1 string) (*db.AccessToken, error) {
+ if sha1 == "password" {
+ return &db.AccessToken{}, nil
+ }
+ return nil, db.ErrAccessTokenNotExist{}
+ })
+ return mock
+ },
+ expStatusCode: http.StatusOK,
+ expHeader: http.Header{},
+ expBody: "ID: 1, Name: unknwon",
+ },
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {