From 9eeca291366572aeb158efd75a7435d1e8b05588 Mon Sep 17 00:00:00 2001 From: andreas Date: Sat, 3 Nov 2018 06:52:33 +0800 Subject: [PATCH] detail error message on RegisterStructValidationCtx finding pointer arg --- validator_instance.go | 4 +++- validator_test.go | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/validator_instance.go b/validator_instance.go index 10b9da2..29a22ba 100644 --- a/validator_instance.go +++ b/validator_instance.go @@ -210,7 +210,9 @@ func (v *Validate) RegisterStructValidationCtx(fn StructLevelFuncCtx, types ...i for _, t := range types { if reflect.ValueOf(t).Kind() == reflect.Ptr { - return fmt.Errorf("error") + return fmt.Errorf( + "Type must be a non-pointer, %s is a pointer", + reflect.TypeOf(t)) } } diff --git a/validator_test.go b/validator_test.go index 3d6692c..5763cc7 100644 --- a/validator_test.go +++ b/validator_test.go @@ -8154,6 +8154,8 @@ func TestStructLevelValidationsPointerPassing(t *testing.T) { v1 := New() err1 := v1.RegisterStructValidation(StructValidationTestStruct, &TestStruct{}) NotEqual(t, err1, nil) + Equal(t, err1.Error(), + "Type must be a non-pointer, *validator.TestStruct is a pointer") v2 := New() err2 := v2.RegisterStructValidation(StructValidationTestStruct, TestStruct{})