From 81c097f1bb7b7b34b5c94866d8db9db8aa91a36d Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Mon, 2 Nov 2020 00:03:03 +0100 Subject: [PATCH] add back json output tests --- pkg/output/json_test.go | 111 ++++++++++++++++++++++++++++++++++++++++ pkg/output/text_test.go | 6 --- 2 files changed, 111 insertions(+), 6 deletions(-) create mode 100644 pkg/output/json_test.go diff --git a/pkg/output/json_test.go b/pkg/output/json_test.go new file mode 100644 index 0000000..54ec6db --- /dev/null +++ b/pkg/output/json_test.go @@ -0,0 +1,111 @@ +package output + +import ( + "bytes" + "github.com/yannh/kubeconform/pkg/resource" + "github.com/yannh/kubeconform/pkg/validator" + "testing" +) + +func TestJSONWrite(t *testing.T) { + for _, testCase := range []struct { + name string + withSummary bool + isStdin bool + verbose bool + results []validator.Result + expect string + }{ + { + "a single deployment, no summary, no verbose", + false, + false, + false, + []validator.Result{}, + "{\n \"resources\": []\n}\n", + }, + + { + "a single deployment, summary, no verbose", + true, + false, + false, + []validator.Result{ + { + Resource: resource.Resource{ + Path: "deployment.yml", + Bytes: []byte(`apiVersion: apps/v1 +kind: Deployment +metadata: + name: "my-app" +`), + }, + Status: validator.Valid, + Err: nil, + }, + }, + `{ + "resources": [], + "summary": { + "valid": 1, + "invalid": 0, + "errors": 0, + "skipped": 0 + } +} +`, + }, + { + "a single deployment, verbose, with summary", + true, + false, + true, + []validator.Result{ + { + Resource: resource.Resource{ + Path: "deployment.yml", + Bytes: []byte(`apiVersion: apps/v1 +kind: Deployment +metadata: + name: "my-app" +`), + }, + Status: validator.Valid, + Err: nil, + }, + + }, + `{ + "resources": [ + { + "filename": "deployment.yml", + "kind": "Deployment", + "name": "my-app", + "version": "apps/v1", + "status": "statusValid", + "msg": "" + } + ], + "summary": { + "valid": 1, + "invalid": 0, + "errors": 0, + "skipped": 0 + } +} +`, + }, + } { + w := new(bytes.Buffer) + o := jsonOutput(w, testCase.withSummary, testCase.isStdin, testCase.verbose) + + for _, res := range testCase.results { + o.Write(res) + } + o.Flush() + + if w.String() != testCase.expect { + t.Errorf("%s - expected: %s, got: %s", testCase.name, testCase.expect, w) + } + } +} diff --git a/pkg/output/text_test.go b/pkg/output/text_test.go index d7bf19c..5e61f03 100644 --- a/pkg/output/text_test.go +++ b/pkg/output/text_test.go @@ -8,12 +8,6 @@ import ( ) func TestTextWrite(t *testing.T) { - type result struct { - fileName, kind, name, version string - err error - skipped bool - } - for _, testCase := range []struct { name string withSummary bool