Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 12 additions & 11 deletions test/e2e/config_sync_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,14 +116,15 @@ func isConfigDiffResult(stdout, stderr string) bool {
func TestConfigSync_DryRun(t *testing.T) {
env := setupEnv(t)

svcID := "e2e-sync-dryrun-svc"
svcID := uniqueResourceID("e2e-sync-dryrun-svc")
routeID := uniqueResourceID("e2e-sync-dryrun-route")
createTestServiceViaCLI(t, env, svcID)
t.Cleanup(func() { deleteServiceViaAdmin(t, svcID) })

syncYAML := fmt.Sprintf(`version: "1"
routes:
- id: e2e-sync-dryrun-route
name: e2e-sync-dryrun-route
- id: %s
name: %s
service_id: %s
paths:
- /sync-dryrun
Expand All @@ -133,21 +134,21 @@ routes:
- host: "127.0.0.1"
port: 8080
weight: 1
`, svcID)
`, routeID, routeID, svcID)
tmpFile := filepath.Join(t.TempDir(), "sync-dryrun.yaml")
require.NoError(t, os.WriteFile(tmpFile, []byte(syncYAML), 0644))

stdout, stderr, err := runA7WithEnv(env, "config", "sync", "-f", tmpFile, "--dry-run", "-g", gatewayGroup)
require.NoError(t, err, "stdout=%s stderr=%s", stdout, stderr)

_, _, getErr := runA7WithEnv(env, "route", "get", "e2e-sync-dryrun-route", "-g", gatewayGroup)
_, _, getErr := runA7WithEnv(env, "route", "get", routeID, "-g", gatewayGroup)
assert.Error(t, getErr, "dry-run should not create resources")
}

func TestConfigSync_CreateAndCleanup(t *testing.T) {
env := setupEnv(t)
svcID := "e2e-sync-create-svc"
routeID := "e2e-sync-create-route"
svcID := uniqueResourceID("e2e-sync-create-svc")
routeID := uniqueResourceID("e2e-sync-create-route")
createTestServiceViaCLI(t, env, svcID)
t.Cleanup(func() {
deleteRouteViaAdmin(t, routeID)
Expand Down Expand Up @@ -197,8 +198,8 @@ routes:

func TestConfigSync_DeleteFalse(t *testing.T) {
env := setupEnv(t)
svcID := "e2e-sync-nodelete-svc"
routeID := "e2e-sync-nodelete-route"
svcID := uniqueResourceID("e2e-sync-nodelete-svc")
routeID := uniqueResourceID("e2e-sync-nodelete-route")
createTestServiceViaCLI(t, env, svcID)
t.Cleanup(func() {
deleteRouteViaAdmin(t, routeID)
Expand All @@ -222,8 +223,8 @@ func TestConfigSync_DeleteFalse(t *testing.T) {

func TestConfigSync_FullRoundtrip(t *testing.T) {
env := setupEnv(t)
svcID := "e2e-sync-roundtrip-svc"
routeID := "e2e-sync-roundtrip-route"
svcID := uniqueResourceID("e2e-sync-roundtrip-svc")
routeID := uniqueResourceID("e2e-sync-roundtrip-route")
createTestServiceViaCLI(t, env, svcID)
t.Cleanup(func() {
deleteRouteViaAdmin(t, routeID)
Expand Down
12 changes: 10 additions & 2 deletions test/e2e/setup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import (
"path/filepath"
"reflect"
"strings"
"sync/atomic"
"testing"
"time"

Expand All @@ -53,6 +54,8 @@ var (
},
Timeout: 30 * time.Second,
}

e2eResourceCounter uint64
)

func commandTimeout(args []string) time.Duration {
Expand Down Expand Up @@ -292,18 +295,23 @@ func setupEnv(t testTB) []string {
env := []string{
"A7_CONFIG_DIR=" + t.TempDir(),
}
_, _, err := runA7WithEnv(env, "context", "create", "test",
stdout, stderr, err := runA7WithEnv(env, "context", "create", "test",
"--server", adminURL,
"--token", adminToken,
"--gateway-group", gatewayGroup,
"--tls-skip-verify",
"--skip-validation",
)
if err != nil {
t.Fatalf("failed to create test context: %v", err)
t.Fatalf("failed to create test context: %v stdout=%s stderr=%s", err, stdout, stderr)
}
return env
}

func uniqueResourceID(prefix string) string {
return fmt.Sprintf("%s-%x-%x-%x", prefix, time.Now().UnixNano(), os.Getpid(), atomic.AddUint64(&e2eResourceCounter, 1))
}

// envOrDefault returns the value of the environment variable named by key,
// or fallback if the variable is not set or empty.
func envOrDefault(key, fallback string) string {
Expand Down
Loading