mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-11 14:00:29 +00:00
test: fix config tests failing in CI when /etc/pulse doesn't exist
Tests were calling Load() without setting PULSE_DATA_DIR, causing them to try to create /etc/pulse which fails in CI environments. - Skip TestLoad_Defaults if /etc/pulse doesn't exist - Add PULSE_DATA_DIR to tests that were missing it
This commit is contained in:
@@ -35,6 +35,7 @@ func TestLoad_EnvLoadErrors(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoad_EnvOverrides_Invalid_Extra(t *testing.T) {
|
||||
t.Setenv("PULSE_DATA_DIR", t.TempDir())
|
||||
t.Setenv("BACKUP_POLLING_CYCLES", "-1")
|
||||
t.Setenv("BACKUP_POLLING_INTERVAL", "-5s")
|
||||
t.Setenv("PVE_POLLING_INTERVAL", "5s") // too low
|
||||
@@ -51,6 +52,7 @@ func TestLoad_EnvOverrides_Invalid_Extra(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoad_EnvOverrides_Seconds(t *testing.T) {
|
||||
t.Setenv("PULSE_DATA_DIR", t.TempDir())
|
||||
t.Setenv("BACKUP_POLLING_INTERVAL", "30")
|
||||
t.Setenv("PVE_POLLING_INTERVAL", "45")
|
||||
|
||||
@@ -62,6 +64,7 @@ func TestLoad_EnvOverrides_Seconds(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoad_EnvOverrides_More(t *testing.T) {
|
||||
t.Setenv("PULSE_DATA_DIR", t.TempDir())
|
||||
t.Setenv("PULSE_ENABLE_SENSOR_PROXY", "true")
|
||||
t.Setenv("PULSE_AUTH_HIDE_LOCAL_LOGIN", "true")
|
||||
t.Setenv("PULSE_DISABLE_DOCKER_UPDATE_ACTIONS", "true")
|
||||
@@ -89,6 +92,7 @@ func TestLoad_EnvOverrides_More(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoad_EnvOverrides_AdaptivePolling_Intervals(t *testing.T) {
|
||||
t.Setenv("PULSE_DATA_DIR", t.TempDir())
|
||||
t.Setenv("ADAPTIVE_POLLING_BASE_INTERVAL", "30s")
|
||||
t.Setenv("ADAPTIVE_POLLING_MIN_INTERVAL", "10s")
|
||||
t.Setenv("ADAPTIVE_POLLING_MAX_INTERVAL", "10m")
|
||||
@@ -102,6 +106,7 @@ func TestLoad_EnvOverrides_AdaptivePolling_Intervals(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoad_EnvOverrides_Invalid_Negative(t *testing.T) {
|
||||
t.Setenv("PULSE_DATA_DIR", t.TempDir())
|
||||
t.Setenv("GUEST_METADATA_MIN_REFRESH_INTERVAL", "-1s")
|
||||
t.Setenv("GUEST_METADATA_REFRESH_JITTER", "-500ms")
|
||||
t.Setenv("GUEST_METADATA_RETRY_BACKOFF", "-1s")
|
||||
|
||||
@@ -88,6 +88,7 @@ func TestLoad_MockEnvErrors(t *testing.T) {
|
||||
os.Chdir(tempCWD)
|
||||
defer os.Chdir(cwd)
|
||||
|
||||
t.Setenv("PULSE_DATA_DIR", tempCWD)
|
||||
require.NoError(t, os.WriteFile("mock.env", []byte("invalid="), 0644))
|
||||
require.NoError(t, os.WriteFile("mock.env.local", []byte("invalid="), 0644))
|
||||
|
||||
|
||||
@@ -11,6 +11,12 @@ import (
|
||||
)
|
||||
|
||||
func TestLoad_Defaults(t *testing.T) {
|
||||
// This test requires write access to /etc/pulse (the default data path)
|
||||
// Skip in CI environments where /etc/pulse doesn't exist or isn't writable
|
||||
if _, err := os.Stat("/etc/pulse"); os.IsNotExist(err) {
|
||||
t.Skip("Skipping test: /etc/pulse does not exist (likely CI environment)")
|
||||
}
|
||||
|
||||
// Clear env vars that might affect defaults
|
||||
os.Unsetenv("PULSE_DATA_DIR")
|
||||
os.Unsetenv("PORT")
|
||||
@@ -84,6 +90,8 @@ func TestLoad_APITokens_Migration(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoad_LegacyAPIToken(t *testing.T) {
|
||||
tempDir := t.TempDir()
|
||||
t.Setenv("PULSE_DATA_DIR", tempDir)
|
||||
t.Setenv("API_TOKEN", "legacytoken")
|
||||
|
||||
cfg, err := Load()
|
||||
@@ -115,6 +123,7 @@ func TestLoad_MockEnv(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoad_ProxyAuth(t *testing.T) {
|
||||
t.Setenv("PULSE_DATA_DIR", t.TempDir())
|
||||
t.Setenv("PROXY_AUTH_SECRET", "secret")
|
||||
t.Setenv("PROXY_AUTH_USER_HEADER", "X-User")
|
||||
|
||||
@@ -126,6 +135,7 @@ func TestLoad_ProxyAuth(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoad_OIDC(t *testing.T) {
|
||||
t.Setenv("PULSE_DATA_DIR", t.TempDir())
|
||||
t.Setenv("OIDC_ENABLED", "true")
|
||||
t.Setenv("OIDC_ISSUER_URL", "https://issuer.com")
|
||||
t.Setenv("OIDC_CLIENT_ID", "client-id")
|
||||
@@ -140,6 +150,7 @@ func TestLoad_OIDC(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoad_AuthPass_AutoHash(t *testing.T) {
|
||||
t.Setenv("PULSE_DATA_DIR", t.TempDir())
|
||||
pass := "mysecretpassword"
|
||||
t.Setenv("PULSE_AUTH_PASS", pass)
|
||||
|
||||
@@ -151,6 +162,7 @@ func TestLoad_AuthPass_AutoHash(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoad_AuthPass_PreHashed(t *testing.T) {
|
||||
t.Setenv("PULSE_DATA_DIR", t.TempDir())
|
||||
hash := "$2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy"
|
||||
t.Setenv("PULSE_AUTH_PASS", hash)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user