Sha256: 265bc2b48c810f48e4d8836cc958145d38afee25b2e609163ce4788ee9987e0a

Contents?: true

Size: 1.08 KB

Versions: 15

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true
# This module assumes you have `let(:query_string)` in your spec.
# It provides `errors` which are the validation errors for that string,
# as validated against `Dummy::Schema`.
# You can override `schema` to provide another schema
# @example testing static validation
#   include StaticValidationHelpers
#   let(:query_string) { " ... " }
#   it "validates" do
#     assert_equal(errors, [ ... ])
#     assert_equal(error_messages, [ ... ])
#   end
module StaticValidationHelpers
  def errors
    @errors ||= begin
      target_schema = schema
      validator = GraphQL::StaticValidation::Validator.new(schema: target_schema)
      query = GraphQL::Query.new(target_schema, query_string)
      validator.validate(query)[:errors].map(&:to_h)
    end
  end

  def error_messages
    errors.map { |e| e["message"] }
  end

  def schema
    # without #graphql_definition call here #errors / #error_messages will reference a different schema object
    # than the one returned by schema so it's difficult to make changes in specs.
    Dummy::Schema.graphql_definition
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
graphql-1.9.11 spec/support/static_validation_helpers.rb
graphql-1.9.10 spec/support/static_validation_helpers.rb
graphql-1.9.9 spec/support/static_validation_helpers.rb
graphql-1.9.8 spec/support/static_validation_helpers.rb
graphql-1.9.7 spec/support/static_validation_helpers.rb
graphql-1.9.6 spec/support/static_validation_helpers.rb
graphql-1.9.5 spec/support/static_validation_helpers.rb
graphql-1.9.4 spec/support/static_validation_helpers.rb
graphql-1.9.3 spec/support/static_validation_helpers.rb
graphql-1.9.2 spec/support/static_validation_helpers.rb
graphql-1.9.1 spec/support/static_validation_helpers.rb
graphql-1.9.0 spec/support/static_validation_helpers.rb
graphql-1.9.0.pre4 spec/support/static_validation_helpers.rb
graphql-1.9.0.pre3 spec/support/static_validation_helpers.rb
graphql-1.9.0.pre2 spec/support/static_validation_helpers.rb