Sha256: 8bb93ed7940531931f015240e818f3a4f363175044ff00049a53460fd8bd58bd

Contents?: true

Size: 1009 Bytes

Versions: 13

Compression:

Stored size: 1009 Bytes

Contents

require "spec_helper"

describe GraphQL::NonNullType do
  describe "when a non-null field returns null" do
    it "nulls out the parent selection" do
      query_string = %|{ cow { name cantBeNullButIs } }|
      result = DummySchema.execute(query_string)
      assert_equal({"cow" => nil }, result["data"])
      assert_equal([{"message"=>"Cannot return null for non-nullable field Cow.cantBeNullButIs"}], result["errors"])
    end

    it "propagates the null up to the next nullable field" do
      query_string = %|
      {
        nn1: deepNonNull {
          nni1: nonNullInt(returning: 1)
          nn2: deepNonNull {
            nni2: nonNullInt(returning: 2)
            nn3: deepNonNull {
              nni3: nonNullInt
            }
          }
        }
      }
      |
      result = DummySchema.execute(query_string)
      assert_equal(nil, result["data"])
      assert_equal([{"message"=>"Cannot return null for non-nullable field DeepNonNull.nonNullInt"}], result["errors"])
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
graphql-1.2.6 spec/graphql/non_null_type_spec.rb
graphql-1.2.5 spec/graphql/non_null_type_spec.rb
graphql-1.2.4 spec/graphql/non_null_type_spec.rb
graphql-1.2.3 spec/graphql/non_null_type_spec.rb
graphql-1.2.2 spec/graphql/non_null_type_spec.rb
graphql-1.2.1 spec/graphql/non_null_type_spec.rb
graphql-1.2.0 spec/graphql/non_null_type_spec.rb
graphql-1.1.0 spec/graphql/non_null_type_spec.rb
graphql-1.0.0 spec/graphql/non_null_type_spec.rb
graphql-0.19.4 spec/graphql/non_null_type_spec.rb
graphql-0.19.3 spec/graphql/non_null_type_spec.rb
graphql-0.19.2 spec/graphql/non_null_type_spec.rb
graphql-0.19.1 spec/graphql/non_null_type_spec.rb