module GraphQL::Compatibility::QueryParserSpecification::ParseErrorSpecification
Public Instance Methods
assert_empty_document(query_string)
click to toggle source
# File lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb, line 72 def assert_empty_document(query_string) doc = parse(query_string) assert_equal 0, doc.definitions.length end
assert_raises_parse_error(query_string)
click to toggle source
# File lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb, line 5 def assert_raises_parse_error(query_string) assert_raises(GraphQL::ParseError) { parse(query_string) } end
assert_rejects_character(char)
click to toggle source
# File lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb, line 32 def assert_rejects_character(char) err = assert_raises_parse_error("{ field#{char} }") expected_char = char.inspect.gsub('"', '').downcase msg_downcase = err.message.downcase # Case-insensitive for UTF-8 printing assert_includes(msg_downcase, expected_char, "The message includes the invalid character") end
test_it_includes_line_and_column()
click to toggle source
# File lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb, line 11 def test_it_includes_line_and_column err = assert_raises_parse_error(" query getCoupons { allCoupons: {data{id}} } ") assert_includes(err.message, '{') assert_equal(3, err.line) assert_equal(27, err.col) end
test_it_parses_blank_queries()
click to toggle source
# File lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb, line 77 def test_it_parses_blank_queries assert_empty_document("") assert_empty_document(" ") assert_empty_document("\t \t") end
test_it_rejects_bad_unicode()
click to toggle source
# File lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb, line 49 def test_it_rejects_bad_unicode assert_raises_parse_error(%Q|{ field(arg:"\\x") }|) assert_raises_parse_error(%Q|{ field(arg:"\\u1") }|) assert_raises_parse_error(%Q|{ field(arg:"\\u0XX1") }|) assert_raises_parse_error(%Q|{ field(arg:"\\uXXXX") }|) assert_raises_parse_error(%Q|{ field(arg:"\\uFXXX") }|) assert_raises_parse_error(%Q|{ field(arg:"\\uXXXF") }|) end
test_it_rejects_empty_inline_fragments()
click to toggle source
# File lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb, line 58 def test_it_rejects_empty_inline_fragments assert_raises_parse_error(" query { viewer { login { ... on String { } } } } ") end
test_it_rejects_invalid_characters()
click to toggle source
# File lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb, line 40 def test_it_rejects_invalid_characters assert_rejects_character(";") assert_rejects_character("\a") assert_rejects_character("\xef") assert_rejects_character("\v") assert_rejects_character("\f") assert_rejects_character("\xa0") end
test_it_rejects_unexpected_ends()
click to toggle source
# File lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb, line 28 def test_it_rejects_unexpected_ends assert_raises_parse_error("query { stuff { thing }") end
test_it_rejects_unterminated_strings()
click to toggle source
# File lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb, line 23 def test_it_rejects_unterminated_strings assert_raises_parse_error('{ " }') assert_raises_parse_error(%Q|{ "\n" }|) end
test_it_restricts_on()
click to toggle source
# File lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb, line 83 def test_it_restricts_on assert_raises_parse_error("{ ...on }") assert_raises_parse_error("fragment on on Type { field }") end