summaryrefslogtreecommitdiff
path: root/tests/e2e/config_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'tests/e2e/config_test.go')
-rw-r--r--tests/e2e/config_test.go34
1 files changed, 24 insertions, 10 deletions
diff --git a/tests/e2e/config_test.go b/tests/e2e/config_test.go
index e613b13..c8749ce 100644
--- a/tests/e2e/config_test.go
+++ b/tests/e2e/config_test.go
@@ -4,6 +4,7 @@ import (
"fmt"
"os"
"os/exec"
+ "path/filepath"
"strings"
"testing"
)
@@ -14,12 +15,30 @@ func TestConfigPropagation(t *testing.T) {
t.Skipf("Skipping test: %v", err)
}
+ tmpConfigDir := t.TempDir()
tmpRuntimeDir := t.TempDir()
profile := "config-test-vpn"
+ // Write a valid dummy profile for config-test-vpn so it doesn't fail the profile-existence check
+ confContent := `[Interface]
+PrivateKey = YXNkZmFzZGZhc2RmYXNkZmFzZGZhc2RmYXNkZmFzZGY=
+Address = 10.0.0.2/24
+
+[Peer]
+PublicKey = YXNkZmFzZGZhc2RmYXNkZmFzZGZhc2RmYXNkZmFzZGY=
+Endpoint = 127.0.0.1:51820
+AllowedIPs = 10.0.0.0/24
+`
+ profilesDir := filepath.Join(tmpConfigDir, "wg-wrap", "profiles")
+ _ = os.MkdirAll(profilesDir, 0755)
+ _ = os.WriteFile(filepath.Join(profilesDir, profile+".conf"), []byte(confContent), 0644)
+
// Test 1: Non-isolated configuration
cmd := exec.Command(binaryPath, "show-config", "--profile", profile)
- cmd.Env = append(os.Environ(), fmt.Sprintf("XDG_RUNTIME_DIR=%s", tmpRuntimeDir))
+ cmd.Env = append(os.Environ(),
+ fmt.Sprintf("XDG_RUNTIME_DIR=%s", tmpRuntimeDir),
+ fmt.Sprintf("XDG_CONFIG_HOME=%s", tmpConfigDir),
+ )
out, err := cmd.CombinedOutput()
if err != nil {
t.Fatalf("show-config failed: %v\nOutput: %s", err, string(out))
@@ -37,16 +56,11 @@ func TestConfigPropagation(t *testing.T) {
}
// Test 2: Configuration after bootstrap (Isolated)
- // We use 'test-ns' as a way to run a command that we know is isolated.
- // Actually, we can just run 'show-config' but the current 'Route'
- // handles 'show-config' BEFORE the bootstrap.
- // To test isolated config, we can't use 'show-config' because it's a diagnostic
- // command designed to run outside isolation.
-
- // To verify what an isolated process sees, we can use a target command
- // that prints the environment.
cmdIsolated := exec.Command(binaryPath, "--profile", profile, "--", "sh", "-c", "echo $XDG_RUNTIME_DIR")
- cmdIsolated.Env = append(os.Environ(), fmt.Sprintf("XDG_RUNTIME_DIR=%s", tmpRuntimeDir))
+ cmdIsolated.Env = append(os.Environ(),
+ fmt.Sprintf("XDG_RUNTIME_DIR=%s", tmpRuntimeDir),
+ fmt.Sprintf("XDG_CONFIG_HOME=%s", tmpConfigDir),
+ )
outIso, err := cmdIsolated.CombinedOutput()
if err != nil {
t.Fatalf("Isolated command failed: %v\nOutput: %s", err, string(outIso))