123 lines
2.1 KiB
Go
123 lines
2.1 KiB
Go
// SPDX-License-Identifier: Apache-2.0
|
|
// Copyright Authors of K9s
|
|
|
|
package config_test
|
|
|
|
import (
|
|
"log/slog"
|
|
"testing"
|
|
|
|
"github.com/derailed/k9s/internal/client"
|
|
"github.com/derailed/k9s/internal/config"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func init() {
|
|
slog.SetDefault(slog.New(slog.DiscardHandler))
|
|
}
|
|
|
|
func TestCustomViewLoad(t *testing.T) {
|
|
uu := map[string]struct {
|
|
cv *config.CustomView
|
|
path string
|
|
key string
|
|
e []string
|
|
}{
|
|
"empty": {},
|
|
|
|
"gvr": {
|
|
path: "testdata/views/views.yaml",
|
|
key: client.PodGVR.String(),
|
|
e: []string{"NAMESPACE", "NAME", "AGE", "IP"},
|
|
},
|
|
|
|
"gvr+ns": {
|
|
path: "testdata/views/views.yaml",
|
|
key: "v1/pods@default",
|
|
e: []string{"NAME", "IP", "AGE"},
|
|
},
|
|
}
|
|
|
|
for k, u := range uu {
|
|
t.Run(k, func(t *testing.T) {
|
|
cfg := config.NewCustomView()
|
|
|
|
require.NoError(t, cfg.Load(u.path))
|
|
assert.Equal(t, u.e, cfg.Views[u.key].Columns)
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestViewSettingEquals(t *testing.T) {
|
|
uu := map[string]struct {
|
|
v1, v2 *config.ViewSetting
|
|
e bool
|
|
}{
|
|
"v1-nil-v2-nil": {
|
|
e: true,
|
|
},
|
|
|
|
"v1-v2-empty": {
|
|
v1: new(config.ViewSetting),
|
|
v2: new(config.ViewSetting),
|
|
e: true,
|
|
},
|
|
|
|
"v1-nil": {
|
|
v1: new(config.ViewSetting),
|
|
},
|
|
|
|
"nil-v2": {
|
|
v2: new(config.ViewSetting),
|
|
},
|
|
|
|
"v1-v2-blank": {
|
|
v1: &config.ViewSetting{
|
|
Columns: []string{"A"},
|
|
},
|
|
v2: new(config.ViewSetting),
|
|
},
|
|
|
|
"v1-v2-nil": {
|
|
v1: &config.ViewSetting{
|
|
Columns: []string{"A"},
|
|
},
|
|
},
|
|
|
|
"same": {
|
|
v1: &config.ViewSetting{
|
|
Columns: []string{"A", "B", "C"},
|
|
},
|
|
v2: &config.ViewSetting{
|
|
Columns: []string{"A", "B", "C"},
|
|
},
|
|
e: true,
|
|
},
|
|
|
|
"order": {
|
|
v1: &config.ViewSetting{
|
|
Columns: []string{"C", "A", "B"},
|
|
},
|
|
v2: &config.ViewSetting{
|
|
Columns: []string{"A", "B", "C"},
|
|
},
|
|
},
|
|
|
|
"delta": {
|
|
v1: &config.ViewSetting{
|
|
Columns: []string{"A", "B", "C"},
|
|
},
|
|
v2: &config.ViewSetting{
|
|
Columns: []string{"B"},
|
|
},
|
|
},
|
|
}
|
|
|
|
for k, u := range uu {
|
|
t.Run(k, func(t *testing.T) {
|
|
assert.Equalf(t, u.e, u.v1.Equals(u.v2), "%#v and %#v", u.v1, u.v2)
|
|
})
|
|
}
|
|
}
|