class RSpec::GraphqlMatchers::AcceptArguments

Attributes

actual_field[R]
expected_args[R]

Public Class Methods

new(expected_args) click to toggle source
# File lib/rspec/graphql_matchers/accept_arguments.rb, line 8
def initialize(expected_args)
  @expected_args = expected_args
end

Public Instance Methods

description() click to toggle source
# File lib/rspec/graphql_matchers/accept_arguments.rb, line 25
def description
  "accept arguments #{describe_arguments(expected_args)}"
end
failure_message() click to toggle source
# File lib/rspec/graphql_matchers/accept_arguments.rb, line 20
def failure_message
  "expected field '#{member_name(actual_field)}' to accept arguments "\
  "#{describe_arguments(expected_args)}"
end
matches?(actual_field) click to toggle source
# File lib/rspec/graphql_matchers/accept_arguments.rb, line 12
def matches?(actual_field)
  @actual_field = actual_field

  @expected_args.all? do |arg_name, arg_type|
    matches_argument?(arg_name, arg_type)
  end
end

Private Instance Methods

describe_arguments(what_args) click to toggle source
# File lib/rspec/graphql_matchers/accept_arguments.rb, line 39
def describe_arguments(what_args)
  what_args.sort.map do |arg_name, arg_type|
    "#{arg_name}(#{arg_type})"
  end.join(', ')
end
matches_argument?(arg_name, arg_type) click to toggle source
# File lib/rspec/graphql_matchers/accept_arguments.rb, line 31
def matches_argument?(arg_name, arg_type)
  camel_arg_name = GraphQL::Schema::Member::BuildType.camelize(arg_name.to_s)
  actual_arg = actual_field.arguments[arg_name.to_s]
  actual_arg ||= actual_field.arguments[camel_arg_name]

  actual_arg && types_match?(actual_arg.type, arg_type)
end