Remove code duplication and move utility methods to the store utils (#20091)

* Remove code duplication and move utility methods to the store utils

* Fix typo
Этот коммит содержится в:
Miguel de la Cruz
2022-04-29 12:15:38 +02:00
коммит произвёл GitHub
родитель 79a0d3dac4
Коммит c076f9fdf9
6 изменённых файлов: 60 добавлений и 98 удалений

Просмотреть файл

@@ -753,43 +753,6 @@ func TestReplicaLagQuery(t *testing.T) {
}
}
func TestAppendMultipleStatementsFlagMysql(t *testing.T) {
testCases := []struct {
Scenario string
DSN string
ExpectedDSN string
Driver string
}{
{
"Should append multiStatements param to the DSN path with existing params",
"user:rand?&ompasswith@character@unix(/var/run/mysqld/mysqld.sock)/mattermost?writeTimeout=30s",
"user:rand?&ompasswith@character@unix(/var/run/mysqld/mysqld.sock)/mattermost?writeTimeout=30s&multiStatements=true",
model.DatabaseDriverMysql,
},
{
"Should append multiStatements param to the DSN path with no existing params",
"user:rand?&ompasswith@character@unix(/var/run/mysqld/mysqld.sock)/mattermost",
"user:rand?&ompasswith@character@unix(/var/run/mysqld/mysqld.sock)/mattermost?multiStatements=true",
model.DatabaseDriverMysql,
},
{
"Should not multiStatements param to the DSN when driver is not MySQL",
"user:rand?&ompasswith@character@unix(/var/run/mysqld/mysqld.sock)/mattermost",
"user:rand?&ompasswith@character@unix(/var/run/mysqld/mysqld.sock)/mattermost",
model.DatabaseDriverPostgres,
},
}
for _, tc := range testCases {
t.Run(tc.Scenario, func(t *testing.T) {
store := &SqlStore{settings: &model.SqlSettings{DriverName: &tc.Driver, DataSource: &tc.DSN}}
res, err := store.appendMultipleStatementsFlag(*store.settings.DataSource)
require.NoError(t, err)
assert.Equal(t, tc.ExpectedDSN, res)
})
}
}
func makeSqlSettings(driver string) *model.SqlSettings {
switch driver {
case model.DatabaseDriverPostgres: