From d329fa64830a2898e3758c9c6425a79bbdf72abf Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Sun, 26 Feb 2023 12:29:35 +0100 Subject: [PATCH] Add test to JSON output with validationError --- pkg/output/json.go | 8 ++++-- pkg/output/json_test.go | 54 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/pkg/output/json.go b/pkg/output/json.go index c2dd5e6..5778065 100644 --- a/pkg/output/json.go +++ b/pkg/output/json.go @@ -50,11 +50,15 @@ func (o *jsono) Write(result validator.Result) error { o.nValid++ case validator.Invalid: st = "statusInvalid" - msg = result.Err.Error() + if result.Err != nil { + msg = result.Err.Error() + } o.nInvalid++ case validator.Error: st = "statusError" - msg = result.Err.Error() + if result.Err != nil { + msg = result.Err.Error() + } o.nErrors++ case validator.Skipped: st = "statusSkipped" diff --git a/pkg/output/json_test.go b/pkg/output/json_test.go index e5ce27d..0ed4ad4 100644 --- a/pkg/output/json_test.go +++ b/pkg/output/json_test.go @@ -93,6 +93,60 @@ metadata: "skipped": 0 } } +`, + }, + { + "a single invalid 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.Invalid, + Err: &validator.ValidationError{ + Path: "foo", + Msg: "bar", + }, + ValidationErrors: []validator.ValidationError{ + { + Path: "foo", + Msg: "bar", + }, + }, + }, + }, + `{ + "resources": [ + { + "filename": "deployment.yml", + "kind": "Deployment", + "name": "my-app", + "version": "apps/v1", + "status": "statusInvalid", + "msg": "bar", + "validationErrors": [ + { + "path": "foo", + "msg": "bar" + } + ] + } + ], + "summary": { + "valid": 0, + "invalid": 1, + "errors": 0, + "skipped": 0 + } +} `, }, } {