101 lines
2.3 KiB
Go
101 lines
2.3 KiB
Go
package database
|
|
|
|
// import (
|
|
// "context"
|
|
// "log"
|
|
// "testing"
|
|
// "time"
|
|
|
|
// "github.com/testcontainers/testcontainers-go"
|
|
// "github.com/testcontainers/testcontainers-go/modules/postgres"
|
|
// "github.com/testcontainers/testcontainers-go/wait"
|
|
// )
|
|
|
|
// func mustStartPostgresContainer() (func(context.Context, ...testcontainers.TerminateOption) error, error) {
|
|
// var (
|
|
// dbName = "database"
|
|
// dbPwd = "password"
|
|
// dbUser = "user"
|
|
// )
|
|
|
|
// dbContainer, err := postgres.Run(
|
|
// context.Background(),
|
|
// "postgres:latest",
|
|
// postgres.WithDatabase(dbName),
|
|
// postgres.WithUsername(dbUser),
|
|
// postgres.WithPassword(dbPwd),
|
|
// testcontainers.WithWaitStrategy(
|
|
// wait.ForLog("database system is ready to accept connections").
|
|
// WithOccurrence(2).
|
|
// WithStartupTimeout(5*time.Second)),
|
|
// )
|
|
// if err != nil {
|
|
// return nil, err
|
|
// }
|
|
|
|
// database = dbName
|
|
// password = dbPwd
|
|
// username = dbUser
|
|
|
|
// dbHost, err := dbContainer.Host(context.Background())
|
|
// if err != nil {
|
|
// return dbContainer.Terminate, err
|
|
// }
|
|
|
|
// dbPort, err := dbContainer.MappedPort(context.Background(), "5432/tcp")
|
|
// if err != nil {
|
|
// return dbContainer.Terminate, err
|
|
// }
|
|
|
|
// host = dbHost
|
|
// port = dbPort.Port()
|
|
|
|
// return dbContainer.Terminate, err
|
|
// }
|
|
|
|
// func TestMain(m *testing.M) {
|
|
// teardown, err := mustStartPostgresContainer()
|
|
// if err != nil {
|
|
// log.Fatalf("could not start postgres container: %v", err)
|
|
// }
|
|
|
|
// m.Run()
|
|
|
|
// if teardown != nil && teardown(context.Background()) != nil {
|
|
// log.Fatalf("could not teardown postgres container: %v", err)
|
|
// }
|
|
// }
|
|
|
|
// func TestNew(t *testing.T) {
|
|
// srv := New()
|
|
// if srv == nil {
|
|
// t.Fatal("New() returned nil")
|
|
// }
|
|
// }
|
|
|
|
// func TestHealth(t *testing.T) {
|
|
// srv := New()
|
|
|
|
// stats := srv.Health()
|
|
|
|
// if stats["status"] != "up" {
|
|
// t.Fatalf("expected status to be up, got %s", stats["status"])
|
|
// }
|
|
|
|
// if _, ok := stats["error"]; ok {
|
|
// t.Fatalf("expected error not to be present")
|
|
// }
|
|
|
|
// if stats["message"] != "It's healthy" {
|
|
// t.Fatalf("expected message to be 'It's healthy', got %s", stats["message"])
|
|
// }
|
|
// }
|
|
|
|
// func TestClose(t *testing.T) {
|
|
// srv := New()
|
|
|
|
// if srv.Close() != nil {
|
|
// t.Fatalf("expected Close() to return nil")
|
|
// }
|
|
// }
|