dashboards: make fake dashboard guardian available to other packages

This commit is contained in:
Marcus Efraimsson
2018-02-20 18:08:19 +01:00
parent 892bdecb19
commit 02278f90a7
4 changed files with 76 additions and 128 deletions
@@ -17,7 +17,7 @@ func TestDashboardService(t *testing.T) {
service := dashboardServiceImpl{}
origNewDashboardGuardian := guardian.New
mockDashboardGuardian(&fakeDashboardGuardian{canSave: true})
guardian.MockDashboardGuardian(&guardian.FakeDashboardGuardian{CanSaveValue: true})
Convey("Save dashboard validation", func() {
dto := &SaveDashboardDTO{}
@@ -93,52 +93,3 @@ func TestDashboardService(t *testing.T) {
})
})
}
func mockDashboardGuardian(mock *fakeDashboardGuardian) {
guardian.New = func(dashId int64, orgId int64, user *models.SignedInUser) guardian.DashboardGuardian {
mock.orgId = orgId
mock.dashId = dashId
mock.user = user
return mock
}
}
type fakeDashboardGuardian struct {
dashId int64
orgId int64
user *models.SignedInUser
canSave bool
canEdit bool
canView bool
canAdmin bool
hasPermission bool
checkPermissionBeforeUpdate bool
}
func (g *fakeDashboardGuardian) CanSave() (bool, error) {
return g.canSave, nil
}
func (g *fakeDashboardGuardian) CanEdit() (bool, error) {
return g.canEdit, nil
}
func (g *fakeDashboardGuardian) CanView() (bool, error) {
return g.canView, nil
}
func (g *fakeDashboardGuardian) CanAdmin() (bool, error) {
return g.canAdmin, nil
}
func (g *fakeDashboardGuardian) HasPermission(permission models.PermissionType) (bool, error) {
return g.hasPermission, nil
}
func (g *fakeDashboardGuardian) CheckPermissionBeforeUpdate(permission models.PermissionType, updatePermissions []*models.DashboardAcl) (bool, error) {
return g.checkPermissionBeforeUpdate, nil
}
func (g *fakeDashboardGuardian) GetAcl() ([]*models.DashboardAclInfoDTO, error) {
return nil, nil
}
@@ -20,7 +20,7 @@ func TestFolderService(t *testing.T) {
Convey("Given user has no permissions", func() {
origNewGuardian := guardian.New
mockDashboardGuardian(&fakeDashboardGuardian{})
guardian.MockDashboardGuardian(&guardian.FakeDashboardGuardian{})
bus.AddHandler("test", func(query *models.GetDashboardQuery) error {
query.Result = models.NewDashboardFolder("Folder")
@@ -77,7 +77,7 @@ func TestFolderService(t *testing.T) {
Convey("Given user has permission to save", func() {
origNewGuardian := guardian.New
mockDashboardGuardian(&fakeDashboardGuardian{canSave: true})
guardian.MockDashboardGuardian(&guardian.FakeDashboardGuardian{CanSaveValue: true})
dash := models.NewDashboardFolder("Folder")
dash.Id = 1
@@ -135,7 +135,7 @@ func TestFolderService(t *testing.T) {
Convey("Given user has permission to view", func() {
origNewGuardian := guardian.New
mockDashboardGuardian(&fakeDashboardGuardian{canView: true})
guardian.MockDashboardGuardian(&guardian.FakeDashboardGuardian{CanViewValue: true})
dashFolder := models.NewDashboardFolder("Folder")
dashFolder.Id = 1
@@ -153,7 +153,7 @@ func TestFolderService(t *testing.T) {
So(f.Title, ShouldEqual, dashFolder.Title)
})
Convey("When get folder by uid should not return access denied error", func() {
Convey("When get folder by uid should return folder", func() {
f, _ := service.GetFolderByUid("uid")
So(f.Id, ShouldEqual, dashFolder.Id)
So(f.Uid, ShouldEqual, dashFolder.Uid)