Sha256: 2f8006cb3b76cf484120241dd7499d68a4889f5f736fd06b02d0a4517de52cfa

Contents?: true

Size: 1.61 KB

Versions: 60

Compression:

Stored size: 1.61 KB

Contents

# frozen_string_literal: true
require "spec_helper"

describe GraphQL::ListType do
  let(:float_list) { GraphQL::ListType.new(of_type: GraphQL::FLOAT_TYPE) }

  it "coerces elements in the list" do
    assert_equal([1.0, 2.0, 3.0].inspect, float_list.coerce_isolated_input([1, 2, 3]).inspect)
  end

  it "converts items that are not lists into lists" do
    assert_equal([1.0].inspect, float_list.coerce_isolated_input(1.0).inspect)
  end

  describe "validate_input with bad input" do
    let(:bad_num) { "bad_num" }
    let(:result) { float_list.validate_isolated_input([bad_num, 2.0, 3.0]) }

    it "returns an invalid result" do
      assert(!result.valid?)
    end

    it "has one problem" do
      assert_equal(result.problems.length, 1)
    end

    it "has path [0]" do
      assert_equal(result.problems[0]["path"], [0])
    end

    it "has the correct explanation" do
      expected = GraphQL::FLOAT_TYPE.validate_isolated_input(bad_num).problems[0]["explanation"]
      actual = result.problems[0]["explanation"]
      assert_equal(actual, expected)
    end
  end

  describe "list of input objects" do
    let(:input_object) do
      input_object = GraphQL::InputObjectType.define do
        name "SomeInputObjectType"
        argument :float, !types.Float
      end

      GraphQL::Query::Arguments.construct_arguments_class(input_object)

      input_object
    end

    let(:input_object_list) { input_object.to_list_type }

    it "converts hashes into lists of hashes" do
      hash = { 'float' => 1.0 }
      assert_equal([hash].inspect, input_object_list.coerce_isolated_input(hash).map(&:to_h).inspect)
    end
  end
end

Version data entries

60 entries across 60 versions & 1 rubygems

Version Path
graphql-1.8.18 spec/graphql/list_type_spec.rb
graphql-1.9.11 spec/graphql/list_type_spec.rb
graphql-1.9.10 spec/graphql/list_type_spec.rb
graphql-1.9.9 spec/graphql/list_type_spec.rb
graphql-1.9.8 spec/graphql/list_type_spec.rb
graphql-1.9.7 spec/graphql/list_type_spec.rb
graphql-1.9.6 spec/graphql/list_type_spec.rb
graphql-1.9.5 spec/graphql/list_type_spec.rb
graphql-1.9.4 spec/graphql/list_type_spec.rb
graphql-1.9.3 spec/graphql/list_type_spec.rb
graphql-1.9.2 spec/graphql/list_type_spec.rb
graphql-1.8.17 spec/graphql/list_type_spec.rb
graphql-1.8.16 spec/graphql/list_type_spec.rb
graphql-1.9.1 spec/graphql/list_type_spec.rb
graphql-1.9.0 spec/graphql/list_type_spec.rb
graphql-1.8.15 spec/graphql/list_type_spec.rb
graphql-1.9.0.pre4 spec/graphql/list_type_spec.rb
graphql-1.8.14 spec/graphql/list_type_spec.rb
graphql-1.9.0.pre3 spec/graphql/list_type_spec.rb
graphql-1.9.0.pre2 spec/graphql/list_type_spec.rb