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.go82
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())
}