eltest

package module
v0.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 14, 2025 License: MIT Imports: 17 Imported by: 0

README

eltest - Elephant test

Support library for writing elephant tests.

Takes care of setting up Postgres and Minio containers for intergration tests. See tests for usage, and don't miss setting up TestMain() in your own service:

func TestMain(m *testing.M) {
	code := m.Run()

	err := eltest.PurgeBackingServices()
	if err != nil {
		log.Printf("failed to purge backing services: %v", err)
	}

	os.Exit(code)
}

Documentation

Index

Constants

View Source
const (
	Minio202302 = "RELEASE.2023-02-22T18-23-45Z"
	Minio202509 = "RELEASE.2025-09-07T16-13-09Z"
)
View Source
const (
	Postgres15_2 = "15.2"
	Postgres17_6 = "17.6-alpine3.22"
)
View Source
const OpenSearch2_19 = "v2.19.3-2"

Variables

This section is empty.

Functions

func Bootstrap

func Bootstrap[S BackingService](id string, srv S) (S, error)

func BootstrapService added in v0.2.0

func BootstrapService[S BackingService](id string, srv S, localTo T) (S, error)

func Must

func Must(t T, err error, actionFormat string, a ...any)

func PurgeBackingServices

func PurgeBackingServices() error

Types

type BackingService

type BackingService interface {
	SetUp(pool *dockertest.Pool, network *dockertest.Network) error
	Purge(pool *dockertest.Pool) error
}

type Minio

type Minio struct {
	// contains filtered or unexported fields
}

func NewMinio

func NewMinio(t T, tag string) *Minio

func (*Minio) Client

func (m *Minio) Client() (*minio.Client, error)

func (*Minio) CreateBucket

func (m *Minio) CreateBucket(t T, ctx context.Context, prefix string) string

CreateBucket with the given prefix and a suffix based on the test name.

func (*Minio) Environment

func (m *Minio) Environment() MinioEnvironment

func (*Minio) Purge

func (m *Minio) Purge(pool *dockertest.Pool) error

func (*Minio) SetUp

func (m *Minio) SetUp(pool *dockertest.Pool, network *dockertest.Network) error

type MinioEnvironment

type MinioEnvironment struct {
	Endpoint          string
	ContainerEndpoint string
	ID                string
	Secret            string
}

type OpenSearch added in v0.2.0

type OpenSearch struct {
	// contains filtered or unexported fields
}

func NewOpenSearch added in v0.2.0

func NewOpenSearch(t T, tag string) *OpenSearch

func (*OpenSearch) GetContainerEndpoint added in v0.2.2

func (m *OpenSearch) GetContainerEndpoint() string

func (*OpenSearch) GetEndpoint added in v0.2.0

func (m *OpenSearch) GetEndpoint() string

func (*OpenSearch) Purge added in v0.2.0

func (m *OpenSearch) Purge(pool *dockertest.Pool) error

func (*OpenSearch) SetUp added in v0.2.0

func (m *OpenSearch) SetUp(pool *dockertest.Pool, network *dockertest.Network) error

type PGEnvironment

type PGEnvironment struct {
	PostgresURI          string
	ContainerPostgresURI string
	// contains filtered or unexported fields
}

func (*PGEnvironment) Migrator

func (env *PGEnvironment) Migrator(t T, ctx context.Context, conn *pgx.Conn) *migrate.Migrator

type Postgres

type Postgres struct {
	// contains filtered or unexported fields
}

func NewPostgres

func NewPostgres(t T, tag string) *Postgres

func (*Postgres) Database

func (pg *Postgres) Database(
	t T,
	name string,
	migrations fs.FS,
	runMigrations bool,
) PGEnvironment

func (*Postgres) Purge

func (pg *Postgres) Purge(pool *dockertest.Pool) error

func (*Postgres) SetUp

func (pg *Postgres) SetUp(pool *dockertest.Pool, network *dockertest.Network) error

type T

type T interface {
	Name() string
	Helper()
	Fatalf(format string, args ...any)
	Cleanup(fn func())
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL