in internal/components/verifier/verifier.go [47:74]
func Verify(actualData, expectedTemplate string) error {
var actual any
if err := yaml.Unmarshal([]byte(actualData), &actual); err != nil {
return fmt.Errorf("failed to unmarshal actual data: %v", err)
}
tmpl, err := template.New("test").Funcs(funcMap()).Parse(expectedTemplate)
if err != nil {
return fmt.Errorf("failed to parse template: %v", err)
}
var b bytes.Buffer
if err := tmpl.Execute(&b, actual); err != nil {
return fmt.Errorf("failed to execute template: %v", err)
}
var expected any
if err := yaml.Unmarshal(b.Bytes(), &expected); err != nil {
return fmt.Errorf("failed to unmarshal expected data: %v", err)
}
if !cmp.Equal(expected, actual) {
// TODO: use a custom Reporter (suggested by the comment of cmp.Diff)
diff := cmp.Diff(expected, actual)
return &MismatchError{diff: fmt.Sprintf("mismatch (-want +got):\n%s", diff)}
}
return nil
}