GraphQL

 view release on metacpan or  search on metacpan

t/language-lexer.t  view on Meta::CPAN

  my $expected_text = join '', <DATA>;
  $expected_text =~ s#bless\(\s*do\{\\\(my\s*\$o\s*=\s*(.)\)\},\s*'JSON::PP::Boolean'\s*\)#'JSON->' . ($1 ? 'true' : 'false')#ge;
  my $expected = eval $expected_text;
  #open $fh, '>', 'tf'; print $fh explain $got; # uncomment to regenerate
  is_deeply $got, $expected, 'lex big doc correct' or diag explain $got;
} or diag explain $@;

dies_ok { parse("\x{0007}") };
like $@->message, qr/Parse document failed for some reason/, 'invalid char';

lives_ok { parse("\x{FEFF} query foo { id }") } 'accepts BOM';

dies_ok { parse("\n\n    ?  \n\n\n") };
is_deeply [ map $@->locations->[0]->{$_}, qw(line column) ], [3,5], 'error respects whitespace';

$got = parse(string_make(' x '));
is string_lookup($got), ' x ', 'string preserve whitespace' or diag explain $got;

$got = parse(string_make('quote \\"'));
is string_lookup($got), 'quote "', 'string quote kept' or diag explain $got;



( run in 0.854 second using v1.01-cache-2.11-cpan-e9daa2b36ef )