package wait

import "github.com/testcontainers/testcontainers-go/wait"

Index

Functions

func ForSQL

func ForSQL(port nat.Port, driver string, url func(nat.Port) string) *waitForSql

ForSQL constructs a new waitForSql strategy for the given driver

Types

type HTTPStrategy

type HTTPStrategy struct {

	// additional properties
	Port              nat.Port
	Path              string
	StatusCodeMatcher func(status int) bool
	UseTLS            bool
	AllowInsecure     bool
	// contains filtered or unexported fields
}

func ForHTTP

func ForHTTP(path string) *HTTPStrategy

ForHTTP is a convenience method similar to Wait.java https://github.com/testcontainers/testcontainers-java/blob/1d85a3834bd937f80aad3a4cec249c027f31aeb4/core/src/main/java/org/testcontainers/containers/wait/strategy/Wait.java

func NewHTTPStrategy

func NewHTTPStrategy(path string) *HTTPStrategy

NewHTTPStrategy constructs a HTTP strategy waiting on port 80 and status code 200

func (*HTTPStrategy) WaitUntilReady

func (ws *HTTPStrategy) WaitUntilReady(ctx context.Context, target StrategyTarget) (err error)

WaitUntilReady implements Strategy.WaitUntilReady

func (*HTTPStrategy) WithAllowInsecure

func (ws *HTTPStrategy) WithAllowInsecure(allowInsecure bool) *HTTPStrategy

func (*HTTPStrategy) WithPort

func (ws *HTTPStrategy) WithPort(port nat.Port) *HTTPStrategy

func (*HTTPStrategy) WithStartupTimeout

func (ws *HTTPStrategy) WithStartupTimeout(startupTimeout time.Duration) *HTTPStrategy

func (*HTTPStrategy) WithStatusCodeMatcher

func (ws *HTTPStrategy) WithStatusCodeMatcher(statusCodeMatcher func(status int) bool) *HTTPStrategy

func (*HTTPStrategy) WithTLS

func (ws *HTTPStrategy) WithTLS(useTLS bool) *HTTPStrategy

type HostPortStrategy

type HostPortStrategy struct {
	Port nat.Port
	// contains filtered or unexported fields
}

func ForListeningPort

func ForListeningPort(port nat.Port) *HostPortStrategy

ForListeningPort is a helper similar to those in Wait.java https://github.com/testcontainers/testcontainers-java/blob/1d85a3834bd937f80aad3a4cec249c027f31aeb4/core/src/main/java/org/testcontainers/containers/wait/strategy/Wait.java

func NewHostPortStrategy

func NewHostPortStrategy(port nat.Port) *HostPortStrategy

NewHostPortStrategy constructs a default host port strategy

func (*HostPortStrategy) WaitUntilReady

func (hp *HostPortStrategy) WaitUntilReady(ctx context.Context, target StrategyTarget) (err error)

WaitUntilReady implements Strategy.WaitUntilReady

func (*HostPortStrategy) WithStartupTimeout

func (hp *HostPortStrategy) WithStartupTimeout(startupTimeout time.Duration) *HostPortStrategy

type LogStrategy

type LogStrategy struct {

	// additional properties
	Log          string
	PollInterval time.Duration
	Occurrence   int
	// contains filtered or unexported fields
}

LogStrategy will wait until a given log entry shows up in the docker logs

func ForLog

func ForLog(log string) *LogStrategy

ForLog is the default construction for the fluid interface.

For Example: wait.

ForLog("some text").
WithPollInterval(1 * time.Second)

func NewLogStrategy

func NewLogStrategy(log string) *LogStrategy

NewLogStrategy constructs a HTTP strategy waiting on port 80 and status code 200

func (*LogStrategy) WaitUntilReady

func (ws *LogStrategy) WaitUntilReady(ctx context.Context, target StrategyTarget) (err error)

WaitUntilReady implements Strategy.WaitUntilReady

func (*LogStrategy) WithOccurrence

func (ws *LogStrategy) WithOccurrence(o int) *LogStrategy

func (*LogStrategy) WithPollInterval

func (ws *LogStrategy) WithPollInterval(pollInterval time.Duration) *LogStrategy

WithPollInterval can be used to override the default polling interval of 100 milliseconds

func (*LogStrategy) WithStartupTimeout

func (ws *LogStrategy) WithStartupTimeout(startupTimeout time.Duration) *LogStrategy

WithStartupTimeout can be used to change the default startup timeout

type MultiStrategy

type MultiStrategy struct {

	// additional properties
	Strategies []Strategy
	// contains filtered or unexported fields
}

func ForAll

func ForAll(strategies ...Strategy) *MultiStrategy

func (*MultiStrategy) WaitUntilReady

func (ms *MultiStrategy) WaitUntilReady(ctx context.Context, target StrategyTarget) (err error)

func (*MultiStrategy) WithStartupTimeout

func (ms *MultiStrategy) WithStartupTimeout(startupTimeout time.Duration) *MultiStrategy

type Strategy

type Strategy interface {
	WaitUntilReady(context.Context, StrategyTarget) error
}

type StrategyTarget

type StrategyTarget interface {
	Host(context.Context) (string, error)
	MappedPort(context.Context, nat.Port) (nat.Port, error)
	Logs(context.Context) (io.ReadCloser, error)
	Exec(ctx context.Context, cmd []string) (int, error)
}

Source Files

host_port.go http.go log.go multi.go sql.go wait.go

Version
v0.3.1
Published
Mar 3, 2020
Platform
js/wasm
Imports
16 packages
Last checked
now

Tools for package owners.