2024-02-24 06:57:09 +00:00
|
|
|
package port_test
|
2024-01-10 06:39:09 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"flag"
|
|
|
|
"log"
|
|
|
|
"os"
|
|
|
|
"testing"
|
|
|
|
|
2024-01-14 10:04:17 +00:00
|
|
|
"gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
|
2024-01-10 06:39:09 +00:00
|
|
|
"gitea.dwysokinski.me/twhelp/corev3/internal/watermill/watermillamqptest"
|
|
|
|
"github.com/ory/dockertest/v3"
|
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
2024-01-14 10:04:17 +00:00
|
|
|
postgres *buntest.Postgres
|
2024-01-10 06:39:09 +00:00
|
|
|
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
|
|
|
|
}
|
|
|
|
|
2024-01-14 10:04:17 +00:00
|
|
|
postgres, err = buntest.NewPostgres(pool, buntest.WithPostgresTTL(180))
|
2024-01-10 06:39:09 +00:00
|
|
|
if err != nil {
|
2024-03-14 06:03:55 +00:00
|
|
|
log.Println("couldn't construct buntest.Postgres:", err)
|
2024-01-10 06:39:09 +00:00
|
|
|
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()
|
|
|
|
}
|