k9s/internal/watch/container_test.go

75 lines
1.3 KiB
Go

package watch
import (
"testing"
"github.com/derailed/k9s/internal/k8s"
"gotest.tools/assert"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
// "github.com/stretchr/testify/assert"
v1 "k8s.io/api/core/v1"
)
func TestContainerGet(t *testing.T) {
cmo := NewMockConnection()
c := NewContainer(NewPod(cmo, ""))
o, err := c.Get("fred", metav1.GetOptions{})
assert.ErrorContains(t, err, "not found")
assert.Assert(t, o == nil)
}
func TestContainerList(t *testing.T) {
cmo := NewMockConnection()
c := NewContainer(NewPod(cmo, ""))
o := c.List("fred", metav1.ListOptions{})
assert.Assert(t, o == nil)
}
func TestToContainer(t *testing.T) {
c := make(k8s.Collection, 2)
toContainers(makeCoPod("p1"), c)
assert.Equal(t, 2, len(c))
}
// ----------------------------------------------------------------------------
// Helpers...
func makePod(n string) *v1.Pod {
po := &v1.Pod{
ObjectMeta: metav1.ObjectMeta{
Name: n,
Namespace: "default",
},
}
po.Status.Phase = v1.PodRunning
return po
}
func makeCoPod(n string) *v1.Pod {
po := makePod(n)
po.Spec = v1.PodSpec{
InitContainers: []v1.Container{
makeContainer("i1", "fred:0.0.1"),
},
Containers: []v1.Container{
makeContainer("c1", "blee:0.1.0"),
},
}
return po
}
func makeContainer(n, img string) v1.Container {
co := v1.Container{
Name: n,
Image: img,
}
return co
}