core/internal/port/port_test.go

57 lines
1.1 KiB
Go

package port_test
import (
"flag"
"log"
"os"
"testing"
"gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
"gitea.dwysokinski.me/twhelp/corev3/internal/watermill/watermillamqptest"
"github.com/ory/dockertest/v3"
)
var (
postgres *buntest.Postgres
rabbitMQ *watermillamqptest.RabbitMQ
)
func TestMain(m *testing.M) {
os.Exit(testMainWrapper(m))
}
func testMainWrapper(m *testing.M) int {
// https://github.com/golang/go/blob/7cfa7d69259590319524c3715df4a39b39924bc3/src/testing/testing.go#L224
flag.Parse()
if testing.Short() {
return m.Run()
}
pool, err := dockertest.NewPool("")
if err != nil {
log.Println("couldn't construct dockertest.Pool:", err)
return 1
}
postgres, err = buntest.NewPostgres(pool, buntest.WithPostgresTTL(180))
if err != nil {
log.Println("couldn't construct adaptertest.Postgres:", err)
return 1
}
defer func() {
_ = postgres.Close()
}()
rabbitMQ, err = watermillamqptest.NewRabbitMQ(pool, watermillamqptest.WithRabbitMQTTL(180))
if err != nil {
log.Println("couldn't construct watermillamqptest.RabbitMQ:", err)
return 1
}
defer func() {
_ = rabbitMQ.Close()
}()
return m.Run()
}