mirror of
https://github.com/helmfile/helmfile.git
synced 2026-10-18 05:03:07 +02:00
* feat: support HELMFILE_NAMESPACE env var for default namespace Mirrors the existing HELMFILE_ENVIRONMENT pattern: the --namespace CLI flag takes precedence, falling back to HELMFILE_NAMESPACE when unset. Signed-off-by: Dominik Schmidt <dev@dominik-schmidt.de> * docs: mention HELMFILE_NAMESPACE in cli.md and templating.md Signed-off-by: Dominik Schmidt <dev@dominik-schmidt.de> --------- Signed-off-by: Dominik Schmidt <dev@dominik-schmidt.de>
122 lines
2.6 KiB
Go
122 lines
2.6 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/helmfile/helmfile/pkg/envvar"
|
|
)
|
|
|
|
// TestFileOrDir tests if statement
|
|
func TestFileOrDir(t *testing.T) {
|
|
tests := []struct {
|
|
opts GlobalOptions
|
|
env string
|
|
expected string
|
|
}{
|
|
{
|
|
opts: GlobalOptions{},
|
|
env: "",
|
|
expected: "",
|
|
},
|
|
{
|
|
opts: GlobalOptions{},
|
|
env: "envset",
|
|
expected: "envset",
|
|
},
|
|
{
|
|
opts: GlobalOptions{File: "folderset"},
|
|
env: "",
|
|
expected: "folderset",
|
|
},
|
|
{
|
|
opts: GlobalOptions{File: "folderset"},
|
|
env: "envset",
|
|
expected: "folderset",
|
|
},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
os.Setenv(envvar.FilePath, test.env)
|
|
received := NewGlobalImpl(&test.opts).FileOrDir()
|
|
require.Equalf(t, test.expected, received, "FileOrDir expected %t, received %t", test.expected, received)
|
|
}
|
|
os.Unsetenv(envvar.FilePath)
|
|
}
|
|
|
|
// TestKubeContext tests the kube-context flag and HELMFILE_KUBE_CONTEXT env var fallback
|
|
func TestKubeContext(t *testing.T) {
|
|
tests := []struct {
|
|
opts GlobalOptions
|
|
env string
|
|
expected string
|
|
}{
|
|
{
|
|
opts: GlobalOptions{},
|
|
env: "",
|
|
expected: "",
|
|
},
|
|
{
|
|
opts: GlobalOptions{},
|
|
env: "envset",
|
|
expected: "envset",
|
|
},
|
|
{
|
|
opts: GlobalOptions{KubeContext: "flagset"},
|
|
env: "",
|
|
expected: "flagset",
|
|
},
|
|
{
|
|
opts: GlobalOptions{KubeContext: "flagset"},
|
|
env: "envset",
|
|
expected: "flagset",
|
|
},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
os.Setenv(envvar.KubeContext, test.env)
|
|
received := NewGlobalImpl(&test.opts).KubeContext()
|
|
require.Equalf(t, test.expected, received, "KubeContext expected %s, received %s", test.expected, received)
|
|
}
|
|
os.Unsetenv(envvar.KubeContext)
|
|
}
|
|
|
|
// TestNamespace tests the namespace flag and HELMFILE_NAMESPACE env var fallback
|
|
func TestNamespace(t *testing.T) {
|
|
tests := []struct {
|
|
opts GlobalOptions
|
|
env string
|
|
expected string
|
|
}{
|
|
{
|
|
opts: GlobalOptions{},
|
|
env: "",
|
|
expected: "",
|
|
},
|
|
{
|
|
opts: GlobalOptions{},
|
|
env: "envset",
|
|
expected: "envset",
|
|
},
|
|
{
|
|
opts: GlobalOptions{Namespace: "flagset"},
|
|
env: "",
|
|
expected: "flagset",
|
|
},
|
|
{
|
|
opts: GlobalOptions{Namespace: "flagset"},
|
|
env: "envset",
|
|
expected: "flagset",
|
|
},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
os.Setenv(envvar.Namespace, test.env)
|
|
received := NewGlobalImpl(&test.opts).Namespace()
|
|
require.Equalf(t, test.expected, received, "Namespace expected %s, received %s", test.expected, received)
|
|
}
|
|
os.Unsetenv(envvar.Namespace)
|
|
}
|