From 2f3c89e73fa436b0acb9e067d494c50f0371b83f Mon Sep 17 00:00:00 2001 From: Eyob Tefera Date: Mon, 10 Aug 2020 17:57:03 +0000 Subject: [PATCH] Add diffing to tests. --- kustomize/go.mod | 1 + kustomize/go.sum | 2 + .../kustfile/kustomizationfile_test.go | 99 ++++++++++++++----- 3 files changed, 75 insertions(+), 27 deletions(-) diff --git a/kustomize/go.mod b/kustomize/go.mod index b1e2d19a2..9b13ebbe8 100644 --- a/kustomize/go.mod +++ b/kustomize/go.mod @@ -3,6 +3,7 @@ module sigs.k8s.io/kustomize/kustomize/v3 go 1.14 require ( + github.com/google/go-cmp v0.3.0 github.com/pkg/errors v0.9.1 github.com/spf13/cobra v1.0.0 github.com/spf13/pflag v1.0.5 diff --git a/kustomize/go.sum b/kustomize/go.sum index 474c95805..5f83ee0de 100644 --- a/kustomize/go.sum +++ b/kustomize/go.sum @@ -239,6 +239,7 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.5.1 h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k= github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -756,6 +757,7 @@ sigs.k8s.io/kustomize/kyaml v0.1.4/go.mod h1:461i94nj0h0ylJ6w83jLkR4SqqVhn1iY6fj sigs.k8s.io/kustomize/kyaml v0.2.0/go.mod h1:72/rLkSi+L/pHM1oCjwrf3ClU+tH5kZQvvdLSqIHwWU= sigs.k8s.io/kustomize/kyaml v0.4.1 h1:NEqA/35upoAjb+I5vh1ODUqxoX4DOrezeQa9BhhG5Co= sigs.k8s.io/kustomize/kyaml v0.4.1/go.mod h1:XJL84E6sOFeNrQ7CADiemc1B0EjIxHo3OhW4o1aJYNw= +sigs.k8s.io/kustomize/kyaml v0.4.2/go.mod h1:XJL84E6sOFeNrQ7CADiemc1B0EjIxHo3OhW4o1aJYNw= sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= sigs.k8s.io/structured-merge-diff v0.0.0-20190817042607-6149e4549fca/go.mod h1:IIgPezJWb76P0hotTxzDbWsMYB8APh18qZnxkomBpxA= sigs.k8s.io/structured-merge-diff v1.0.1-0.20191108220359-b1b620dd3f06/go.mod h1:/ULNhyfzRopfcjskuui0cTITekDduZ7ycKN3oUT9R18= diff --git a/kustomize/internal/commands/kustfile/kustomizationfile_test.go b/kustomize/internal/commands/kustfile/kustomizationfile_test.go index 1a996df83..97bcc7655 100644 --- a/kustomize/internal/commands/kustfile/kustomizationfile_test.go +++ b/kustomize/internal/commands/kustfile/kustomizationfile_test.go @@ -8,6 +8,8 @@ import ( "strings" "testing" + "github.com/google/go-cmp/cmp" + "sigs.k8s.io/kustomize/api/filesys" "sigs.k8s.io/kustomize/api/konfig" "sigs.k8s.io/kustomize/api/types" @@ -27,6 +29,7 @@ func TestFieldOrder(t *testing.T) { "CommonLabels", "CommonAnnotations", "PatchesStrategicMerge", + "PatchesJson6902", "Patches", "ConfigMapGenerator", "SecretGenerator", @@ -157,8 +160,8 @@ patchesStrategicMerge: } bytes, _ := fSys.ReadFile(mf.path) - if !reflect.DeepEqual(kustomizationContentWithComments, bytes) { - t.Fatal("written kustomization with comments is not the same as original one") + if diff := cmp.Diff(kustomizationContentWithComments, bytes); diff != "" { + t.Errorf("Mismatch (-expected, +actual):\n%s", diff) } } @@ -251,10 +254,8 @@ generatorOptions: } bytes, _ := fSys.ReadFile(mf.path) - if string(expected) != string(bytes) { - t.Fatalf( - "expected =\n%s\n\nactual =\n%s\n", - string(expected), string(bytes)) + if diff := cmp.Diff(expected, bytes); diff != "" { + t.Errorf("Mismatch (-expected, +actual):\n%s", diff) } } @@ -289,10 +290,8 @@ kind: Kustomization } bytes, _ := fSys.ReadFile(mf.path) - if string(expected) != string(bytes) { - t.Fatalf( - "expected =\n%s\n\nactual =\n%s\n", - string(expected), string(bytes)) + if diff := cmp.Diff(expected, bytes); diff != "" { + t.Errorf("Mismatch (-expected, +actual):\n%s", diff) } } @@ -334,36 +333,37 @@ kind: Kustomization } bytes, _ := fSys.ReadFile(mf.path) - if string(expected) != string(bytes) { - t.Fatalf( - "expected =\n%s\n\nactual =\n%s\n", - string(expected), string(bytes)) + if diff := cmp.Diff(expected, bytes); diff != "" { + t.Errorf("Mismatch (-expected, +actual):\n%s", diff) } } -func TestFixOutdatedPatchesFieldTitle(t *testing.T) { +func TestRenameAndKeepOutdatedPatchesField(t *testing.T) { kustomizationContentWithOutdatedPatchesFieldTitle := []byte(` patchesJson6902: - path: patch1.yaml target: - kind: Service + kind: Deployment +patches: - path: patch2.yaml target: - group: apps kind: Deployment - version: v1 +- path: patch3.yaml + target: + kind: Service `) expected := []byte(` patches: -- path: patch1.yaml - target: - kind: Service - path: patch2.yaml target: - group: apps kind: Deployment - version: v1 +- path: patch3.yaml + target: + kind: Service +- path: patch1.yaml + target: + kind: Deployment apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization `) @@ -383,10 +383,55 @@ kind: Kustomization } bytes, _ := fSys.ReadFile(mf.path) - if string(expected) != string(bytes) { - t.Fatalf( - "expected =\n%s\n\nactual =\n%s\n", - string(expected), string(bytes)) + if diff := cmp.Diff(expected, bytes); diff != "" { + t.Errorf("Mismatch (-expected, +actual):\n%s", diff) + } +} + +func TestFixOutdatedPatchesFieldTitle(t *testing.T) { + kustomizationContentWithOutdatedPatchesFieldTitle := []byte(` +patchesJson6902: +- path: patch1.yaml + target: + kind: Service +- path: patch2.yaml + target: + group: apps + kind: Deployment + version: v1 +`) + + expected := []byte(` +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +patches: +- path: patch1.yaml + target: + kind: Service +- path: patch2.yaml + target: + group: apps + kind: Deployment + version: v1 +`) + fSys := filesys.MakeFsInMemory() + testutils_test.WriteTestKustomizationWith(fSys, kustomizationContentWithOutdatedPatchesFieldTitle) + mf, err := NewKustomizationFile(fSys) + if err != nil { + t.Fatalf("Unexpected Error: %v", err) + } + + kustomization, err := mf.Read() + if err != nil { + t.Fatalf("Unexpected Error: %v", err) + } + if err = mf.Write(kustomization); err != nil { + t.Fatalf("Unexpected Error: %v", err) + } + bytes, _ := fSys.ReadFile(mf.path) + + if diff := cmp.Diff(expected, bytes); diff != "" { + t.Errorf("Mismatch (-expected, +actual):\n%s", diff) } }