diff --git a/pkg/resource/main_test.go b/pkg/resource/main_test.go new file mode 100644 index 0000000..a0867f4 --- /dev/null +++ b/pkg/resource/main_test.go @@ -0,0 +1,48 @@ +package resource_test + +import ( + "github.com/yannh/kubeconform/pkg/resource" + "testing" +) + +func TestSignatureFromBytes(t *testing.T) { + testCases := []struct { + name string + have []byte + want resource.Signature + err error + } { + { + name: "valid deployment", + have: []byte(` +apiVersion: apps/v1 +kind: Deployment +metadata: + name: myService + namespace: default + labels: + app: myService +spec: +`), + want: resource.Signature { + Kind: "Deployment", + Version: "apps/v1", + Namespace: "default", + }, + err: nil, + }, + } + + for _, testCase := range testCases { + sig, err := resource.SignatureFromBytes(testCase.have) + if err != nil && err.Error() != testCase.err.Error() { + t.Errorf("test \"%s\" - received error: %s", testCase.name, err) + } + if sig.Version != testCase.want.Version || + sig.Kind != testCase.want.Kind || + sig.Namespace != testCase.want.Namespace { + t.Errorf("test \"%s\": received %+v, expected %+v", testCase.name, sig, testCase.want) + } + + } +} \ No newline at end of file