func Verify()

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
}