diff --git a/pkg/kubectl/namespace_test.go b/pkg/kubectl/namespace_test.go index b0445bd2999..70e961ccfc2 100644 --- a/pkg/kubectl/namespace_test.go +++ b/pkg/kubectl/namespace_test.go @@ -28,6 +28,7 @@ func TestNamespaceGenerate(t *testing.T) { params map[string]interface{} expected *api.Namespace expectErr bool + index int }{ { params: map[string]interface{}{ @@ -44,15 +45,45 @@ func TestNamespaceGenerate(t *testing.T) { params: map[string]interface{}{}, expectErr: true, }, + { + params: map[string]interface{}{ + "name": 1, + }, + expectErr: true, + }, + { + params: map[string]interface{}{ + "name": nil, + }, + expectErr: true, + }, + { + params: map[string]interface{}{ + "name_wrong_key": "some_value", + }, + expectErr: true, + }, + { + params: map[string]interface{}{ + "NAME": "some_value", + }, + expectErr: true, + }, } generator := NamespaceGeneratorV1{} - for _, test := range tests { + for index, test := range tests { obj, err := generator.Generate(test.params) - if !test.expectErr && err != nil { - t.Errorf("unexpected error: %v", err) - } - if test.expectErr && err != nil { - continue + switch { + case test.expectErr && err != nil: + continue // loop, since there's no output to check + case test.expectErr && err == nil: + t.Errorf("%v: expected error and didn't get one", index) + continue // loop, no expected output object + case !test.expectErr && err != nil: + t.Errorf("%v: expected error and didn't get one", index) + continue // loop, no output object + case !test.expectErr && err == nil: + // do nothing and drop through } if !reflect.DeepEqual(obj.(*api.Namespace), test.expected) { t.Errorf("\nexpected:\n%#v\nsaw:\n%#v", test.expected, obj.(*api.Namespace))