diff options
Diffstat (limited to 'internal/route/lfs/route_test.go')
-rw-r--r-- | internal/route/lfs/route_test.go | 82 |
1 files changed, 44 insertions, 38 deletions
diff --git a/internal/route/lfs/route_test.go b/internal/route/lfs/route_test.go index 57d0728f..6202695b 100644 --- a/internal/route/lfs/route_test.go +++ b/internal/route/lfs/route_test.go @@ -30,7 +30,7 @@ func Test_authenticate(t *testing.T) { tests := []struct { name string header http.Header - mockUsersStore *db.MockUsersStore + mockUsersStore func() db.UsersStore mockTwoFactorsStore *db.MockTwoFactorsStore mockAccessTokensStore func() db.AccessTokensStore expStatusCode int @@ -51,10 +51,10 @@ func Test_authenticate(t *testing.T) { header: http.Header{ "Authorization": []string{"Basic dXNlcm5hbWU6cGFzc3dvcmQ="}, }, - mockUsersStore: &db.MockUsersStore{ - MockAuthenticate: func(username, password string, loginSourceID int64) (*db.User, error) { - return &db.User{}, nil - }, + mockUsersStore: func() db.UsersStore { + mock := db.NewMockUsersStore() + mock.AuthenticateFunc.SetDefaultReturn(&db.User{}, nil) + return mock }, mockTwoFactorsStore: &db.MockTwoFactorsStore{ MockIsUserEnabled: func(userID int64) bool { @@ -70,10 +70,10 @@ func Test_authenticate(t *testing.T) { header: http.Header{ "Authorization": []string{"Basic dXNlcm5hbWU="}, }, - mockUsersStore: &db.MockUsersStore{ - MockAuthenticate: func(username, password string, loginSourceID int64) (*db.User, error) { - return nil, auth.ErrBadCredentials{} - }, + mockUsersStore: func() db.UsersStore { + mock := db.NewMockUsersStore() + mock.AuthenticateFunc.SetDefaultReturn(nil, auth.ErrBadCredentials{}) + return mock }, mockAccessTokensStore: func() db.AccessTokensStore { mock := db.NewMockAccessTokensStore() @@ -93,10 +93,10 @@ func Test_authenticate(t *testing.T) { header: http.Header{ "Authorization": []string{"Basic dXNlcm5hbWU6cGFzc3dvcmQ="}, }, - mockUsersStore: &db.MockUsersStore{ - MockAuthenticate: func(username, password string, loginSourceID int64) (*db.User, error) { - return &db.User{ID: 1, Name: "unknwon"}, nil - }, + mockUsersStore: func() db.UsersStore { + mock := db.NewMockUsersStore() + mock.AuthenticateFunc.SetDefaultReturn(&db.User{ID: 1, Name: "unknwon"}, nil) + return mock }, mockTwoFactorsStore: &db.MockTwoFactorsStore{ MockIsUserEnabled: func(userID int64) bool { @@ -112,13 +112,11 @@ func Test_authenticate(t *testing.T) { header: http.Header{ "Authorization": []string{"Basic dXNlcm5hbWU="}, }, - mockUsersStore: &db.MockUsersStore{ - MockAuthenticate: func(username, password string, loginSourceID int64) (*db.User, error) { - return nil, auth.ErrBadCredentials{} - }, - MockGetByID: func(id int64) (*db.User, error) { - return &db.User{ID: 1, Name: "unknwon"}, nil - }, + mockUsersStore: func() db.UsersStore { + mock := db.NewMockUsersStore() + mock.AuthenticateFunc.SetDefaultReturn(nil, auth.ErrBadCredentials{}) + mock.GetByIDFunc.SetDefaultReturn(&db.User{ID: 1, Name: "unknwon"}, nil) + return mock }, mockAccessTokensStore: func() db.AccessTokensStore { mock := db.NewMockAccessTokensStore() @@ -132,9 +130,10 @@ func Test_authenticate(t *testing.T) { } for _, test := range tests { t.Run(test.name, func(t *testing.T) { - db.SetMockUsersStore(t, test.mockUsersStore) + if test.mockUsersStore != nil { + db.SetMockUsersStore(t, test.mockUsersStore()) + } db.SetMockTwoFactorsStore(t, test.mockTwoFactorsStore) - if test.mockAccessTokensStore != nil { db.SetMockAccessTokensStore(t, test.mockAccessTokensStore()) } @@ -165,7 +164,7 @@ func Test_authorize(t *testing.T) { tests := []struct { name string authroize macaron.Handler - mockUsersStore *db.MockUsersStore + mockUsersStore func() db.UsersStore mockReposStore *db.MockReposStore mockPermsStore func() db.PermsStore expStatusCode int @@ -174,20 +173,22 @@ func Test_authorize(t *testing.T) { { name: "user does not exist", authroize: authorize(db.AccessModeNone), - mockUsersStore: &db.MockUsersStore{ - MockGetByUsername: func(username string) (*db.User, error) { - return nil, db.ErrUserNotExist{} - }, + mockUsersStore: func() db.UsersStore { + mock := db.NewMockUsersStore() + mock.GetByUsernameFunc.SetDefaultReturn(nil, db.ErrUserNotExist{}) + return mock }, expStatusCode: http.StatusNotFound, }, { name: "repository does not exist", authroize: authorize(db.AccessModeNone), - mockUsersStore: &db.MockUsersStore{ - MockGetByUsername: func(username string) (*db.User, error) { + mockUsersStore: func() db.UsersStore { + mock := db.NewMockUsersStore() + mock.GetByUsernameFunc.SetDefaultHook(func(ctx context.Context, username string) (*db.User, error) { return &db.User{Name: username}, nil - }, + }) + return mock }, mockReposStore: &db.MockReposStore{ MockGetByName: func(ownerID int64, name string) (*db.Repository, error) { @@ -199,10 +200,12 @@ func Test_authorize(t *testing.T) { { name: "actor is not authorized", authroize: authorize(db.AccessModeWrite), - mockUsersStore: &db.MockUsersStore{ - MockGetByUsername: func(username string) (*db.User, error) { + mockUsersStore: func() db.UsersStore { + mock := db.NewMockUsersStore() + mock.GetByUsernameFunc.SetDefaultHook(func(ctx context.Context, username string) (*db.User, error) { return &db.User{Name: username}, nil - }, + }) + return mock }, mockReposStore: &db.MockReposStore{ MockGetByName: func(ownerID int64, name string) (*db.Repository, error) { @@ -222,10 +225,12 @@ func Test_authorize(t *testing.T) { { name: "actor is authorized", authroize: authorize(db.AccessModeRead), - mockUsersStore: &db.MockUsersStore{ - MockGetByUsername: func(username string) (*db.User, error) { + mockUsersStore: func() db.UsersStore { + mock := db.NewMockUsersStore() + mock.GetByUsernameFunc.SetDefaultHook(func(ctx context.Context, username string) (*db.User, error) { return &db.User{Name: username}, nil - }, + }) + return mock }, mockReposStore: &db.MockReposStore{ MockGetByName: func(ownerID int64, name string) (*db.Repository, error) { @@ -245,9 +250,10 @@ func Test_authorize(t *testing.T) { } for _, test := range tests { t.Run(test.name, func(t *testing.T) { - db.SetMockUsersStore(t, test.mockUsersStore) + if test.mockUsersStore != nil { + db.SetMockUsersStore(t, test.mockUsersStore()) + } db.SetMockReposStore(t, test.mockReposStore) - if test.mockPermsStore != nil { db.SetMockPermsStore(t, test.mockPermsStore()) } |