rspec-graphql_matchers 0.7.1 → 1.0.0.pre.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.