42 lines
738 B
Go
42 lines
738 B
Go
|
package test
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"os"
|
||
|
"path"
|
||
|
"runtime"
|
||
|
"testing"
|
||
|
|
||
|
db_ "git.ekzyis.com/ekzyis/delphi.market/db"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
dbName string = "delphi_test"
|
||
|
dbUrl string = fmt.Sprintf("postgres://delphi:delphi@localhost:5432/%s?sslmode=disable", dbName)
|
||
|
)
|
||
|
|
||
|
func Init(db **db_.DB) {
|
||
|
// for ParseTemplates to work, cwd needs to be project root
|
||
|
_, filename, _, _ := runtime.Caller(0)
|
||
|
dir := path.Join(path.Dir(filename), "../")
|
||
|
err := os.Chdir(dir)
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
*db, err = db_.New(dbUrl)
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func Main(m *testing.M, db *db_.DB) {
|
||
|
if err := db.Reset(dbName); err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
retCode := m.Run()
|
||
|
if err := db.Clear(dbName); err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
os.Exit(retCode)
|
||
|
}
|