package testutils import ( "sync" "testing" "git.gocasts.ir/ebhomengo/niki/repository/migrator" "git.gocasts.ir/ebhomengo/niki/repository/mysql" //nolint _ "github.com/go-sql-driver/mysql" ) var once = sync.Once{} const port = 3305 func MySQLTestConfig() mysql.Config { return mysql.Config{ Username: "testuser", Password: "test1234", Port: port, Host: "localhost", DBName: "test_db", } } func Setup(t *testing.T) *mysql.DB { t.Helper() // connect to mysql database config := MySQLTestConfig() once.Do(func() { mgr := migrator.New(config) mgr.Up() }) mysqlRepo := mysql.New(config) return mysqlRepo }