func TestPrinter_PrintsMinimalAST(t *testing.T) { astDoc := ast.NewField(&ast.Field{ Name: ast.NewName(&ast.Name{ Value: "foo", }), }) results := printer.Print(astDoc) expected := "foo" if !reflect.DeepEqual(results, expected) { t.Fatalf("Unexpected result, Diff: %v", testutil.Diff(expected, results)) } }
func parseField(parser *Parser) (*ast.Field, error) { start := parser.Token.Start nameOrAlias, err := parseName(parser) if err != nil { return nil, err } var ( name *ast.Name alias *ast.Name ) if skip(parser, lexer.TokenKind[lexer.COLON]) { alias = nameOrAlias n, err := parseName(parser) if err != nil { return nil, err } name = n } else { name = nameOrAlias } arguments, err := parseArguments(parser) if err != nil { return nil, err } directives, err := parseDirectives(parser) if err != nil { return nil, err } var selectionSet *ast.SelectionSet if peek(parser, lexer.TokenKind[lexer.BRACE_L]) { sSet, err := parseSelectionSet(parser) if err != nil { return nil, err } selectionSet = sSet } return ast.NewField(&ast.Field{ Alias: alias, Name: name, Arguments: arguments, Directives: directives, SelectionSet: selectionSet, Loc: loc(parser, start), }), nil }