k9s/internal/dao/pod_test.go

45 lines
1.2 KiB
Go

package dao
import (
"testing"
"github.com/stretchr/testify/assert"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
func TestGetDefaultLogContainer(t *testing.T) {
type args struct {
imageSpecs ImageSpecs
}
uu := map[string]struct {
po v1.Pod
wantContainer string
wantOk bool
}{
"no_annotation": {
po: v1.Pod{},
wantContainer: "",
wantOk: false,
},
"container_not_present": {
po: v1.Pod{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{"kubectl.kubernetes.io/default-logs-container": "container1"}}},
wantContainer: "",
wantOk: false,
},
"container_found": {
po: v1.Pod{ObjectMeta: metav1.ObjectMeta{Annotations: map[string]string{"kubectl.kubernetes.io/default-logs-container": "container1"}}, Spec: v1.PodSpec{Containers: []v1.Container{{Name: "container1"}}}},
wantContainer: "container1",
wantOk: true,
},
}
for k := range uu {
u := uu[k]
t.Run(k, func(t *testing.T) {
container, ok := getDefaultLogContainer(u.po)
assert.Equal(t, u.wantContainer, container)
assert.Equal(t, u.wantOk, ok)
})
}
}