k9s/internal/render/ns_test.go

81 lines
1.5 KiB
Go

// SPDX-License-Identifier: Apache-2.0
// Copyright Authors of K9s
package render_test
import (
"testing"
"github.com/derailed/k9s/internal/model1"
"github.com/derailed/k9s/internal/render"
"github.com/derailed/tcell/v2"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestNSColorer(t *testing.T) {
uu := map[string]struct {
re model1.RowEvent
e tcell.Color
}{
"add": {
re: model1.RowEvent{
Kind: model1.EventAdd,
Row: model1.Row{
Fields: model1.Fields{
"blee",
"Active",
},
},
},
e: model1.AddColor,
},
"update": {
re: model1.RowEvent{
Kind: model1.EventUpdate,
Row: model1.Row{
Fields: model1.Fields{
"blee",
"Active",
},
},
},
e: model1.StdColor,
},
"decorator": {
re: model1.RowEvent{
Kind: model1.EventAdd,
Row: model1.Row{
Fields: model1.Fields{
"blee*",
"Active",
},
},
},
e: model1.HighlightColor,
},
}
h := model1.Header{
model1.HeaderColumn{Name: "NAME"},
model1.HeaderColumn{Name: "STATUS"},
}
var r render.Namespace
for k := range uu {
u := uu[k]
t.Run(k, func(t *testing.T) {
assert.Equal(t, u.e, r.ColorerFunc()("", h, &u.re))
})
}
}
func TestNamespaceRender(t *testing.T) {
c := render.Namespace{}
r := model1.NewRow(3)
require.NoError(t, c.Render(load(t, "ns"), "-", &r))
assert.Equal(t, "-/kube-system", r.ID)
assert.Equal(t, model1.Fields{"kube-system", "Active"}, r.Fields[:2])
}