Unified Storage: Testing For Fix Create, Update and Delete wrt Resource Versions (#88568)

Add testing harness
This commit is contained in:
Diego Augusto Molina
2024-06-05 15:18:33 -03:00
committed by GitHub
parent 6fcd7d9e03
commit 5fc580b401
66 changed files with 4416 additions and 322 deletions
@@ -1,49 +1,92 @@
package dbimpl
import (
"strings"
"testing"
"github.com/grafana/grafana/pkg/setting"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestGetEnginePostgresFromConfig(t *testing.T) {
cfg := setting.NewCfg()
s, err := cfg.Raw.NewSection("entity_api")
require.NoError(t, err)
s.Key("db_type").SetValue("mysql")
s.Key("db_host").SetValue("localhost")
s.Key("db_name").SetValue("grafana")
s.Key("db_user").SetValue("user")
s.Key("db_password").SetValue("password")
getter := &sectionGetter{
DynamicSection: cfg.SectionWithEnvOverrides("entity_api"),
}
engine, err := getEnginePostgres(getter, nil)
assert.NotNil(t, engine)
assert.NoError(t, err)
assert.True(t, strings.Contains(engine.DataSourceName(), "dbname=grafana"))
}
func TestGetEngineMySQLFromConfig(t *testing.T) {
cfg := setting.NewCfg()
s, err := cfg.Raw.NewSection("entity_api")
require.NoError(t, err)
s.Key("db_type").SetValue("mysql")
s.Key("db_host").SetValue("localhost")
s.Key("db_name").SetValue("grafana")
s.Key("db_user").SetValue("user")
s.Key("db_password").SetValue("password")
t.Parallel()
getter := &sectionGetter{
DynamicSection: cfg.SectionWithEnvOverrides("entity_api"),
}
engine, err := getEngineMySQL(getter, nil)
t.Run("happy path", func(t *testing.T) {
t.Parallel()
assert.NotNil(t, engine)
assert.NoError(t, err)
getter := newTestSectionGetter(map[string]string{
"db_type": "mysql",
"db_host": "/var/run/mysql.socket",
"db_name": "grafana",
"db_user": "user",
"db_password": "password",
})
engine, err := getEngineMySQL(getter, nil)
assert.NotNil(t, engine)
assert.NoError(t, err)
})
t.Run("invalid string", func(t *testing.T) {
t.Parallel()
getter := newTestSectionGetter(map[string]string{
"db_type": "mysql",
"db_host": "/var/run/mysql.socket",
"db_name": string(invalidUTF8ByteSequence),
"db_user": "user",
"db_password": "password",
})
engine, err := getEngineMySQL(getter, nil)
assert.Nil(t, engine)
assert.Error(t, err)
assert.ErrorIs(t, err, ErrInvalidUTF8Sequence)
})
}
func TestGetEnginePostgresFromConfig(t *testing.T) {
t.Parallel()
t.Run("happy path", func(t *testing.T) {
t.Parallel()
getter := newTestSectionGetter(map[string]string{
"db_type": "mysql",
"db_host": "localhost",
"db_name": "grafana",
"db_user": "user",
"db_password": "password",
})
engine, err := getEnginePostgres(getter, nil)
assert.NotNil(t, engine)
assert.NoError(t, err)
})
t.Run("invalid string", func(t *testing.T) {
t.Parallel()
getter := newTestSectionGetter(map[string]string{
"db_type": "mysql",
"db_host": string(invalidUTF8ByteSequence),
"db_name": "grafana",
"db_user": "user",
"db_password": "password",
})
engine, err := getEnginePostgres(getter, nil)
assert.Nil(t, engine)
assert.Error(t, err)
assert.ErrorIs(t, err, ErrInvalidUTF8Sequence)
})
t.Run("invalid hostport", func(t *testing.T) {
t.Parallel()
getter := newTestSectionGetter(map[string]string{
"db_type": "mysql",
"db_host": "1:1:1",
"db_name": "grafana",
"db_user": "user",
"db_password": "password",
})
engine, err := getEnginePostgres(getter, nil)
assert.Nil(t, engine)
assert.Error(t, err)
})
}