//nolint:dupl package normalizer import ( "testing" "sigs.k8s.io/kustomize/kyaml/yaml" ) func TestFindSequenceNodeFieldsRecursive(t *testing.T) { var data = `apiVersion: 'kubernetes-client.io/v1' kind: ExternalSecret metadata: name: Foo-helm-secret spec: data: - name: platform-helm-read-password key: platform-helm-read-password - name: platform-helm-read-user key: platform-helm-read-user backendType: gcpSecretsManager projectId: bar ` node, err := yaml.Parse(data) if err != nil { t.Fatal(err) } else if str, err := node.String(); err != nil { t.Fatal(err) } else if str != data { t.Logf("Input:\n%s\n", data) t.Logf("Output:\n%s\n", str) t.Fatalf("Did not serialize node identical to input data.") } var fields = make(map[string]string) findSequenceNodeFieldsRecursive(node.YNode(), "", fields) const ( expectedKey = ".spec.data" expectedVal = "name" ) if len(fields) != 1 { t.Logf("Fields: %v", fields) t.Fatalf("Function findSequenceNodeFieldsRecursive did not find the 1 sequence field. Fount %d fields.", len(fields)) } else if value, found := fields[expectedKey]; !found { t.Fatalf("Function findSequenceNodeFieldsRecursive did not find json path %q in fields map.", expectedKey) } else if value != expectedVal { t.Fatalf("Function findSequenceNodeFieldsRecursive did not find value %q for json path %q in fields map.", expectedVal, expectedKey) } t.Logf("Fields map: %v", fields) t.Logf("Successfully found key %q with value %q in fields map", expectedKey, expectedVal) }