k9s/internal/model/pod_test.go

53 lines
1.1 KiB
Go

package model_test
import (
"testing"
"github.com/derailed/k9s/internal/model"
"github.com/derailed/k9s/internal/render"
"github.com/stretchr/testify/assert"
"k8s.io/apimachinery/pkg/runtime"
)
func TestPodHydrate(t *testing.T) {
f := makeFactory()
var po model.Pod
po.Init("", "v1/pods", f)
o := render.PodWithMetrics{Raw: load(t, "p1")}
rr := make(render.Rows, 1)
assert.Nil(t, po.Hydrate([]runtime.Object{&o}, rr, render.Pod{}))
assert.Equal(t, 1, len(rr))
assert.Equal(t, "default/nginx-7fb78fb6d8-2w75j", rr[0].ID)
assert.Equal(t, render.Fields{
"default",
"nginx-7fb78fb6d8-2w75j",
"1/1",
"Running",
"0",
"n/a",
"n/a",
"n/a",
"n/a",
"10.44.0.229",
"gke-k9s-default-pool-0fa2fb89-lbtf",
"GA",
}, rr[0].Fields[:len(rr[0].Fields)-1])
}
func BenchmarkPodHydrate(b *testing.B) {
f := makeFactory()
var po model.Pod
po.Init("", "v1/pods", f)
o := load(b, "p1")
rr := make(render.Rows, 1)
oo := []runtime.Object{&render.PodWithMetrics{Raw: o}}
re := render.Pod{}
b.ResetTimer()
b.ReportAllocs()
for i := 0; i < b.N; i++ {
po.Hydrate(oo, rr, re)
}
}