mirror of
https://github.com/Eggbertx/gochan.git
synced 2025-08-26 18:56:24 -07:00
Add public function to gcsql for SQL mock access
This commit is contained in:
parent
8be391ba5c
commit
9fe6df52ee
5 changed files with 105 additions and 59 deletions
|
@ -8,6 +8,7 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/DATA-DOG/go-sqlmock"
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
_ "github.com/lib/pq"
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
|
@ -388,6 +389,33 @@ func setupDBConn(cfg *config.SQLConfig) (db *GCDB, err error) {
|
|||
return db, nil
|
||||
}
|
||||
|
||||
func setupSqlTestConfig(dbDriver string, dbName string, dbPrefix string) *config.SQLConfig {
|
||||
return &config.SQLConfig{
|
||||
DBtype: dbDriver,
|
||||
DBhost: "localhost",
|
||||
DBname: dbName,
|
||||
DBusername: "gochan",
|
||||
DBpassword: "gochan",
|
||||
DBprefix: dbPrefix,
|
||||
DBTimeoutSeconds: config.DefaultSQLTimeout,
|
||||
DBMaxOpenConnections: config.DefaultSQLMaxConns,
|
||||
DBMaxIdleConnections: config.DefaultSQLMaxConns,
|
||||
DBConnMaxLifetimeMin: config.DefaultSQLConnMaxLifetimeMin,
|
||||
}
|
||||
}
|
||||
|
||||
func SetupMockDB(driver string) (sqlmock.Sqlmock, error) {
|
||||
var err error
|
||||
gcdb, err = setupDBConn(setupSqlTestConfig(driver, "gochan", ""))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var mock sqlmock.Sqlmock
|
||||
gcdb.db, mock, err = sqlmock.New()
|
||||
|
||||
return mock, err
|
||||
}
|
||||
|
||||
// Open opens and returns a new gochan database connection with the provided host, driver, DB name,
|
||||
// username, password, and table prefix
|
||||
func Open(cfg *config.SQLConfig) (db *GCDB, err error) {
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/DATA-DOG/go-sqlmock"
|
||||
"github.com/gochan-org/gochan/pkg/config"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
|
@ -19,24 +18,9 @@ func closeMock(t *testing.T, mock sqlmock.Sqlmock) {
|
|||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func setupSQLConfig(dbDriver string, dbName string, dbPrefix string) *config.SQLConfig {
|
||||
return &config.SQLConfig{
|
||||
DBtype: dbDriver,
|
||||
DBhost: "localhost",
|
||||
DBname: dbName,
|
||||
DBusername: "gochan",
|
||||
DBpassword: "gochan",
|
||||
DBprefix: dbPrefix,
|
||||
DBTimeoutSeconds: config.DefaultSQLTimeout,
|
||||
DBMaxOpenConnections: config.DefaultSQLMaxConns,
|
||||
DBMaxIdleConnections: config.DefaultSQLMaxConns,
|
||||
DBConnMaxLifetimeMin: config.DefaultSQLConnMaxLifetimeMin,
|
||||
}
|
||||
}
|
||||
|
||||
func TestOpenMySQL(t *testing.T) {
|
||||
var err error
|
||||
gcdb, err = setupDBConn(setupSQLConfig("mysql", "gochan", ""))
|
||||
gcdb, err = setupDBConn(setupSqlTestConfig("mysql", "gochan", ""))
|
||||
if !assert.NoError(t, err) {
|
||||
return
|
||||
}
|
||||
|
@ -49,7 +33,7 @@ func TestOpenMySQL(t *testing.T) {
|
|||
|
||||
func TestOpenPostgres(t *testing.T) {
|
||||
var err error
|
||||
gcdb, err = setupDBConn(setupSQLConfig("postgres", "gochan", ""))
|
||||
gcdb, err = setupDBConn(setupSqlTestConfig("postgres", "gochan", ""))
|
||||
if !assert.NoError(t, err) {
|
||||
return
|
||||
}
|
||||
|
@ -62,7 +46,7 @@ func TestOpenPostgres(t *testing.T) {
|
|||
|
||||
func TestOpenSQLite3(t *testing.T) {
|
||||
var err error
|
||||
gcdb, err = setupDBConn(setupSQLConfig("sqlite3", "gochan", ""))
|
||||
gcdb, err = setupDBConn(setupSqlTestConfig("sqlite3", "gochan", ""))
|
||||
if !assert.NoError(t, err) {
|
||||
return
|
||||
}
|
||||
|
@ -75,6 +59,6 @@ func TestOpenSQLite3(t *testing.T) {
|
|||
|
||||
func TestOpenUnrecognizedDriver(t *testing.T) {
|
||||
assert.NoError(t, Close())
|
||||
_, err := setupDBConn(setupSQLConfig("wat", "gochan", ""))
|
||||
_, err := setupDBConn(setupSqlTestConfig("wat", "gochan", ""))
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ func TestProvision(t *testing.T) {
|
|||
t.Run(driver, func(t *testing.T) {
|
||||
config.SetTestDBConfig(driver, "localhost", "gochan", "gochan", "gochan", "")
|
||||
|
||||
gcdb, err = setupDBConn(setupSQLConfig(driver, "gochan", ""))
|
||||
gcdb, err = setupDBConn(setupSqlTestConfig(driver, "gochan", ""))
|
||||
if !assert.NoError(t, err) {
|
||||
return
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue