class GraphQL::SchemaComparator::Changes::FieldArgumentDefaultChanged

Dangerous Changes

Attributes

criticality[R]
field[R]
new_argument[R]
old_argument[R]
type[R]

Public Class Methods

new(type, field, old_argument, new_argument) click to toggle source
# File lib/graphql/schema_comparator/changes.rb, line 442
def initialize(type, field, old_argument, new_argument)
  @type = type
  @field = field
  @old_argument = old_argument
  @new_argument = new_argument
  @criticality = Changes::Criticality.dangerous(
    reason: "Changing the default value for an argument may change the runtime " \
      "behaviour of a field if it was never provided."
  )
end

Public Instance Methods

message() click to toggle source
# File lib/graphql/schema_comparator/changes.rb, line 453
def message
  if old_argument.default_value.nil? || old_argument.default_value == :__no_default__
    "Default value `#{new_argument.default_value}` was added to argument `#{new_argument.graphql_name}` on field `#{type.graphql_definition}.#{field.graphql_name}`"
  else
    "Default value for argument `#{new_argument.graphql_name}` on field `#{type.graphql_definition}.#{field.name}` changed"\
      " from `#{old_argument.default_value}` to `#{new_argument.default_value}`"
  end
end
path() click to toggle source
# File lib/graphql/schema_comparator/changes.rb, line 462
def path
  [type.graphql_definition, field.graphql_name, old_argument.graphql_name].join('.')
end