diff options
Diffstat (limited to 'test/integration')
| -rw-r--r-- | test/integration/container.go | 5 | ||||
| -rw-r--r-- | test/integration/container_test.go | 77 | ||||
| -rw-r--r-- | test/integration/ui.go | 33 |
3 files changed, 1 insertions, 114 deletions
diff --git a/test/integration/container.go b/test/integration/container.go index c8149b5..c5b3238 100644 --- a/test/integration/container.go +++ b/test/integration/container.go @@ -26,14 +26,11 @@ func NewContainer(t *testing.T, ctx context.Context, envVars map[string]string) testcontainers.WithLogger(log.TestLogger(t)), testcontainers.WithWaitStrategy( wait.ForListeningPort(x.Must(nat.NewPort("tcp", "10000"))), - wait.ForListeningPort(x.Must(nat.NewPort("tcp", "10003"))), - wait.ForListeningPort(x.Must(nat.NewPort("tcp", "8080"))), - wait.ForListeningPort(x.Must(nat.NewPort("tcp", "9901"))), ), testcontainers.WithHostConfigModifier(func(cfg *xcontainer.HostConfig) { cfg.NetworkMode = xcontainer.NetworkMode(network.NetworkHost) }), - // testcontainers.WithExposedPorts("8080/tcp", "9901/tcp", "10000/tcp", "10003/tcp"), + // testcontainers.WithExposedPorts("10000/tcp"), // testcontainers.WithHostPortAccess(port), ) require.NoError(t, err) diff --git a/test/integration/container_test.go b/test/integration/container_test.go index 68aef6d..99c161d 100644 --- a/test/integration/container_test.go +++ b/test/integration/container_test.go @@ -6,20 +6,14 @@ package test import ( "context" "net/http" - "strconv" "testing" "time" - auth "github.com/envoyproxy/go-control-plane/envoy/service/auth/v3" - "github.com/oauth2-proxy/mockoidc" - playwright "github.com/playwright-community/playwright-go" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/testcontainers/testcontainers-go" "github.com/xlgmokha/x/pkg/env" "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/web" - "google.golang.org/grpc" - "google.golang.org/grpc/credentials/insecure" ) func environmentVariables(srv *web.OIDCServer) map[string]string { @@ -45,20 +39,10 @@ func TestContainer(t *testing.T) { require.True(t, container.IsRunning()) - sparkleEndpoint, err := container.PortEndpoint(ctx, "8080", "http") - require.NoError(t, err) - envoyEndpoint, err := container.PortEndpoint(ctx, "10000", "http") require.NoError(t, err) - envoyAdminEndpoint, err := container.PortEndpoint(ctx, "9901", "http") - require.NoError(t, err) - - authzdEndpoint, err := container.PortEndpoint(ctx, "10003", "") - require.NoError(t, err) - for _, publicPath := range []string{ - envoyAdminEndpoint + "/", envoyEndpoint + "/", envoyEndpoint + "/application.js", envoyEndpoint + "/favicon.ico", @@ -66,71 +50,10 @@ func TestContainer(t *testing.T) { envoyEndpoint + "/health", envoyEndpoint + "/index.html", envoyEndpoint + "/logo.png", - sparkleEndpoint + "/", - sparkleEndpoint + "/favicon.ico", srv.DiscoveryEndpoint(), } { t.Run(publicPath, func(t *testing.T) { assert.Equal(t, http.StatusOK, HttpGet(t, ctx, publicPath).StatusCode) }) } - - t.Run("envoy.yaml", func(t *testing.T) { - response := HttpGet(t, ctx, envoyAdminEndpoint+"/config_dump") - - require.Equal(t, http.StatusOK, response.StatusCode) - body := JSONBody[map[string]interface{}](t, response) - - assert.NotEmpty(t, "listener_0", body["configs"]) - }) - - t.Run("authzd", func(t *testing.T) { - t.Run("responds to a GRPC request", func(t *testing.T) { - connection, err := grpc.NewClient(authzdEndpoint, grpc.WithTransportCredentials(insecure.NewCredentials())) - require.NoError(t, err) - defer connection.Close() - - client := auth.NewAuthorizationClient(connection) - - response, err := client.Check(t.Context(), &auth.CheckRequest{ - Attributes: &auth.AttributeContext{ - Request: &auth.AttributeContext_Request{ - Http: &auth.AttributeContext_HttpRequest{ - Method: "GET", - Path: "/", - }, - }, - }, - }) - require.NoError(t, err) - assert.NotNil(t, response.GetOkResponse()) - }) - }) - - WithUI(t, func(browser playwright.Browser) { - page, err := browser.NewPage() - require.NoError(t, err) - - t.Run("initiates an OIDC login", func(t *testing.T) { - require.NoError(t, page.Context().ClearCookies()) - response, err := page.Goto(envoyEndpoint + "/") - require.NoError(t, err) - assert.True(t, response.Ok()) - - t.Run("redirects to the OpenID Connect Provider", func(t *testing.T) { - t.Skip() - - code := strconv.FormatInt(time.Now().Unix(), 10) - srv.MockOIDC.QueueUser(mockoidc.DefaultUser()) - srv.MockOIDC.QueueCode(code) - - require.NoError(t, page.GetByText("Login").Click()) - assert.Contains(t, page.URL(), envoyEndpoint+"/callback?code="+code) - - content, err := page.Content() - require.NoError(t, err) - assert.Contains(t, content, "Share your gratitude") - }) - }) - }) } diff --git a/test/integration/ui.go b/test/integration/ui.go deleted file mode 100644 index 1af0744..0000000 --- a/test/integration/ui.go +++ /dev/null @@ -1,33 +0,0 @@ -package test - -import ( - "testing" - - playwright "github.com/playwright-community/playwright-go" - "github.com/stretchr/testify/require" - "github.com/xlgmokha/x/pkg/env" - "github.com/xlgmokha/x/pkg/x" -) - -func WithUI(t *testing.T, callback x.Visitor[playwright.Browser]) { - t.Run("UI", func(t *testing.T) { - if isGitlabCI(t) { - t.Skip() - } - _ = playwright.Install() - - driver, err := playwright.Run() - require.NoError(t, err) - - browser, err := driver.Firefox.Launch(playwright.BrowserTypeLaunchOptions{ - Headless: playwright.Bool(env.Fetch("HEADLESS", "true") == "true"), - SlowMo: playwright.Float(1000), - }) - require.NoError(t, err) - - defer browser.Close() - defer driver.Stop() - - callback(browser) - }) -} |
