Access Control: Add test flag to enable access control (#46780)
* Add feature flags options to test db
This commit is contained in:
@@ -460,6 +460,7 @@ var testSQLStoreMutex sync.Mutex
|
||||
type InitTestDBOpt struct {
|
||||
// EnsureDefaultOrgAndUser flags whether to ensure that default org and user exist.
|
||||
EnsureDefaultOrgAndUser bool
|
||||
FeatureFlags []string
|
||||
}
|
||||
|
||||
var featuresEnabledDuringTests = []string{
|
||||
@@ -490,13 +491,22 @@ func InitTestDB(t ITestDB, opts ...InitTestDBOpt) *SQLStore {
|
||||
func initTestDB(migration registry.DatabaseMigrator, opts ...InitTestDBOpt) (*SQLStore, error) {
|
||||
testSQLStoreMutex.Lock()
|
||||
defer testSQLStoreMutex.Unlock()
|
||||
|
||||
if len(opts) == 0 {
|
||||
opts = []InitTestDBOpt{{EnsureDefaultOrgAndUser: false, FeatureFlags: []string{}}}
|
||||
}
|
||||
|
||||
features := make([]string, len(featuresEnabledDuringTests))
|
||||
copy(features, featuresEnabledDuringTests)
|
||||
for _, opt := range opts {
|
||||
if len(opt.FeatureFlags) > 0 {
|
||||
features = append(features, opt.FeatureFlags...)
|
||||
}
|
||||
}
|
||||
|
||||
if testSQLStore == nil {
|
||||
dbType := migrator.SQLite
|
||||
|
||||
if len(opts) == 0 {
|
||||
opts = []InitTestDBOpt{{EnsureDefaultOrgAndUser: false}}
|
||||
}
|
||||
|
||||
// environment variable present for test db?
|
||||
if db, present := os.LookupEnv("GRAFANA_TEST_DB"); present {
|
||||
dbType = db
|
||||
@@ -504,13 +514,12 @@ func initTestDB(migration registry.DatabaseMigrator, opts ...InitTestDBOpt) (*SQ
|
||||
|
||||
// set test db config
|
||||
cfg := setting.NewCfg()
|
||||
cfg.IsFeatureToggleEnabled = func(requestedFeature string) bool {
|
||||
for _, enabledFeature := range featuresEnabledDuringTests {
|
||||
if enabledFeature == requestedFeature {
|
||||
cfg.IsFeatureToggleEnabled = func(key string) bool {
|
||||
for _, enabledFeature := range features {
|
||||
if enabledFeature == key {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
sec, err := cfg.Raw.NewSection("database")
|
||||
@@ -520,7 +529,6 @@ func initTestDB(migration registry.DatabaseMigrator, opts ...InitTestDBOpt) (*SQ
|
||||
if _, err := sec.NewKey("type", dbType); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
switch dbType {
|
||||
case "mysql":
|
||||
if _, err := sec.NewKey("connection_string", sqlutil.MySQLTestDB().ConnStr); err != nil {
|
||||
@@ -587,6 +595,15 @@ func initTestDB(migration registry.DatabaseMigrator, opts ...InitTestDBOpt) (*SQ
|
||||
return testSQLStore, nil
|
||||
}
|
||||
|
||||
testSQLStore.Cfg.IsFeatureToggleEnabled = func(key string) bool {
|
||||
for _, enabledFeature := range features {
|
||||
if enabledFeature == key {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
if err := dialect.TruncateDBTables(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user