Remove org methods from sqlstore interface (#56358)

* Remove org methods from sqlstore interface

* Remove some mocks

* Fix some tests
This commit is contained in:
idafurjes
2022-10-05 15:47:56 +02:00
committed by GitHub
parent ad2a1dd680
commit bc7a383252
11 changed files with 50 additions and 76 deletions
@@ -271,8 +271,9 @@ func (ls *Implementation) syncOrgRoles(ctx context.Context, usr *user.User, extU
return nil
}
orgsQuery := &models.GetUserOrgListQuery{UserId: usr.ID}
if err := ls.SQLStore.GetUserOrgList(ctx, orgsQuery); err != nil {
orgsQuery := &org.GetUserOrgListQuery{UserID: usr.ID}
result, err := ls.orgService.GetUserOrgList(ctx, orgsQuery)
if err != nil {
return err
}
@@ -280,15 +281,15 @@ func (ls *Implementation) syncOrgRoles(ctx context.Context, usr *user.User, extU
deleteOrgIds := []int64{}
// update existing org roles
for _, orga := range orgsQuery.Result {
handledOrgIds[orga.OrgId] = true
for _, orga := range result {
handledOrgIds[orga.OrgID] = true
extRole := extUser.OrgRoles[orga.OrgId]
extRole := extUser.OrgRoles[orga.OrgID]
if extRole == "" {
deleteOrgIds = append(deleteOrgIds, orga.OrgId)
deleteOrgIds = append(deleteOrgIds, orga.OrgID)
} else if extRole != orga.Role {
// update role
cmd := &org.UpdateOrgUserCommand{OrgID: orga.OrgId, UserID: usr.ID, Role: extRole}
cmd := &org.UpdateOrgUserCommand{OrgID: orga.OrgID, UserID: usr.ID, Role: extRole}
if err := ls.orgService.UpdateOrgUser(ctx, cmd); err != nil {
return err
}
@@ -14,7 +14,6 @@ import (
"github.com/grafana/grafana/pkg/services/org"
"github.com/grafana/grafana/pkg/services/org/orgtest"
"github.com/grafana/grafana/pkg/services/quota/quotaimpl"
"github.com/grafana/grafana/pkg/services/sqlstore/mockstore"
"github.com/grafana/grafana/pkg/services/user"
"github.com/grafana/grafana/pkg/services/user/usertest"
"github.com/stretchr/testify/assert"
@@ -26,15 +25,10 @@ func Test_syncOrgRoles_doesNotBreakWhenTryingToRemoveLastOrgAdmin(t *testing.T)
externalUser := createSimpleExternalUser()
authInfoMock := &logintest.AuthInfoServiceFake{}
store := &mockstore.SQLStoreMock{
ExpectedUserOrgList: createUserOrgDTO(),
ExpectedOrgListResponse: createResponseWithOneErrLastOrgAdminItem(),
}
login := Implementation{
QuotaService: &quotaimpl.Service{},
AuthInfoService: authInfoMock,
SQLStore: store,
SQLStore: nil,
userService: usertest.NewUserServiceFake(),
orgService: orgtest.NewOrgServiceFake(),
}
@@ -52,18 +46,14 @@ func Test_syncOrgRoles_whenTryingToRemoveLastOrgLogsError(t *testing.T) {
authInfoMock := &logintest.AuthInfoServiceFake{}
store := &mockstore.SQLStoreMock{
ExpectedUserOrgList: createUserOrgDTO(),
ExpectedOrgListResponse: createResponseWithOneErrLastOrgAdminItem(),
}
orgService := orgtest.NewOrgServiceFake()
orgService.ExpectedError = models.ErrLastOrgAdmin
orgService.ExpectedUserOrgDTO = createUserOrgDTO()
orgService.ExpectedOrgListResponse = createResponseWithOneErrLastOrgAdminItem()
login := Implementation{
QuotaService: &quotaimpl.Service{},
AuthInfoService: authInfoMock,
SQLStore: store,
SQLStore: nil,
userService: usertest.NewUserServiceFake(),
orgService: orgService,
}
@@ -132,20 +122,20 @@ func createSimpleUser() user.User {
return user
}
func createUserOrgDTO() []*models.UserOrgDTO {
users := []*models.UserOrgDTO{
func createUserOrgDTO() []*org.UserOrgDTO {
users := []*org.UserOrgDTO{
{
OrgId: 1,
OrgID: 1,
Name: "Bar",
Role: org.RoleViewer,
},
{
OrgId: 10,
OrgID: 10,
Name: "Foo",
Role: org.RoleAdmin,
},
{
OrgId: 11,
OrgID: 11,
Name: "Stuff",
Role: org.RoleViewer,
},
@@ -164,14 +154,14 @@ func createSimpleExternalUser() models.ExternalUserInfo {
return externalUser
}
func createResponseWithOneErrLastOrgAdminItem() mockstore.OrgListResponse {
remResp := mockstore.OrgListResponse{
func createResponseWithOneErrLastOrgAdminItem() orgtest.OrgListResponse {
remResp := orgtest.OrgListResponse{
{
OrgId: 10,
OrgID: 10,
Response: models.ErrLastOrgAdmin,
},
{
OrgId: 11,
OrgID: 11,
Response: nil,
},
}
+9 -1
View File
@@ -6,6 +6,11 @@ import (
"github.com/grafana/grafana/pkg/services/org"
)
type OrgListResponse []struct {
OrgID int64
Response error
}
type FakeOrgService struct {
ExpectedOrgUserID int64
ExpectedError error
@@ -14,6 +19,7 @@ type FakeOrgService struct {
ExpectedOrg *org.Org
ExpectedOrgUsers []*org.OrgUserDTO
ExpectedSearchOrgUsersResult *org.SearchOrgUsersQueryResult
ExpectedOrgListResponse OrgListResponse
}
func NewOrgServiceFake() *FakeOrgService {
@@ -85,7 +91,9 @@ func (f *FakeOrgService) GetOrgUsers(ctx context.Context, query *org.GetOrgUsers
}
func (f *FakeOrgService) RemoveOrgUser(ctx context.Context, cmd *org.RemoveOrgUserCommand) error {
return f.ExpectedError
testData := f.ExpectedOrgListResponse[0]
f.ExpectedOrgListResponse = f.ExpectedOrgListResponse[1:]
return testData.Response
}
func (f *FakeOrgService) SearchOrgUsers(ctx context.Context, query *org.SearchOrgUsersQuery) (*org.SearchOrgUsersQueryResult, error) {
@@ -98,13 +98,6 @@ func (m *SQLStoreMock) GetOrgByNameHandler(ctx context.Context, query *models.Ge
return m.ExpectedError
}
func (m *SQLStoreMock) CreateOrgWithMember(name string, userID int64) (models.Org, error) {
return *m.ExpectedOrg, nil
}
func (m *SQLStoreMock) CreateOrg(ctx context.Context, cmd *models.CreateOrgCommand) error {
return m.ExpectedError
}
func (m *SQLStoreMock) UpdateOrgAddress(ctx context.Context, cmd *models.UpdateOrgAddressCommand) error {
return m.ExpectedError
}
@@ -135,19 +128,10 @@ func (m *SQLStoreMock) CreateUser(ctx context.Context, cmd user.CreateUserComman
return nil, m.ExpectedError
}
func (m *SQLStoreMock) SetUsingOrg(ctx context.Context, cmd *models.SetUsingOrgCommand) error {
return m.ExpectedSetUsingOrgError
}
func (m *SQLStoreMock) GetUserProfile(ctx context.Context, query *models.GetUserProfileQuery) error {
return m.ExpectedError
}
func (m *SQLStoreMock) GetUserOrgList(ctx context.Context, query *models.GetUserOrgListQuery) error {
query.Result = m.ExpectedUserOrgList
return m.ExpectedError
}
func (m *SQLStoreMock) GetSignedInUser(ctx context.Context, query *models.GetSignedInUserQuery) error {
query.Result = m.ExpectedSignedInUser
return m.ExpectedError
@@ -313,12 +297,6 @@ func (m *SQLStoreMock) SearchOrgUsers(ctx context.Context, query *models.SearchO
return m.ExpectedError
}
func (m *SQLStoreMock) RemoveOrgUser(ctx context.Context, cmd *models.RemoveOrgUserCommand) error {
testData := m.ExpectedOrgListResponse[0]
m.ExpectedOrgListResponse = m.ExpectedOrgListResponse[1:]
return testData.Response
}
func (m *SQLStoreMock) GetDashboardTags(ctx context.Context, query *models.GetDashboardTagsQuery) error {
return nil // TODO: Implement
}
-3
View File
@@ -19,13 +19,10 @@ type Store interface {
GetDBType() core.DbType
GetSystemStats(ctx context.Context, query *models.GetSystemStatsQuery) error
GetOrgByName(name string) (*models.Org, error)
CreateOrg(ctx context.Context, cmd *models.CreateOrgCommand) error
CreateOrgWithMember(name string, userID int64) (models.Org, error)
GetOrgById(context.Context, *models.GetOrgByIdQuery) error
GetOrgByNameHandler(ctx context.Context, query *models.GetOrgByNameQuery) error
CreateUser(ctx context.Context, cmd user.CreateUserCommand) (*user.User, error)
GetUserProfile(ctx context.Context, query *models.GetUserProfileQuery) error
GetUserOrgList(ctx context.Context, query *models.GetUserOrgListQuery) error
GetSignedInUser(ctx context.Context, query *models.GetSignedInUserQuery) error
WithDbSession(ctx context.Context, callback DBTransactionFunc) error
WithNewDbSession(ctx context.Context, callback DBTransactionFunc) error