k9s/internal/ui/config_int_test.go

59 lines
1.1 KiB
Go

// SPDX-License-Identifier: Apache-2.0
// Copyright Authors of K9s
package ui
import (
"os"
"testing"
"github.com/derailed/k9s/internal/config"
"github.com/derailed/k9s/internal/config/mock"
"github.com/stretchr/testify/assert"
"k8s.io/cli-runtime/pkg/genericclioptions"
)
func Test_activeConfig(t *testing.T) {
assert.NoError(t, os.Setenv(config.K9sEnvConfigDir, "/tmp/test-config"))
assert.NoError(t, config.InitLocs())
cl, ct := "cl-1", "ct-1-1"
uu := map[string]struct {
cl, ct string
cfg *Configurator
ok bool
}{
"empty": {
cfg: &Configurator{},
},
"plain": {
cfg: &Configurator{Config: config.NewConfig(
mock.NewMockKubeSettings(&genericclioptions.ConfigFlags{
ClusterName: &cl,
Context: &ct,
}))},
cl: cl,
ct: ct,
ok: true,
},
}
for k := range uu {
u := uu[k]
t.Run(k, func(t *testing.T) {
cfg := u.cfg
if cfg.Config != nil {
_, err := cfg.Config.K9s.ActivateContext(ct)
assert.NoError(t, err)
}
cl, ct, ok := cfg.activeConfig()
assert.Equal(t, u.ok, ok)
if ok {
assert.Equal(t, u.cl, cl)
assert.Equal(t, u.ct, ct)
}
})
}
}