rspec-graphql_matchers 1.3.1 → 1.4.0

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
2
  SHA256:
3
- metadata.gz: cfc59ebc6b348aeab1defdb0057751774ea69653260195b26e9a95363f86430a
4
- data.tar.gz: a23a3d725d3e0f2fa8136f7ab9b74efeb411a6e3d0e36e683ae5e99268bb08c6
3
+ metadata.gz: 7dae51bcd93df2cadbbc1f056f27246ffe9fc54fb046cd542bc0461e4caadac8
4
+ data.tar.gz: dfa65482790aa2ca2ad4d7318679e0b80f13b9ba34c27ca7f7f525e699d7ea4a
5
5
  SHA512:
6
- metadata.gz: dcd1bd614c785d6f2d5aee1a444c28af584ebf518ecce0706bb7949bc8eb3a0994ddfae953b9b3a3ceecf8a3110df2d91ff0e3dd11756aa3065a9fd9520d9ed3
7
- data.tar.gz: e3783cc55413014249911495625eb5f01efef58a5fe3acd9991d0d1a10bad45448a03d63d74ef778819003ee703ddabc936910b71c43ced6d6596bf92db17cbf
6
+ metadata.gz: 280d14d08215126ef991443f1d786c5d15b2c5c82a34378f17d3c3cd1bd8ab0ab21efd9d1ff9870115c2aeca6d6b4d72dc80aecc760dbd52b6862807440e1f5b
7
+ data.tar.gz: 571b16fe5f151501313b6a7e94ba32b4f431fa352f2cf11f0ae06af44f1a5e8143a68dc4961cdbcef359c081696391977483e1b65972bb574e2d3ab0029cfa26
@@ -2,7 +2,7 @@ name: RSpec
2
2
 
3
3
  # Controls when the action will run. Triggers the workflow on push or pull request
4
4
  # events but only for the master branch
5
- on: [ push, pull_request ]
5
+ on: [push, pull_request]
6
6
 
7
7
  jobs:
8
8
  # This workflow contains a single job "rspec"
@@ -12,7 +12,7 @@ jobs:
12
12
 
13
13
  strategy:
14
14
  matrix:
15
- ruby_version: [ 2.6, 2.7, 3.0 ]
15
+ ruby_version: [2.6, 2.7, 3.0, 3.1, 3.2]
16
16
 
17
17
  # Steps represent a sequence of tasks that will be executed as part of the job
18
18
  steps:
@@ -36,6 +36,6 @@ jobs:
36
36
  key: ${{ runner.os }}-${{ matrix.ruby_version }}-gems-${{ hashFiles('**/Gemfile.lock') }}
37
37
  restore-keys: |
38
38
  ${{ runner.os }}-${{ matrix.ruby_version }}-gems-
39
-
39
+
40
40
  - name: Run RSpec
41
41
  run: bundle exec rspec
data/CHANGELOG.md CHANGED
@@ -1,6 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.4.0 (April 16th, 2023)
4
+
5
+ - Removal of deprecated calls to #to_graphql, replacing them with #to_type_signature that was added in graphql-ruby 1.8.3 (https://github.com/khamusa/rspec-graphql_matchers/pull/43 @RobinDaugherty)
6
+ - Dropped support for legacy .define API
7
+ - Dropped support to old relay interfaces
8
+ - Fixed with_hash_key matcher for newer versions of graphql-ruby
9
+ - Fixed errors that occured in some edge cases when generating descriptions for accept_argument and have_a_field matchers
10
+ - Documentations improvement and general cleanup
11
+ - Dropped support to graphql-ruby versions before 1.10.12.
12
+
3
13
  ## 1.3.1 (Aug 2nd, 2021)
14
+
4
15
  - Corrected gem dependencies so it properly requires RSpec when loaded (thanks to @itay-grudev)
5
16
 
6
17
  ## 1.3.0 (May 7th, 2020)
data/Gemfile CHANGED
@@ -4,11 +4,3 @@ source 'https://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in rspec-graphql_matchers.gemspec
6
6
  gemspec
7
-
8
- # rubocop:disable Bundle/DuplicatedGem
9
- if ENV['GRAPHQL_GEM_VERSION'] == '1.8'
10
- gem 'graphql', '~> 1.8.0'
11
- elsif ENV['GRAPHQL_GEM_VERSION'] == '1.9'
12
- gem 'graphql', '~> 1.9.0'
13
- end
14
- # rubocop:enable Bundle/DuplicatedGem
data/README.md CHANGED
@@ -25,12 +25,7 @@ Where a valid type for the expectation is either:
25
25
 
26
26
  - A reference to the actual type you expect;
27
27
  - [Recommended] A String representation of a type: `"String!"`, `"Int!"`, `"[String]!"`
28
- (note the exclamation mark at the end, as required by the [GraphQL specs](http://graphql.org/).
29
-
30
- 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:
31
-
32
- - `expect(a_graphql_object).to have_a_field(field_name).with_property(property_name).with_metadata(metadata_hash)`
33
- - `expect(a_graphql_object).to have_a_field(field_name).with_hash_key(hash_key)`
28
+ (note the exclamation mark at the end, as required by the [GraphQL specifications](http://graphql.org/).
34
29
 
35
30
  ## Examples
36
31
 
@@ -41,7 +36,7 @@ class PostType < GraphQL::Schema::Object
41
36
  graphql_name "Post"
42
37
  description "A blog post"
43
38
 
44
- implements GraphQL::Relay::Node.interface
39
+ implements GraphQL::Types::Relay::Node
45
40
 
46
41
  field :id, ID, null: false
47
42
  field :comments, [String], null: false
@@ -97,27 +92,7 @@ describe PostType do
97
92
  end
98
93
  ```
99
94
 
100
- ### 3) For objects defined using the legacy `#define` api, you can also use `with_property`, `with_hash_key` and `with_metadata`:
101
-
102
- ```ruby
103
- PostTypeWithDefineApi = GraphQL::ObjectType.define do
104
- name "DefinedPost"
105
-
106
- interfaces [GraphQL::Relay::Node.interface]
107
-
108
- field :id, !types.ID, property: :post_id
109
- field :comments, !types[types.String], hash_key: :post_comments
110
- field :isPublished, admin_only: true
111
- end
112
-
113
- describe PostTypeWithDefineApi do
114
- it { is_expected.to have_a_field(:id).of_type('ID!').with_property(:post_id) }
115
- it { is_expected.to have_a_field(:comments).with_hash_key(:post_comments) }
116
- it { is_expected.to have_a_field(:isPublished).with_metadata(admin_only: true) }
117
- end
118
- ```
119
-
120
- ### 4) Test the arguments accepted by a field with `accept_argument` matcher:
95
+ ### 3) Test the arguments accepted by a field with `accept_argument` matcher:
121
96
 
122
97
  ```ruby
123
98
  describe PostType do
@@ -138,7 +113,7 @@ describe PostType do
138
113
  end
139
114
  ```
140
115
 
141
- ### 5) Test an object's interface implementations:
116
+ ### 4) Test an object's interface implementations:
142
117
 
143
118
  ```ruby
144
119
  describe PostType do
@@ -149,12 +124,12 @@ describe PostType do
149
124
  end
150
125
 
151
126
  # Accepts arguments as an array and type objects directly
152
- it { is_expected.to implement(GraphQL::Relay::Node.interface) }
127
+ it { is_expected.to implement(GraphQL::Types::Relay::Node) }
153
128
  it { is_expected.not_to implement('OtherInterface') }
154
129
  end
155
130
  ```
156
131
 
157
- ### 6) Using camelize: false on field names
132
+ ### 5) Using camelize: false on field names
158
133
 
159
134
  By default the graphql gem camelizes field names. This gem deals with it transparently:
160
135
 
@@ -162,7 +137,7 @@ By default the graphql gem camelizes field names. This gem deals with it transpa
162
137
  class ObjectMessingWithCamelsAndSnakesType < GraphQL::Schema::Object
163
138
  graphql_name 'ObjectMessingWithCamelsAndSnakes'
164
139
 
165
- implements GraphQL::Relay::Node.interface
140
+ implements GraphQL::Types::Relay::Node
166
141
 
167
142
  field :me_gusta_los_camellos, ID, null: false
168
143
 
@@ -59,11 +59,11 @@ module RSpec
59
59
  private
60
60
 
61
61
  def descriptions
62
- @results.map(&:description)
62
+ results.map(&:description)
63
63
  end
64
64
 
65
65
  def failure_messages
66
- @results.map(&:failure_message)
66
+ results.map(&:failure_message)
67
67
  end
68
68
 
69
69
  def field_arguments
@@ -74,6 +74,10 @@ module RSpec
74
74
  'matcher. It does not seem to be a valid GraphQL object type.'
75
75
  end
76
76
  end
77
+
78
+ def results
79
+ @results ||= []
80
+ end
77
81
  end
78
82
  end
79
83
  end
@@ -16,7 +16,7 @@ module RSpec
16
16
  end
17
17
 
18
18
  def type_name(a_type)
19
- a_type = a_type.to_graphql if a_type.respond_to?(:to_graphql)
19
+ a_type = a_type.to_type_signature if a_type.respond_to?(:to_type_signature)
20
20
 
21
21
  a_type.to_s
22
22
  end
@@ -28,9 +28,9 @@ module RSpec
28
28
  private
29
29
 
30
30
  def to_graphql(field_sample)
31
- return field_sample unless field_sample.respond_to?(:to_graphql)
31
+ return field_sample unless field_sample.respond_to?(:to_type_signature)
32
32
 
33
- field_sample.to_graphql
33
+ field_sample.to_type_signature
34
34
  end
35
35
  end
36
36
  end
@@ -80,16 +80,16 @@ module RSpec
80
80
  field = field_collection[@expected_field_name]
81
81
  field ||= field_collection[@expected_camel_field_name]
82
82
 
83
- field.respond_to?(:to_graphql) ? field.to_graphql : field
83
+ field.respond_to?(:to_type_signature) ? field.to_type_signature : field
84
84
  end
85
85
  end
86
86
 
87
87
  def descriptions
88
- @results.map(&:description)
88
+ results.map(&:description)
89
89
  end
90
90
 
91
91
  def failure_messages
92
- @results.map(&:failure_message)
92
+ results.map(&:failure_message)
93
93
  end
94
94
 
95
95
  def field_collection
@@ -108,6 +108,10 @@ module RSpec
108
108
  when :return_fields then 'have_a_return_field'
109
109
  end
110
110
  end
111
+
112
+ def results
113
+ @results ||= []
114
+ end
111
115
  end
112
116
  end
113
117
  end
@@ -28,7 +28,11 @@ module RSpec
28
28
  return actual_field.hash_key.to_sym if actual_field.hash_key
29
29
  end
30
30
 
31
- actual_field.metadata[:type_class].method_sym
31
+ if actual_field.respond_to?(:metadata)
32
+ return actual_field.metadata[:type_class].method_sym
33
+ end
34
+
35
+ actual_field.method_sym
32
36
  end
33
37
  end
34
38
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rspec
4
4
  module GraphqlMatchers
5
- VERSION = '1.3.1'.freeze
5
+ VERSION = '1.4.0'.freeze
6
6
  end
7
7
  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_dependency 'graphql', '>= 1.8', '< 2.0'
28
+ spec.add_dependency 'graphql', '>= 1.10.12', '< 2.0'
29
29
  spec.add_dependency 'rspec', '~> 3.0'
30
30
  spec.add_development_dependency 'bundler', '~> 2.0'
31
31
  # CodeClimate does not yet support SimpleCov 0.18
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: 1.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Brandão
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-11 00:00:00.000000000 Z
11
+ date: 2023-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: graphql
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.8'
19
+ version: 1.10.12
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '2.0'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '1.8'
29
+ version: 1.10.12
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '2.0'
@@ -100,7 +100,7 @@ dependencies:
100
100
  - - '='
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0.71'
103
- description:
103
+ description:
104
104
  email:
105
105
  - gb.samuel@gmail.com
106
106
  executables: []
@@ -141,7 +141,7 @@ homepage: https://github.com/khamusa/rspec-graphql_matchers
141
141
  licenses:
142
142
  - MIT
143
143
  metadata: {}
144
- post_install_message:
144
+ post_install_message:
145
145
  rdoc_options: []
146
146
  require_paths:
147
147
  - lib
@@ -156,8 +156,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
156
  - !ruby/object:Gem::Version
157
157
  version: '0'
158
158
  requirements: []
159
- rubygems_version: 3.2.5
160
- signing_key:
159
+ rubygems_version: 3.3.7
160
+ signing_key:
161
161
  specification_version: 4
162
162
  summary: Collection of rspec matchers to test your graphQL api schema.
163
163
  test_files: []