summaryrefslogtreecommitdiff
path: root/test/integration
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration')
-rw-r--r--test/integration/container.go5
-rw-r--r--test/integration/container_test.go77
-rw-r--r--test/integration/ui.go33
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)
- })
-}