Sha256: 954af3b5f5ea1030f51e9fcd9929f5e25cb66eb65a9c4cecd7d6d7dd4ee3fc3f

Contents?: true

Size: 1.3 KB

Versions: 4

Compression:

Stored size: 1.3 KB

Contents

# frozen_string_literal: true
require "spec_helper"

describe GraphQL::Define::AssignArgument do
  it "it accepts default_value" do
    arg = define_argument(:a, GraphQL::STRING_TYPE, default_value: 'Default')

    assert_equal "Default", arg.default_value
    assert arg.default_value?
  end

  it "default_value is optional" do
    arg = define_argument(:a, GraphQL::STRING_TYPE)

    assert arg.default_value.nil?
    assert !arg.default_value?
  end

  it "default_value can be explicitly set to nil" do
    arg = define_argument(:a, GraphQL::STRING_TYPE, default_value: nil)

    assert arg.default_value.nil?
    assert arg.default_value?
  end

  it "passing unknown keyword arguments will raise" do
    err = assert_raises GraphQL::Define::NoDefinitionError do
      define_argument(:a, GraphQL::STRING_TYPE, blah: nil)
    end

    assert_equal "GraphQL::Argument can't define 'blah'", err.message

    err = assert_raises GraphQL::Define::NoDefinitionError do
      define_argument(:a, GraphQL::STRING_TYPE, blah: nil, blah2: nil)
    end

    assert_equal "GraphQL::Argument can't define 'blah'", err.message
  end

  def define_argument(*args)
    type = GraphQL::ObjectType.define do
      field :a, types.String do
        argument(*args)
      end
    end

    type.fields['a'].arguments[args.first.to_s]
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
graphql-1.6.8 spec/graphql/define/assign_argument_spec.rb
graphql-1.6.7 spec/graphql/define/assign_argument_spec.rb
graphql-1.6.6 spec/graphql/define/assign_argument_spec.rb
graphql-1.6.5 spec/graphql/define/assign_argument_spec.rb