package test import ( "context" "net/http" "testing" xcontainer "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/network" "github.com/docker/go-connections/nat" "github.com/stretchr/testify/require" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/log" "github.com/testcontainers/testcontainers-go/wait" "github.com/xlgmokha/x/pkg/env" "github.com/xlgmokha/x/pkg/x" ) func NewContainer(t *testing.T, ctx context.Context, envVars map[string]string) *testcontainers.DockerContainer { require.Equal(t, http.StatusOK, HttpGet(t, ctx, envVars["OIDC_ISSUER"]+"/.well-known/openid-configuration").StatusCode) container, err := testcontainers.Run( ctx, env.Fetch("IMAGE_TAG", "sparkled:invalid"), testcontainers.WithEnv(envVars), testcontainers.WithLogConsumers(&Logger{TB: t}), testcontainers.WithLogger(log.TestLogger(t)), testcontainers.WithWaitStrategy( wait.ForListeningPort(x.Must(nat.NewPort("tcp", "10000"))), ), testcontainers.WithHostConfigModifier(func(cfg *xcontainer.HostConfig) { cfg.NetworkMode = xcontainer.NetworkMode(network.NetworkHost) }), // testcontainers.WithExposedPorts("10000/tcp"), // testcontainers.WithHostPortAccess(port), ) require.NoError(t, err) return container }