package tests import ( "errors" "testing" validation "github.com/go-ozzo/ozzo-validation/v4" ) // TestValidationErrors checks whether the provided rawErrors are // instance of [validation.Errors] and contains the expectedErrors keys. func TestValidationErrors(t *testing.T, rawErrors error, expectedErrors []string) { var errs validation.Errors if rawErrors != nil && !errors.As(rawErrors, &errs) { t.Fatalf("Failed to parse errors, expected to find validation.Errors, got %T\n%v", rawErrors, rawErrors) } if len(errs) != len(expectedErrors) { keys := make([]string, 0, len(errs)) for k := range errs { keys = append(keys, k) } t.Fatalf("Expected error keys \n%v\ngot\n%v\n%v", expectedErrors, keys, errs) } for _, k := range expectedErrors { if _, ok := errs[k]; !ok { t.Fatalf("Missing expected error key %q in %v", k, errs) } } }