Chore: Make Cfg field private in SQLStore (#85593)

* make cfg private in sqlstore

* fix db init in tests

* fix case

* fix folder test init

* fix imports

* make another Cfg private

* remove another Cfg

* remove unused variable

* use store cfg, it has side-effects

* fix mutated cfg in tests
This commit is contained in:
Serge Zaitsev
2024-04-24 10:38:40 +02:00
committed by GitHub
parent f6e472f879
commit 522a98c126
50 changed files with 325 additions and 344 deletions
@@ -28,7 +28,7 @@ func TestIntegrationDashboardFolderStore(t *testing.T) {
var dashboardStore dashboards.Store
setup := func() {
sqlStore, cfg = db.InitTestDBwithCfg(t)
sqlStore, cfg = db.InitTestDBWithCfg(t)
quotaService := quotatest.New(false, nil)
var err error
dashboardStore, err = database.ProvideDashboardStore(sqlStore, cfg, featuremgmt.WithFeatures(featuremgmt.FlagPanelTitleSearch), tagimpl.ProvideService(sqlStore), quotaService)
@@ -40,7 +40,7 @@ func TestIntegrationDashboardFolderStore(t *testing.T) {
title := "Very Unique Name"
var sqlStore db.DB
var folder1, folder2 *dashboards.Dashboard
sqlStore = db.InitTestDB(t)
sqlStore, cfg = db.InitTestDBWithCfg(t)
folderStore := ProvideDashboardFolderStore(sqlStore)
folder2 = insertTestFolder(t, dashboardStore, "TEST", orgId, "", "prod")
_ = insertTestDashboard(t, dashboardStore, title, orgId, folder2.ID, folder2.UID, "prod")
+40 -42
View File
@@ -58,7 +58,7 @@ func TestIntegrationProvideFolderService(t *testing.T) {
t.Run("should register scope resolvers", func(t *testing.T) {
cfg := setting.NewCfg()
ac := acmock.New()
db := sqlstore.InitTestDB(t)
db := db.InitTestDB(t)
ProvideService(ac, bus.ProvideBus(tracing.InitializeTracerForTest()), cfg, nil, nil, db, featuremgmt.WithFeatures(), supportbundlestest.NewFakeBundleService(), nil)
require.Len(t, ac.Calls.RegisterAttributeScopeResolver, 3)
@@ -71,12 +71,11 @@ func TestIntegrationFolderService(t *testing.T) {
}
t.Run("Folder service tests", func(t *testing.T) {
dashStore := &dashboards.FakeDashboardStore{}
db := sqlstore.InitTestDB(t)
nestedFolderStore := ProvideStore(db, db.Cfg)
db, cfg := sqlstore.InitTestDB(t)
nestedFolderStore := ProvideStore(db, cfg)
folderStore := foldertest.NewFakeFolderStore(t)
cfg := setting.NewCfg()
features := featuremgmt.WithFeatures()
ac := acmock.New().WithPermissions([]accesscontrol.Permission{
@@ -354,16 +353,14 @@ func TestIntegrationNestedFolderService(t *testing.T) {
if testing.Short() {
t.Skip("skipping integration test")
}
db := sqlstore.InitTestDB(t)
db, cfg := sqlstore.InitTestDB(t)
quotaService := quotatest.New(false, nil)
folderStore := ProvideDashboardFolderStore(db)
cfg := setting.NewCfg()
featuresFlagOn := featuremgmt.WithFeatures("nestedFolders")
dashStore, err := database.ProvideDashboardStore(db, db.Cfg, featuresFlagOn, tagimpl.ProvideService(db), quotaService)
dashStore, err := database.ProvideDashboardStore(db, cfg, featuresFlagOn, tagimpl.ProvideService(db), quotaService)
require.NoError(t, err)
nestedFolderStore := ProvideStore(db, db.Cfg)
nestedFolderStore := ProvideStore(db, cfg)
b := bus.ProvideBus(tracing.InitializeTracerForTest())
ac := acimpl.ProvideAccessControl(cfg)
@@ -479,9 +476,9 @@ func TestIntegrationNestedFolderService(t *testing.T) {
})
t.Run("With nested folder feature flag off", func(t *testing.T) {
featuresFlagOff := featuremgmt.WithFeatures()
dashStore, err := database.ProvideDashboardStore(db, db.Cfg, featuresFlagOff, tagimpl.ProvideService(db), quotaService)
dashStore, err := database.ProvideDashboardStore(db, cfg, featuresFlagOff, tagimpl.ProvideService(db), quotaService)
require.NoError(t, err)
nestedFolderStore := ProvideStore(db, db.Cfg)
nestedFolderStore := ProvideStore(db, cfg)
serviceWithFlagOff := &Service{
cfg: cfg,
@@ -644,9 +641,9 @@ func TestIntegrationNestedFolderService(t *testing.T) {
lps, err := librarypanels.ProvideService(cfg, db, routeRegister, elementService, tc.service)
require.NoError(t, err)
dashStore, err := database.ProvideDashboardStore(db, db.Cfg, tc.featuresFlag, tagimpl.ProvideService(db), quotaService)
dashStore, err := database.ProvideDashboardStore(db, cfg, tc.featuresFlag, tagimpl.ProvideService(db), quotaService)
require.NoError(t, err)
nestedFolderStore := ProvideStore(db, db.Cfg)
nestedFolderStore := ProvideStore(db, cfg)
tc.service.dashboardStore = dashStore
tc.service.store = nestedFolderStore
@@ -737,11 +734,11 @@ func TestNestedFolderServiceFeatureToggle(t *testing.T) {
dashboardFolderStore := foldertest.NewFakeFolderStore(t)
cfg := setting.NewCfg()
db, cfg := sqlstore.InitTestDB(t)
folderService := &Service{
cfg: cfg,
store: nestedFolderStore,
db: sqlstore.InitTestDB(t),
db: db,
dashboardStore: &dashStore,
dashboardFolderStore: dashboardFolderStore,
features: featuremgmt.WithFeatures(featuremgmt.FlagNestedFolders),
@@ -765,7 +762,7 @@ func TestFolderServiceDualWrite(t *testing.T) {
guardian.New = g
})
db := sqlstore.InitTestDB(t)
db, _ := sqlstore.InitTestDB(t)
cfg := setting.NewCfg()
features := featuremgmt.WithFeatures()
nestedFolderStore := ProvideStore(db, cfg)
@@ -778,7 +775,7 @@ func TestFolderServiceDualWrite(t *testing.T) {
folderService := &Service{
cfg: setting.NewCfg(),
store: nestedFolderStore,
db: sqlstore.InitTestDB(t),
db: db,
dashboardStore: dashStore,
dashboardFolderStore: dashboardFolderStore,
features: featuremgmt.WithFeatures(featuremgmt.FlagNestedFolders),
@@ -845,7 +842,8 @@ func TestNestedFolderService(t *testing.T) {
nestedFolderStore := NewFakeStore()
folderSvc := setup(t, dashStore, dashboardFolderStore, nestedFolderStore, featuremgmt.WithFeatures(), acimpl.ProvideAccessControl(setting.NewCfg()), sqlstore.InitTestDB(t))
db, _ := sqlstore.InitTestDB(t)
folderSvc := setup(t, dashStore, dashboardFolderStore, nestedFolderStore, featuremgmt.WithFeatures(), acimpl.ProvideAccessControl(setting.NewCfg()), db)
_, err := folderSvc.Create(context.Background(), &folder.CreateFolderCommand{
OrgID: orgID,
Title: dash.Title,
@@ -877,7 +875,8 @@ func TestNestedFolderService(t *testing.T) {
dashboardFolderStore := foldertest.NewFakeFolderStore(t)
nestedFolderStore := NewFakeStore()
folderSvc := setup(t, dashStore, dashboardFolderStore, nestedFolderStore, featuremgmt.WithFeatures("nestedFolders"), acimpl.ProvideAccessControl(setting.NewCfg()), sqlstore.InitTestDB(t))
db, _ := sqlstore.InitTestDB(t)
folderSvc := setup(t, dashStore, dashboardFolderStore, nestedFolderStore, featuremgmt.WithFeatures("nestedFolders"), acimpl.ProvideAccessControl(setting.NewCfg()), db)
_, err := folderSvc.Create(context.Background(), &folder.CreateFolderCommand{
OrgID: orgID,
Title: dash.Title,
@@ -942,7 +941,8 @@ func TestNestedFolderService(t *testing.T) {
nestedFolderUser.Permissions[orgID] = map[string][]string{dashboards.ActionFoldersWrite: {dashboards.ScopeFoldersProvider.GetResourceScopeUID("some_parent")}}
nestedFolderStore := NewFakeStore()
folderSvc := setup(t, dashStore, dashboardFolderStore, nestedFolderStore, featuremgmt.WithFeatures("nestedFolders"), acimpl.ProvideAccessControl(setting.NewCfg()), sqlstore.InitTestDB(t))
db, _ := sqlstore.InitTestDB(t)
folderSvc := setup(t, dashStore, dashboardFolderStore, nestedFolderStore, featuremgmt.WithFeatures("nestedFolders"), acimpl.ProvideAccessControl(setting.NewCfg()), db)
_, err := folderSvc.Create(context.Background(), &folder.CreateFolderCommand{
OrgID: orgID,
Title: dash.Title,
@@ -969,9 +969,10 @@ func TestNestedFolderService(t *testing.T) {
dashboardFolderStore := foldertest.NewFakeFolderStore(t)
nestedFolderStore := NewFakeStore()
db, _ := sqlstore.InitTestDB(t)
folderSvc := setup(t, dashStore, dashboardFolderStore, nestedFolderStore, featuremgmt.WithFeatures("nestedFolders"), actest.FakeAccessControl{
ExpectedEvaluate: true,
}, sqlstore.InitTestDB(t))
}, db)
f, err := folderSvc.Create(context.Background(), &folder.CreateFolderCommand{
OrgID: orgID,
Title: "myFolder",
@@ -1019,9 +1020,10 @@ func TestNestedFolderService(t *testing.T) {
SignedInUser: usr,
}
db, _ := sqlstore.InitTestDB(t)
folderSvc := setup(t, dashStore, dashboardFolderStore, nestedFolderStore, featuremgmt.WithFeatures("nestedFolders"), actest.FakeAccessControl{
ExpectedEvaluate: true,
}, sqlstore.InitTestDB(t))
}, db)
_, err := folderSvc.Create(context.Background(), &cmd)
require.Error(t, err, folder.ErrCircularReference)
// CreateFolder should not call the folder store's create method.
@@ -1048,9 +1050,10 @@ func TestNestedFolderService(t *testing.T) {
nestedFolderStore.ExpectedError = errors.New("FAILED")
// the service return success as long as the legacy create succeeds
db, _ := sqlstore.InitTestDB(t)
folderSvc := setup(t, dashStore, dashboardFolderStore, nestedFolderStore, featuremgmt.WithFeatures("nestedFolders"), actest.FakeAccessControl{
ExpectedEvaluate: true,
}, sqlstore.InitTestDB(t))
}, db)
_, err := folderSvc.Create(context.Background(), &folder.CreateFolderCommand{
OrgID: orgID,
Title: "myFolder",
@@ -1232,9 +1235,10 @@ func TestNestedFolderService(t *testing.T) {
//nestedFolderStore.ExpectedFolder = &folder.Folder{UID: "myFolder", ParentUID: "newFolder"}
nestedFolderStore.ExpectedParentFolders = parents
db, _ := sqlstore.InitTestDB(t)
folderSvc := setup(t, dashStore, dashboardFolderStore, nestedFolderStore, featuremgmt.WithFeatures("nestedFolders"), actest.FakeAccessControl{
ExpectedEvaluate: true,
}, sqlstore.InitTestDB(t))
}, db)
_, err := folderSvc.Create(context.Background(), &folder.CreateFolderCommand{
Title: "folder",
OrgID: orgID,
@@ -1277,16 +1281,14 @@ func TestIntegrationNestedFolderSharedWithMe(t *testing.T) {
if testing.Short() {
t.Skip("skipping integration test")
}
db := sqlstore.InitTestDB(t)
db, cfg := sqlstore.InitTestDB(t)
quotaService := quotatest.New(false, nil)
folderStore := ProvideDashboardFolderStore(db)
cfg := setting.NewCfg()
featuresFlagOn := featuremgmt.WithFeatures("nestedFolders")
dashStore, err := database.ProvideDashboardStore(db, db.Cfg, featuresFlagOn, tagimpl.ProvideService(db), quotaService)
dashStore, err := database.ProvideDashboardStore(db, cfg, featuresFlagOn, tagimpl.ProvideService(db), quotaService)
require.NoError(t, err)
nestedFolderStore := ProvideStore(db, db.Cfg)
nestedFolderStore := ProvideStore(db, cfg)
b := bus.ProvideBus(tracing.InitializeTracerForTest())
ac := acimpl.ProvideAccessControl(cfg)
@@ -1631,7 +1633,7 @@ func TestIntegrationNestedFolderSharedWithMe(t *testing.T) {
}
func TestFolderServiceGetFolder(t *testing.T) {
db := sqlstore.InitTestDB(t)
db, _ := sqlstore.InitTestDB(t)
signedInAdminUser := user.SignedInUser{UserID: 1, OrgID: orgID, Permissions: map[int64]map[string][]string{
orgID: {
@@ -1653,9 +1655,9 @@ func TestFolderServiceGetFolder(t *testing.T) {
cfg := setting.NewCfg()
featuresFlagOff := featuremgmt.WithFeatures()
dashStore, err := database.ProvideDashboardStore(db, db.Cfg, featuresFlagOff, tagimpl.ProvideService(db), quotaService)
dashStore, err := database.ProvideDashboardStore(db, cfg, featuresFlagOff, tagimpl.ProvideService(db), quotaService)
require.NoError(t, err)
nestedFolderStore := ProvideStore(db, db.Cfg)
nestedFolderStore := ProvideStore(db, cfg)
b := bus.ProvideBus(tracing.InitializeTracerForTest())
ac := acimpl.ProvideAccessControl(cfg)
@@ -1731,16 +1733,14 @@ func TestFolderServiceGetFolder(t *testing.T) {
}
func TestFolderServiceGetFolders(t *testing.T) {
db := sqlstore.InitTestDB(t)
db, cfg := sqlstore.InitTestDB(t)
quotaService := quotatest.New(false, nil)
folderStore := ProvideDashboardFolderStore(db)
cfg := setting.NewCfg()
featuresFlagOff := featuremgmt.WithFeatures()
dashStore, err := database.ProvideDashboardStore(db, db.Cfg, featuresFlagOff, tagimpl.ProvideService(db), quotaService)
dashStore, err := database.ProvideDashboardStore(db, cfg, featuresFlagOff, tagimpl.ProvideService(db), quotaService)
require.NoError(t, err)
nestedFolderStore := ProvideStore(db, db.Cfg)
nestedFolderStore := ProvideStore(db, cfg)
b := bus.ProvideBus(tracing.InitializeTracerForTest())
ac := acimpl.ProvideAccessControl(cfg)
@@ -1809,7 +1809,7 @@ func TestFolderServiceGetFolders(t *testing.T) {
// TODO replace it with an API test under /pkg/tests/api/folders
// whenever the golang client with get updated to allow filtering child folders by permission
func TestGetChildrenFilterByPermission(t *testing.T) {
db := sqlstore.InitTestDB(t)
db, cfg := sqlstore.InitTestDB(t)
signedInAdminUser := user.SignedInUser{UserID: 1, OrgID: orgID, Permissions: map[int64]map[string][]string{
orgID: {
@@ -1822,12 +1822,10 @@ func TestGetChildrenFilterByPermission(t *testing.T) {
quotaService := quotatest.New(false, nil)
folderStore := ProvideDashboardFolderStore(db)
cfg := setting.NewCfg()
featuresFlagOff := featuremgmt.WithFeatures()
dashStore, err := database.ProvideDashboardStore(db, db.Cfg, featuresFlagOff, tagimpl.ProvideService(db), quotaService)
dashStore, err := database.ProvideDashboardStore(db, cfg, featuresFlagOff, tagimpl.ProvideService(db), quotaService)
require.NoError(t, err)
nestedFolderStore := ProvideStore(db, db.Cfg)
nestedFolderStore := ProvideStore(db, cfg)
b := bus.ProvideBus(tracing.InitializeTracerForTest())
ac := acimpl.ProvideAccessControl(cfg)
+24 -24
View File
@@ -31,10 +31,10 @@ func TestIntegrationCreate(t *testing.T) {
t.Skip("skipping integration test")
}
db := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, db.Cfg)
db, cfg := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, cfg)
orgID := CreateOrg(t, db, db.Cfg)
orgID := CreateOrg(t, db, cfg)
t.Run("creating a folder without providing a UID should fail", func(t *testing.T) {
_, err := folderStore.Create(context.Background(), folder.CreateFolderCommand{
@@ -151,10 +151,10 @@ func TestIntegrationDelete(t *testing.T) {
t.Skip("skipping integration test")
}
db := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, db.Cfg)
db, cfg := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, cfg)
orgID := CreateOrg(t, db, db.Cfg)
orgID := CreateOrg(t, db, cfg)
/*
t.Run("attempt to delete unknown folder should fail", func(t *testing.T) {
@@ -198,10 +198,10 @@ func TestIntegrationUpdate(t *testing.T) {
t.Skip("skipping integration test")
}
db := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, db.Cfg)
db, cfg := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, cfg)
orgID := CreateOrg(t, db, db.Cfg)
orgID := CreateOrg(t, db, cfg)
// create parent folder
parent, err := folderStore.Create(context.Background(), folder.CreateFolderCommand{
@@ -373,10 +373,10 @@ func TestIntegrationGet(t *testing.T) {
t.Skip("skipping integration test")
}
db := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, db.Cfg)
db, cfg := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, cfg)
orgID := CreateOrg(t, db, db.Cfg)
orgID := CreateOrg(t, db, cfg)
// create folder
uid1 := util.GenerateShortUID()
@@ -490,10 +490,10 @@ func TestIntegrationGetParents(t *testing.T) {
t.Skip("skipping integration test")
}
db := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, db.Cfg)
db, cfg := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, cfg)
orgID := CreateOrg(t, db, db.Cfg)
orgID := CreateOrg(t, db, cfg)
// create folder
uid1 := util.GenerateShortUID()
@@ -558,10 +558,10 @@ func TestIntegrationGetChildren(t *testing.T) {
t.Skip("skipping integration test")
}
db := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, db.Cfg)
db, cfg := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, cfg)
orgID := CreateOrg(t, db, db.Cfg)
orgID := CreateOrg(t, db, cfg)
// create folder
uid1 := util.GenerateShortUID()
@@ -738,10 +738,10 @@ func TestIntegrationGetHeight(t *testing.T) {
t.Skip("skipping integration test")
}
db := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, db.Cfg)
db, cfg := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, cfg)
orgID := CreateOrg(t, db, db.Cfg)
orgID := CreateOrg(t, db, cfg)
// create folder
uid1 := util.GenerateShortUID()
@@ -771,10 +771,10 @@ func TestIntegrationGetFolders(t *testing.T) {
}
foldersNum := 10
db := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, db.Cfg)
db, cfg := sqlstore.InitTestDB(t)
folderStore := ProvideStore(db, cfg)
orgID := CreateOrg(t, db, db.Cfg)
orgID := CreateOrg(t, db, cfg)
// create folders
uids := make([]string, 0)