rspec-graphql_matchers 0.7.1 → 1.0.0.pre.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2d5a665edd8997d234fa2d6d029c7ede2e6f5686
4
- data.tar.gz: 8c558b4b4438bcd32d5dfb4b969f10c7a775fdb9
2
+ SHA256:
3
+ metadata.gz: 2c995f57264270239040010ba138b480e7280b05e1ca75b54dbc4a03426ba42c
4
+ data.tar.gz: fcbc1410d22f83530270cd24db7cbe81541754a0b8cd58d27265dd7b248cdf3c
5
5
  SHA512:
6
- metadata.gz: 36298dc58bb067d78d0997e5ca7537f09eddfa00931aeec6be867cde92b581e13f83c062417c7b052dd280df4a0a93c30b117b1113a99ee290b27bb800ebb5e7
7
- data.tar.gz: 4338619fb13dec26dc567f50cc4bc6fbd826b27d524d61e50be69393b087b152dfca14b728041de0883390dbb8e7384f8f376f8618db86460203cbe8d2cbb702
6
+ metadata.gz: 150c4f842ffef148a7063803d09d4c5433f7ff63637e70fb9cafc2ddb3e6d480ccc1662af7f30aaf241791ae6c53e03e24698b8bd4055cf5dc2d47bd273ed10b
7
+ data.tar.gz: 2779881b25f48f04c8f276c4ce5ea6aee3e376f6058e83ecfa54b9c5e04c7e24c31127cb66c07f5a861b1da2af2fe8e12517fb369d52cb3edeb810e09d924552
data/.rubocop.yml CHANGED
@@ -26,7 +26,7 @@ Style/Lambda:
26
26
  Enabled: false
27
27
 
28
28
  Metrics/LineLength:
29
- Max: 80
29
+ Max: 90
30
30
 
31
31
  Metrics/MethodLength:
32
32
  Max: 15
data/.travis.yml CHANGED
@@ -3,3 +3,4 @@ language: ruby
3
3
  rvm:
4
4
  - 2.3.1
5
5
  before_install: gem install bundler -v 1.12.3
6
+ script: bundle exec rake
data/CHANGELOG.md CHANGED
@@ -8,37 +8,57 @@
8
8
 
9
9
  ### Bug fixes
10
10
 
11
+ ## 1.0 (June, 2019)
12
+
13
+ ### Breaking changes
14
+
15
+ - Support to property and hash_key matchers will be dropped on upcoming releases.
16
+
17
+ ### Deprecations
18
+
19
+ - `.with_metadata` and `.with_property` matchers for fields will be removed on the next release.
20
+
21
+ ### New features
22
+
23
+ - Add support for Class-based type definition api (adds support for graphql-ruby v1.8.x). Please note that `.with_metadata` and `.with_property` support has been kept but will only work on fields defined using the legacy api.
24
+
25
+ ### Bug fixes
26
+
27
+ ## 0.7.1 (July 27, 2017)
28
+
29
+ Changelog fixes.
30
+
11
31
  ## 0.7.0 (July 27, 2017)
12
32
 
13
33
  ### New features
14
34
 
15
- - (#9, #8) New chainable matchers `with_property`, `with_hash_key` and `with_metadata` (Thanks to @marcgreenstock).
35
+ - (#3, #8) New chainable matchers `with_property`, `with_hash_key` and `with_metadata` (Thanks to @marcgreenstock).
16
36
 
17
37
  ### Improvements
18
38
 
19
- - Default Raketask runs rubocop specs as well (Thanks to @marcgreenstock).
39
+ - Default Raketask runs rubocop specs as well (Thanks to @marcgreenstock).
20
40
 
21
41
  ## 0.6.0 (July 25, 2017)
22
42
 
23
43
  ### New features
24
44
 
25
- - (PR #6) New matchers for interfaces: `expect(...).to implement(interface)` (Thanks to @marcgreenstock).
45
+ - (PR #6) New matchers for interfaces: `expect(...).to implement(interface)` (Thanks to @marcgreenstock).
26
46
 
27
47
  ## 0.5.0 (May 10, 2017)
28
48
 
29
49
  ### New features
30
50
 
31
- - (PR #4) New matchers for mutations: `have_an_input_field` and `have_a_return_field` (Thanks to @aaronklaassen).
51
+ - (PR #4) New matchers for mutations: `have_an_input_field` and `have_a_return_field` (Thanks to @aaronklaassen).
32
52
 
33
53
  ## 0.4.0 (Feb, 2017)
34
54
 
35
55
  ### New features
36
56
 
37
- - Improvements on error messages of have_a_field(...).of_type(...)
57
+ - Improvements on error messages of have_a_field(...).of_type(...)
38
58
 
39
59
  ### Bug fixes
40
60
 
41
- - Fixed a bug preventing proper type checking when using matchers in the form have_a_field(fname).of_type(types.X). The bug would not happen when providing the type expectation as a string, only when using the GraphQL constants.
61
+ - Fixed a bug preventing proper type checking when using matchers in the form have_a_field(fname).of_type(types.X). The bug would not happen when providing the type expectation as a string, only when using the GraphQL constants.
42
62
 
43
63
  ## 0.3.0 (Sep 16, 2016)
44
64
 
@@ -48,7 +68,7 @@
48
68
 
49
69
  ### New features
50
70
 
51
- - New matcher have_field(field_name).of_type(type) for testing types and their fields
71
+ - New matcher have_field(field_name).of_type(type) for testing types and their fields
52
72
 
53
73
  ### Bug fixes
54
74
 
@@ -60,7 +80,7 @@
60
80
 
61
81
  ### New features
62
82
 
63
- - New matcher be_of_type for testing fields
64
- - New matcher accept_arguments for testing fields
83
+ - New matcher be_of_type for testing fields
84
+ - New matcher accept_arguments for testing fields
65
85
 
66
86
  ### Bug fixes
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ ![Build Status](https://travis-ci.org/khamusa/rspec-graphql_matchers.svg?branch=master)
2
+
1
3
  # Rspec::GraphqlMatchers
2
4
 
3
5
  Convenient rspec matchers for testing your [graphql-ruby](https://github.com/rmosolgo/graphql-ruby) API/Schema.
@@ -11,23 +13,25 @@ gem 'rspec-graphql_matchers'
11
13
  ## Usage
12
14
 
13
15
  The matchers currently supported are:
14
- - `expect(a_graphql_object).to have_a_field(field_name).that_returns(valid_type)`
15
- - `expect(a_graphql_object).to implement(interface_name, ...)`
16
- - `expect(a_mutation_type).to have_a_return_field(field_name).returning(valid_type)`
17
- - `expect(a_mutation_type).to have_an_input_field(field_name).of_type(valid_type)`
18
- - `expect(a_field).to be_of_type(valid_type)`
19
- - `expect(an_input).to accept_arguments(hash_of_arg_names_and_valid_types)`
20
- - `expect(an_input).to accept_arguments(hash_of_arg_names_and_valid_types)`
16
+
17
+ - `expect(a_graphql_object).to have_a_field(field_name).that_returns(valid_type)`
18
+ - `expect(a_graphql_object).to implement(interface_name, ...)`
19
+ - `expect(a_mutation_type).to have_a_return_field(field_name).returning(valid_type)`
20
+ - `expect(a_mutation_type).to have_an_input_field(field_name).of_type(valid_type)`
21
+ - `expect(a_field).to be_of_type(valid_type)`
22
+ - `expect(an_input).to accept_arguments(hash_of_arg_names_and_valid_types)`
23
+ - `expect(an_input).to accept_arguments(hash_of_arg_names_and_valid_types)`
21
24
 
22
25
  Where a valid type for the expectation is either:
23
- - A `GraphQL::ObjectType` object (ex: `types.String`, `!types.Int`, `types[types.Int]`, or your own)
24
- - A String representation of a type: `"String!"`, `"Int!"`, `"[String]!"`
25
- (note the exclamation mark at the end, as required by the [GraphQL specs](http://graphql.org/).
26
26
 
27
- Testing `:property`, `:hash_key` and *metadata* is also possible by chaining `.with_property`, `.with_hash_key` and `.with_metadata`. For example:
27
+ - A reference to the actual type you expect;
28
+ - A String representation of a type: `"String!"`, `"Int!"`, `"[String]!"`
29
+ (note the exclamation mark at the end, as required by the [GraphQL specs](http://graphql.org/).
28
30
 
29
- - `expect(a_graphql_object).to have_a_field(field_name).with_property(property_name).with_metadata(metadata_hash)`
30
- - `expect(a_graphql_object).to have_a_field(field_name).with_hash_key(hash_key)`
31
+ For objects defined with the legacy `#define` api, testing `:property`, `:hash_key` and _metadata_ is also possible by chaining `.with_property`, `.with_hash_key` and `.with_metadata`. For example:
32
+
33
+ - `expect(a_graphql_object).to have_a_field(field_name).with_property(property_name).with_metadata(metadata_hash)`
34
+ - `expect(a_graphql_object).to have_a_field(field_name).with_hash_key(hash_key)`
31
35
 
32
36
  ## Examples
33
37
 
@@ -73,6 +77,7 @@ describe PostType do
73
77
  it { is_expected.to have_a_field(:id).returning("ID!") }
74
78
  end
75
79
  ```
80
+
76
81
  ### 2) Test a specific field type with `be_of_type` matcher:
77
82
 
78
83
  ```ruby
@@ -101,9 +106,9 @@ end
101
106
  Keep in mind that when using strings as type expectation you have to use the
102
107
  type name (`Post`) and not the constant name (`PostType`).
103
108
 
104
- Using your type objects directly has the advantage that if you
105
- decide to rename the type your specs won't break, as they would had you
106
- hardcoded it as a String.
109
+ Using your type objects directly is riskier than the string representation, since
110
+ renaming the graphql name of an object is potentially a breaking change that
111
+ wouldn't get caught by your test suite.
107
112
 
108
113
  You can also use the built-in [graphql-ruby](https://github.com/rmosolgo/graphql-ruby) scalar types:
109
114
 
@@ -173,14 +178,14 @@ end
173
178
 
174
179
  ## TODO
175
180
 
176
- - New matchers!
181
+ - New matchers!
177
182
 
178
183
  ## Contributing
179
184
 
180
- - Send Bug reports, suggestions or any general
185
+ - Send Bug reports, suggestions or any general
181
186
  question through the [Issue tracker](https://github.com/khamusa/rspec-graphql_matchers/issues).
182
187
  Think of another matcher that could be useful? This is the place to ask, or...
183
- - Pull requests are welcome through the usual procedure: fork the project,
188
+ - Pull requests are welcome through the usual procedure: fork the project,
184
189
  commit your changes and open the [PR](https://github.com/khamusa/rspec-graphql_matchers/pulls).
185
190
 
186
191
  This project is intended to be a safe, welcoming space for collaboration, and
@@ -1,6 +1,8 @@
1
+ require_relative 'base_matcher'
2
+ require 'pry'
1
3
  module RSpec
2
4
  module GraphqlMatchers
3
- class AcceptArguments
5
+ class AcceptArguments < BaseMatcher
4
6
  attr_reader :actual_field, :expected_args
5
7
 
6
8
  def initialize(expected_args)
@@ -16,7 +18,7 @@ module RSpec
16
18
  end
17
19
 
18
20
  def failure_message
19
- "expected field '#{field_name(actual_field)}' to accept arguments "\
21
+ "expected field '#{member_name(actual_field)}' to accept arguments "\
20
22
  "#{describe_arguments(expected_args)}"
21
23
  end
22
24
 
@@ -28,7 +30,8 @@ module RSpec
28
30
 
29
31
  def matches_argument?(arg_name, arg_type)
30
32
  actual_arg = actual_field.arguments[arg_name.to_s]
31
- actual_arg && actual_arg.type.to_s == arg_type.to_s
33
+
34
+ actual_arg && types_match?(actual_arg.type, arg_type)
32
35
  end
33
36
 
34
37
  def describe_arguments(what_args)
@@ -36,10 +39,6 @@ module RSpec
36
39
  "#{arg_name}(#{arg_type})"
37
40
  end.join(', ')
38
41
  end
39
-
40
- def field_name(field)
41
- field.respond_to?(:name) && field.name || field.inspect
42
- end
43
42
  end
44
43
  end
45
44
  end
@@ -3,7 +3,16 @@ module RSpec
3
3
  class BaseMatcher
4
4
  private
5
5
 
6
+ def member_name(member)
7
+ member.respond_to?(:graphql_name) && member.graphql_name ||
8
+ member.respond_to?(:name) && member.name ||
9
+ member.inspect
10
+ end
11
+
6
12
  def types_match?(actual_type, expected_type)
13
+ actual_type = actual_type.to_graphql if actual_type.respond_to?(:to_graphql)
14
+ expected_type = expected_type.to_graphql if expected_type.respond_to?(:to_graphql)
15
+
7
16
  expected_type.nil? || expected_type.to_s == actual_type.to_s
8
17
  end
9
18
  end
@@ -1,6 +1,8 @@
1
+ require_relative 'base_matcher'
2
+
1
3
  module RSpec
2
4
  module GraphqlMatchers
3
- class BeOfType
5
+ class BeOfType < BaseMatcher
4
6
  attr_reader :sample, :expected
5
7
 
6
8
  def initialize(expected)
@@ -9,23 +11,17 @@ module RSpec
9
11
 
10
12
  def matches?(actual_sample)
11
13
  @sample = actual_sample
12
- sample.type.to_s == @expected.to_s
14
+ sample.respond_to?(:type) && sample.type.to_s == @expected.to_s
13
15
  end
14
16
 
15
17
  def failure_message
16
- "expected field '#{field_name(sample)}' to be of type '#{expected}', " \
18
+ "expected field '#{member_name(sample)}' to be of type '#{expected}', " \
17
19
  "but it was '#{sample.type}'"
18
20
  end
19
21
 
20
22
  def description
21
23
  "be of type '#{expected}'"
22
24
  end
23
-
24
- private
25
-
26
- def field_name(field)
27
- field.respond_to?(:name) && field.name || field.inspect
28
- end
29
25
  end
30
26
  end
31
27
  end
@@ -1,4 +1,8 @@
1
1
  require_relative 'base_matcher'
2
+ require_relative './have_a_field_matchers/of_type'
3
+ require_relative './have_a_field_matchers/with_property'
4
+ require_relative './have_a_field_matchers/with_metadata'
5
+ require_relative './have_a_field_matchers/with_hash_key'
2
6
 
3
7
  module RSpec
4
8
  module GraphqlMatchers
@@ -23,83 +27,54 @@ module RSpec
23
27
  @actual_field = field_collection[@expected_field_name]
24
28
  return false if @actual_field.nil?
25
29
 
26
- @results = @expectations.map do |expectaiton|
27
- name, expected_value = expectaiton
28
- [name, expectation_matches?(name, expected_value)]
29
- end.to_h
30
- @results.values.all?
30
+ @results = @expectations.select do |matcher|
31
+ !matcher.matches?(@actual_field)
32
+ end
33
+
34
+ @results.empty?
31
35
  end
32
36
 
33
37
  def that_returns(expected_field_type)
34
- @expectations << [:type, expected_field_type]
38
+ @expectations << HaveAFieldMatchers::OfType.new(expected_field_type)
35
39
  self
36
40
  end
41
+
37
42
  alias returning that_returns
38
43
  alias of_type that_returns
39
44
 
40
45
  def with_property(expected_property_name)
41
- @expectations << [:property, expected_property_name]
46
+ @expectations << HaveAFieldMatchers::WithProperty.new(expected_property_name)
42
47
  self
43
48
  end
44
49
 
45
50
  def with_hash_key(expected_hash_key)
46
- @expectations << [:hash_key, expected_hash_key]
51
+ @expectations << HaveAFieldMatchers::WithHashKey.new(expected_hash_key)
52
+
47
53
  self
48
54
  end
49
55
 
50
56
  def with_metadata(expected_metadata)
51
- @expectations << [:metadata, expected_metadata]
57
+ @expectations << HaveAFieldMatchers::WithMetadata.new(expected_metadata)
52
58
  self
53
59
  end
54
60
 
55
61
  def failure_message
56
- "expected #{describe_obj(@graph_object)} to " \
57
- "#{description}, #{explanation}."
62
+ base_msg = "expected #{member_name(@graph_object)} " \
63
+ "to define field `#{@expected_field_name}`" \
64
+
65
+ return "#{base_msg} #{descriptions.join(', ')}" if @actual_field
66
+
67
+ "#{base_msg} but no field was found with that name"
58
68
  end
59
69
 
60
70
  def description
61
- ["define field `#{@expected_field_name}`"]
62
- .concat(descriptions).join(', ')
71
+ ["define field `#{@expected_field_name}`"].concat(descriptions).join(', ')
63
72
  end
64
73
 
65
74
  private
66
75
 
67
76
  def descriptions
68
- @expectations.map do |expectation|
69
- name, expected_value = expectation
70
- format(DESCRIPTIONS[name], expected_value)
71
- end
72
- end
73
-
74
- def explanation
75
- return 'but no field was found with that name' unless @actual_field
76
- @results.each do |result|
77
- name, match = result
78
- next if match
79
- return format('but the %s was `%s`', name, @actual_field.send(name))
80
- end
81
- end
82
-
83
- def expectation_matches?(name, expected_value)
84
- ensure_method_exists!(name)
85
- if expected_value.is_a?(Hash)
86
- @actual_field.send(name) == expected_value
87
- else
88
- @actual_field.send(name).to_s == expected_value.to_s
89
- end
90
- end
91
-
92
- def ensure_method_exists!(method_name)
93
- return if @actual_field.respond_to?(method_name)
94
- raise(
95
- "The `#{@expected_field_name}` field defined by the GraphQL object " \
96
- "does\'t seem valid as it does not respond to ##{method_name}. " \
97
- "\n\n\tThe field found was #{@actual_field.inspect}. "
98
- )
99
- end
100
-
101
- def describe_obj(field)
102
- field.respond_to?(:name) && field.name || field.inspect
77
+ @results.map(&:description)
103
78
  end
104
79
 
105
80
  def field_collection
@@ -0,0 +1,11 @@
1
+ module RSpec
2
+ module GraphqlMatchers
3
+ module HaveAFieldMatchers
4
+ class OfType < RSpec::GraphqlMatchers::BeOfType
5
+ def description
6
+ "of type `#{expected}`"
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,30 @@
1
+ module RSpec
2
+ module GraphqlMatchers
3
+ module HaveAFieldMatchers
4
+ class WithHashKey
5
+ def initialize(expected_hash_key)
6
+ @expected_hash_key = expected_hash_key
7
+ end
8
+
9
+ def description
10
+ "with hash key `#{@expected_hash_key}`"
11
+ end
12
+
13
+ def matches?(actual_field)
14
+ get_hash_key(actual_field) == @expected_hash_key.to_sym
15
+ end
16
+
17
+ private
18
+
19
+ def get_hash_key(actual_field)
20
+ if actual_field.respond_to?(:hash_key)
21
+ return actual_field.hash_key.to_sym
22
+ end
23
+
24
+ # Class-based api
25
+ actual_field.method_sym
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,19 @@
1
+ module RSpec
2
+ module GraphqlMatchers
3
+ module HaveAFieldMatchers
4
+ class WithMetadata
5
+ def initialize(expected_metadata)
6
+ @expected_metadata = expected_metadata
7
+ end
8
+
9
+ def description
10
+ "with metadata `#{@expected_metadata}`"
11
+ end
12
+
13
+ def matches?(actual_field)
14
+ actual_field.metadata == @expected_metadata
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ module RSpec
2
+ module GraphqlMatchers
3
+ module HaveAFieldMatchers
4
+ class WithProperty
5
+ def initialize(expected_property_name)
6
+ @expected_property_name = expected_property_name
7
+ end
8
+
9
+ def description
10
+ "resolving with property `#{@expected_property_name}`"
11
+ end
12
+
13
+ def matches?(actual_field)
14
+ actual_field.property.to_sym == @expected_property_name.to_sym
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -10,9 +10,7 @@ module RSpec
10
10
  def matches?(graph_object)
11
11
  @graph_object = graph_object
12
12
  @actual = actual
13
- @expected.each do |name|
14
- return false unless @actual.include?(name)
15
- end
13
+ @expected.all? { |name| @actual.include?(name) }
16
14
  end
17
15
 
18
16
  def failure_message
@@ -35,12 +33,20 @@ module RSpec
35
33
 
36
34
  def actual
37
35
  if @graph_object.respond_to?(:interfaces)
38
- @graph_object.interfaces.map(&:to_s)
36
+ @graph_object.interfaces.map do |interface|
37
+ interface_name(interface)
38
+ end
39
39
  else
40
40
  raise "Invalid object #{@graph_object} provided to #{matcher_name} " \
41
41
  'matcher. It does not seem to be a valid GraphQL object type.'
42
42
  end
43
43
  end
44
+
45
+ def interface_name(interface)
46
+ return interface.graphql_name if interface.respond_to?(:graphql_name)
47
+
48
+ interface.to_s
49
+ end
44
50
  end
45
51
  end
46
52
  end
@@ -20,10 +20,12 @@ module RSpec
20
20
  RSpec::GraphqlMatchers::HaveAField.new(field_name)
21
21
  end
22
22
  alias have_field have_a_field
23
+
23
24
  def have_an_input_field(field_name)
24
25
  RSpec::GraphqlMatchers::HaveAField.new(field_name, :input_fields)
25
26
  end
26
27
  alias have_input_field have_an_input_field
28
+
27
29
  def have_a_return_field(field_name)
28
30
  RSpec::GraphqlMatchers::HaveAField.new(field_name, :return_fields)
29
31
  end
@@ -1,5 +1,5 @@
1
1
  module Rspec
2
2
  module GraphqlMatchers
3
- VERSION = '0.7.1'.freeze
3
+ VERSION = '1.0.0-0.1'.freeze
4
4
  end
5
5
  end
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
26
  spec.require_paths = ['lib']
27
27
 
28
- spec.add_runtime_dependency 'graphql', '>= 0.9', '< 2'
28
+ spec.add_runtime_dependency 'graphql', '>= 1.8', '< 1.9'
29
29
  spec.add_development_dependency 'bundler', '~> 1.12'
30
30
  spec.add_development_dependency 'rubocop', '~> 0'
31
31
  spec.add_development_dependency 'rspec', '~> 3.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-graphql_matchers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 1.0.0.pre.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Brandão
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-27 00:00:00.000000000 Z
11
+ date: 2019-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: graphql
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.9'
19
+ version: '1.8'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '2'
22
+ version: '1.9'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '0.9'
29
+ version: '1.8'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '2'
32
+ version: '1.9'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: bundler
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -112,6 +112,10 @@ files:
112
112
  - lib/rspec/graphql_matchers/base_matcher.rb
113
113
  - lib/rspec/graphql_matchers/be_of_type.rb
114
114
  - lib/rspec/graphql_matchers/have_a_field.rb
115
+ - lib/rspec/graphql_matchers/have_a_field_matchers/of_type.rb
116
+ - lib/rspec/graphql_matchers/have_a_field_matchers/with_hash_key.rb
117
+ - lib/rspec/graphql_matchers/have_a_field_matchers/with_metadata.rb
118
+ - lib/rspec/graphql_matchers/have_a_field_matchers/with_property.rb
115
119
  - lib/rspec/graphql_matchers/implement.rb
116
120
  - lib/rspec/graphql_matchers/matchers.rb
117
121
  - lib/rspec/graphql_matchers/types_helper.rb
@@ -132,12 +136,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
136
  version: '0'
133
137
  required_rubygems_version: !ruby/object:Gem::Requirement
134
138
  requirements:
135
- - - ">="
139
+ - - ">"
136
140
  - !ruby/object:Gem::Version
137
- version: '0'
141
+ version: 1.3.1
138
142
  requirements: []
139
143
  rubyforge_project:
140
- rubygems_version: 2.6.12
144
+ rubygems_version: 2.7.8
141
145
  signing_key:
142
146
  specification_version: 4
143
147
  summary: Collection of rspec matchers to test your graphQL api schema.