2024-03-28 23:04:22 -07:00
|
|
|
package gcsql
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
2024-04-01 11:27:41 -07:00
|
|
|
"github.com/DATA-DOG/go-sqlmock"
|
2024-03-28 23:04:22 -07:00
|
|
|
"github.com/gochan-org/gochan/pkg/config"
|
2024-03-30 22:07:38 -07:00
|
|
|
"github.com/gochan-org/gochan/pkg/gcutil/testutil"
|
2024-03-28 23:04:22 -07:00
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
2024-03-30 12:02:15 -07:00
|
|
|
var (
|
|
|
|
testingDBDrivers = []string{"mysql", "postgres", "sqlite3"}
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestProvision(t *testing.T) {
|
2024-03-30 22:07:38 -07:00
|
|
|
_, err := testutil.GoToGochanRoot(t)
|
2024-03-28 23:04:22 -07:00
|
|
|
if !assert.NoError(t, err) {
|
|
|
|
return
|
|
|
|
}
|
2024-10-13 23:18:29 -07:00
|
|
|
config.SetVersion("4.0.0")
|
2024-03-28 23:04:22 -07:00
|
|
|
config.SetRandomSeed("test")
|
|
|
|
|
2024-03-30 12:02:15 -07:00
|
|
|
for _, driver := range testingDBDrivers {
|
|
|
|
t.Run(driver, func(t *testing.T) {
|
|
|
|
config.SetTestDBConfig(driver, "localhost", "gochan", "gochan", "gochan", "")
|
2024-03-28 23:04:22 -07:00
|
|
|
|
2024-05-31 14:43:35 -07:00
|
|
|
gcdb, err = setupDBConn(setupSqlTestConfig(driver, "gochan", ""))
|
2024-03-30 12:02:15 -07:00
|
|
|
if !assert.NoError(t, err) {
|
|
|
|
return
|
|
|
|
}
|
2024-03-28 23:04:22 -07:00
|
|
|
|
2024-04-01 11:27:41 -07:00
|
|
|
db, mock, err := sqlmock.New()
|
2024-03-30 12:02:15 -07:00
|
|
|
if !assert.NoError(t, err) {
|
|
|
|
return
|
|
|
|
}
|
2024-04-01 11:27:41 -07:00
|
|
|
if !assert.NoError(t, SetTestingDB(driver, "gochan", "", db)) {
|
|
|
|
return
|
|
|
|
}
|
2024-03-30 12:02:15 -07:00
|
|
|
|
2024-03-30 17:25:19 -07:00
|
|
|
if !assert.NoError(t, setupAndProvisionMockDB(t, mock, driver, "gochan")) {
|
2024-03-30 12:02:15 -07:00
|
|
|
return
|
|
|
|
}
|
|
|
|
closeMock(t, mock)
|
|
|
|
})
|
2024-03-28 23:04:22 -07:00
|
|
|
}
|
|
|
|
}
|