k9s/internal/dao/patch_test.go

91 lines
2.3 KiB
Go

package dao
import (
"github.com/stretchr/testify/require"
"testing"
)
func TestGetTemplateJsonPatch(t *testing.T) {
type args struct {
imageSpecs ImageSpecs
}
tests := map[string]struct {
args args
want string
wantErr bool
}{
"simple": {
args: args{
imageSpecs: ImageSpecs{
ImageSpec{
Index: 0,
Name: "init",
DockerImage: "busybox:latest",
Init: true,
},
ImageSpec{
Index: 0,
Name: "nginx",
DockerImage: "nginx:latest",
Init: false,
},
},
},
want: `{"spec":{"template":{"spec":{"$setElementOrder/initContainers":[{"name":"init"}],"$setElementOrder/containers":[{"name":"nginx"}],"initContainers":[{"image":"busybox:latest","name":"init"}],"containers":[{"image":"nginx:latest","name":"nginx"}]}}}}`,
wantErr: false,
},
}
for name, tt := range tests {
t.Run(name, func(t *testing.T) {
got, err := GetTemplateJsonPatch(tt.args.imageSpecs)
if (err != nil) != tt.wantErr {
t.Errorf("GetTemplateJsonPatch() error = %v, wantErr %v", err, tt.wantErr)
return
}
require.JSONEq(t, tt.want, string(got), "Json strings should be equal")
})
}
}
func TestGetJsonPatch(t *testing.T) {
type args struct {
imageSpecs ImageSpecs
}
tests := map[string]struct {
args args
want string
wantErr bool
}{
"simple": {
args: args{
imageSpecs: ImageSpecs{
ImageSpec{
Index: 0,
Name: "init",
DockerImage: "busybox:latest",
Init: true,
},
ImageSpec{
Index: 0,
Name: "nginx",
DockerImage: "nginx:latest",
Init: false,
},
},
},
want: `{"spec":{"$setElementOrder/initContainers":[{"name":"init"}],"initContainers":[{"image":"busybox:latest","name":"init"}],"$setElementOrder/containers":[{"name":"nginx"}],"containers":[{"image":"nginx:latest","name":"nginx"}]}}`,
wantErr: false,
},
}
for name, tt := range tests {
t.Run(name, func(t *testing.T) {
got, err := GetJsonPatch(tt.args.imageSpecs)
if (err != nil) != tt.wantErr {
t.Errorf("GetTemplateJsonPatch() error = %v, wantErr %v", err, tt.wantErr)
return
}
require.JSONEq(t, tt.want, string(got), "Json strings should be equal")
})
}
}