mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-29 09:40:49 +00:00
add test for empty patch file
This commit is contained in:
@@ -19,7 +19,7 @@ package transformer
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/evanphx/json-patch"
|
jsonpatch "github.com/evanphx/json-patch"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"sigs.k8s.io/kustomize/pkg/resid"
|
"sigs.k8s.io/kustomize/pkg/resid"
|
||||||
"sigs.k8s.io/kustomize/pkg/resmap"
|
"sigs.k8s.io/kustomize/pkg/resmap"
|
||||||
@@ -42,6 +42,11 @@ func newPatchJson6902JSONTransformer(
|
|||||||
id resid.ResId, rawOp []byte) (transformers.Transformer, error) {
|
id resid.ResId, rawOp []byte) (transformers.Transformer, error) {
|
||||||
op := rawOp
|
op := rawOp
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
|
if len(op) == 0 {
|
||||||
|
return nil, fmt.Errorf("json patch file is empty %v", id)
|
||||||
|
}
|
||||||
|
|
||||||
if !isJsonFormat(op) {
|
if !isJsonFormat(op) {
|
||||||
// if it isn't JSON, try to parse it as YAML
|
// if it isn't JSON, try to parse it as YAML
|
||||||
op, err = yaml.YAMLToJSON(rawOp)
|
op, err = yaml.YAMLToJSON(rawOp)
|
||||||
|
|||||||
@@ -163,3 +163,40 @@ func TestJsonPatchJSONTransformer_UnHappyTransform(t *testing.T) {
|
|||||||
t.Fatalf("expected error didn't happen, but got %v", err)
|
t.Fatalf("expected error didn't happen, but got %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestJsonPatchJSONTransformer_EmptyPatchFile(t *testing.T) {
|
||||||
|
rf := resource.NewFactory(
|
||||||
|
kunstruct.NewKunstructuredFactoryImpl())
|
||||||
|
id := resid.NewResId(deploy, "deploy1")
|
||||||
|
base := resmap.ResMap{
|
||||||
|
id: rf.FromMap(
|
||||||
|
map[string]interface{}{
|
||||||
|
"apiVersion": "apps/v1",
|
||||||
|
"kind": "Deployment",
|
||||||
|
"metadata": map[string]interface{}{
|
||||||
|
"name": "deploy1",
|
||||||
|
},
|
||||||
|
"spec": map[string]interface{}{
|
||||||
|
"template": map[string]interface{}{},
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
|
||||||
|
operations := []byte(``)
|
||||||
|
|
||||||
|
jpt, err := newPatchJson6902JSONTransformer(id, operations)
|
||||||
|
|
||||||
|
if err == nil {
|
||||||
|
t.Fatalf("unexpected error : %v", err)
|
||||||
|
|
||||||
|
if jpt != nil {
|
||||||
|
err = jpt.Transform(base)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
if !strings.HasPrefix(err.Error(), "json patch file is empty") {
|
||||||
|
t.Fatalf("expected error didn't happen, but got %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user