k9s/internal/dao/patch_test.go

42 lines
1.1 KiB
Go

package dao
import (
"github.com/stretchr/testify/require"
v1 "k8s.io/api/core/v1"
"testing"
)
func TestSetImageJsonPatch(t *testing.T) {
type args struct {
podSpec v1.PodSpec
}
tests := []struct {
name string
args args
want string
wantErr bool
}{
{
name: "simple",
args: args{
podSpec: v1.PodSpec{
InitContainers: []v1.Container{v1.Container{Image: "busybox:latest", Name: "init"}},
Containers: []v1.Container{v1.Container{Image: "nginx:latest", Name: "nginx"}},
},
},
want: `{"spec":{"template":{"spec":{"$setElementOrder/containers":[{"name":"nginx"}],"$setElementOrder/initContainers":[{"name":"init"}],"containers":[{"image":"nginx:latest","name":"nginx"}],"initContainers":[{"image":"busybox:latest","name":"init"}]}}}}`,
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := SetImageJsonPatch(tt.args.podSpec)
if (err != nil) != tt.wantErr {
t.Errorf("SetImageJsonPatch() error = %v, wantErr %v", err, tt.wantErr)
return
}
require.JSONEq(t, tt.want, got, "Json strings should be equal")
})
}
}