func expectInvalidRule(t *testing.T, schema *graphql.Schema, rules []graphql.ValidationRuleFn, queryString string, expectedErrors []gqlerrors.FormattedError) { source := source.NewSource(&source.Source{ Body: queryString, }) AST, err := parser.Parse(parser.ParseParams{Source: source}) if err != nil { t.Fatal(err) } result := graphql.ValidateDocument(schema, AST, rules) if len(result.Errors) != len(expectedErrors) { t.Fatalf("Should have %v errors, got %v", len(expectedErrors), len(result.Errors)) } if result.IsValid != false { t.Fatalf("IsValid should be false, got %v", result.IsValid) } for _, expectedErr := range expectedErrors { found := false for _, err := range result.Errors { if reflect.DeepEqual(expectedErr, err) { found = true break } } if found == false { t.Fatalf("Unexpected result, Diff: %v", Diff(expectedErrors, result.Errors)) } } }
func expectValidRule(t *testing.T, schema *graphql.Schema, rules []graphql.ValidationRuleFn, queryString string) { source := source.NewSource(&source.Source{ Body: queryString, }) AST, err := parser.Parse(parser.ParseParams{Source: source}) if err != nil { t.Fatal(err) } result := graphql.ValidateDocument(schema, AST, rules) if len(result.Errors) > 0 { t.Fatalf("Should validate, got %v", result.Errors) } if result.IsValid != true { t.Fatalf("IsValid should be true, got %v", result.IsValid) } }