Sha256: d31fd1d25d33b98d53ba1071f8c2b50aa0bd437671484710237557dbb7f232e7

Contents?: true

Size: 1.29 KB

Versions: 8

Compression:

Stored size: 1.29 KB

Contents

require "spec_helper"

describe GraphQL::Language::Parser do
  subject { GraphQL::Language::Parser }

  describe "anonymous fragment extension" do
    let(:document) { GraphQL.parse(query_string) }
    let(:query_string) {%|
      fragment on NestedType @or(something: "ok") {
        anotherNestedField
      }
    |}

    let(:fragment) { document.definitions.first }

    it "creates an anonymous fragment definition" do
      assert fragment.is_a?(GraphQL::Language::Nodes::FragmentDefinition)
      assert_equal nil, fragment.name
      assert_equal 1, fragment.selections.length
      assert_equal "NestedType", fragment.type.name
      assert_equal 1, fragment.directives.length
      assert_equal [2, 7], fragment.position
    end
  end

  it "parses empty arguments" do
    strings = [
      "{ field { inner } }",
      "{ field() { inner }}",
    ]
    strings.each do |query_str|
      doc = subject.parse(query_str)
      field = doc.definitions.first.selections.first
      assert_equal 0, field.arguments.length
      assert_equal 1, field.selections.length
    end
  end

  it "parses the test schema" do
    schema = DummySchema
    schema_string = GraphQL::Schema::Printer.print_schema(schema)
    document = subject.parse(schema_string)
    assert_equal schema_string, document.to_query_string
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
graphql-1.2.6 spec/graphql/language/parser_spec.rb
graphql-1.2.5 spec/graphql/language/parser_spec.rb
graphql-1.2.4 spec/graphql/language/parser_spec.rb
graphql-1.2.3 spec/graphql/language/parser_spec.rb
graphql-1.2.2 spec/graphql/language/parser_spec.rb
graphql-1.2.1 spec/graphql/language/parser_spec.rb
graphql-1.2.0 spec/graphql/language/parser_spec.rb
graphql-1.1.0 spec/graphql/language/parser_spec.rb