summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/integration/container.go46
1 files changed, 26 insertions, 20 deletions
diff --git a/test/integration/container.go b/test/integration/container.go
index c9284dc..0f77ff8 100644
--- a/test/integration/container.go
+++ b/test/integration/container.go
@@ -3,6 +3,9 @@ package test
import (
"context"
"net/http"
+ "net/url"
+ "strconv"
+ "strings"
"testing"
"time"
@@ -14,37 +17,40 @@ import (
"github.com/xlgmokha/x/pkg/env"
)
-// func normalizeIssuer(t *testing.T, issuer string) (string, int) {
-// for _, loopback := range []string{"0.0.0.0", "127.0.0.1", "[::]", "localhost"} {
-// issuer = strings.Replace(issuer, loopback, testcontainers.HostInternal, 1)
-// }
+func normalizeIssuer(t *testing.T, issuer string) (string, int) {
+ for _, loopback := range []string{"0.0.0.0", "127.0.0.1", "[::]", "localhost"} {
+ issuer = strings.Replace(issuer, loopback, testcontainers.HostInternal, 1)
+ }
-// u, err := url.Parse(issuer)
-// require.NoError(t, err)
-// port, err := strconv.Atoi(u.Port())
-// require.NoError(t, err)
+ u, err := url.Parse(issuer)
+ require.NoError(t, err)
+ port, err := strconv.Atoi(u.Port())
+ require.NoError(t, err)
-// return issuer, port
-// }
+ return issuer, port
+}
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)
- // issuer, port := normalizeIssuer(t, envVars["OIDC_ISSUER"])
- // envVars["OIDC_ISSUER"] = issuer
- // t.Logf("issuer: %v, port: %v\n", issuer, port)
+ issuer, port := normalizeIssuer(t, envVars["OIDC_ISSUER"])
+ envVars["OIDC_ISSUER"] = issuer
+ t.Logf("issuer: %v, port: %v\n", issuer, port)
- container, err := testcontainers.Run(
- ctx,
- env.Fetch("IMAGE_TAG", "sparkled:invalid"),
+ container, err := testcontainers.Run(ctx, env.Fetch("IMAGE_TAG", "sparkled:invalid"), containerOptions(t, envVars)...)
+ require.NoError(t, err)
+ return container
+}
+
+func containerOptions(t *testing.T, envVars map[string]string) []testcontainers.ContainerCustomizer {
+ return []testcontainers.ContainerCustomizer{
testcontainers.WithEnv(envVars),
// testcontainers.WithExposedPorts("8080/tcp", "9901/tcp", "10000/tcp"),
+ // testcontainers.WithHostPortAccess(port),
testcontainers.WithHostConfigModifier(func(cfg *xcontainer.HostConfig) {
cfg.NetworkMode = xcontainer.NetworkMode(network.NetworkHost)
}),
testcontainers.WithLogConsumers(&LogConsumer{t: t}),
- testcontainers.WithWaitStrategy(wait.ForLog("Listening on").WithStartupTimeout(10*time.Second)),
- )
- require.NoError(t, err)
- return container
+ testcontainers.WithWaitStrategy(wait.ForLog("Listening on").WithStartupTimeout(10 * time.Second)),
+ }
}