diff --git a/validator/vars.go b/validator/vars.go index c386b6b9..f2934caf 100644 --- a/validator/vars.go +++ b/validator/vars.go @@ -180,7 +180,7 @@ func (v *varValidator) validateVarType(typ *ast.Type, val reflect.Value) (reflec return val, gqlerror.ErrorPathf(v.path, "cannot use %s as %s", kind.String(), typ.NamedType) case ast.InputObject: if val.Kind() != reflect.Map { - return val, gqlerror.ErrorPathf(v.path, "must be a %s", def.Name) + return val, gqlerror.ErrorPathf(v.path, "must be a %s, not a %s", def.Name, val.Kind()) } // check for unknown fields diff --git a/validator/vars_test.go b/validator/vars_test.go index b26a9db7..ee3c4a04 100644 --- a/validator/vars_test.go +++ b/validator/vars_test.go @@ -53,7 +53,7 @@ func TestValidateVars(t *testing.T) { _, gerr := validator.VariableValues(schema, q.Operations.ForName(""), map[string]interface{}{ "var": "hello", }) - require.EqualError(t, gerr, "input: variable.var must be a InputType") + require.EqualError(t, gerr, "input: variable.var must be a InputType, not a string") }) t.Run("defaults", func(t *testing.T) {