@@ -154,74 +154,81 @@ def self.coerce_result(value, _ctx)
154
154
}
155
155
156
156
describe "load" do
157
+ def assert_equal_or_nil ( expected_value , actual_value )
158
+ if expected_value . nil?
159
+ assert_nil actual_value
160
+ else
161
+ assert_equal expected_value , actual_value
162
+ end
163
+ end
157
164
def assert_deep_equal ( expected_type , actual_type )
158
165
if actual_type . is_a? ( Array )
159
166
actual_type . each_with_index do |obj , index |
160
167
assert_deep_equal expected_type [ index ] , obj
161
168
end
162
169
elsif actual_type . is_a? ( GraphQL ::Schema ::Field )
163
- assert_equal expected_type . graphql_name , actual_type . graphql_name
164
- assert_equal expected_type . description , actual_type . description
165
- assert_equal expected_type . deprecation_reason , actual_type . deprecation_reason
166
- assert_equal expected_type . arguments . keys . sort , actual_type . arguments . keys . sort
170
+ assert_equal_or_nil expected_type . graphql_name , actual_type . graphql_name
171
+ assert_equal_or_nil expected_type . description , actual_type . description
172
+ assert_equal_or_nil expected_type . deprecation_reason , actual_type . deprecation_reason
173
+ assert_equal_or_nil expected_type . arguments . keys . sort , actual_type . arguments . keys . sort
167
174
assert_deep_equal expected_type . arguments . values . sort_by ( &:graphql_name ) , actual_type . arguments . values . sort_by ( &:graphql_name )
168
175
elsif actual_type . is_a? ( GraphQL ::Schema ::EnumValue )
169
- assert_equal expected_type . graphql_name , actual_type . graphql_name
170
- assert_equal expected_type . description , actual_type . description
171
- assert_equal expected_type . deprecation_reason , actual_type . deprecation_reason
176
+ assert_equal_or_nil expected_type . graphql_name , actual_type . graphql_name
177
+ assert_equal_or_nil expected_type . description , actual_type . description
178
+ assert_equal_or_nil expected_type . deprecation_reason , actual_type . deprecation_reason
172
179
elsif actual_type . is_a? ( GraphQL ::Schema ::Argument )
173
- assert_equal expected_type . graphql_name , actual_type . graphql_name
174
- assert_equal expected_type . description , actual_type . description
175
- assert_equal expected_type . deprecation_reason , actual_type . deprecation_reason
180
+ assert_equal_or_nil expected_type . graphql_name , actual_type . graphql_name
181
+ assert_equal_or_nil expected_type . description , actual_type . description
182
+ assert_equal_or_nil expected_type . deprecation_reason , actual_type . deprecation_reason
176
183
assert_deep_equal expected_type . type , actual_type . type
177
184
elsif actual_type . is_a? ( GraphQL ::Schema ::NonNull ) || actual_type . is_a? ( GraphQL ::Schema ::List )
178
- assert_equal expected_type . class , actual_type . class
185
+ assert_equal_or_nil expected_type . class , actual_type . class
179
186
assert_deep_equal expected_type . of_type , actual_type . of_type
180
187
elsif actual_type < GraphQL ::Schema
181
- assert_equal expected_type . query . graphql_name , actual_type . query . graphql_name
182
- assert_equal expected_type . mutation . graphql_name , actual_type . mutation . graphql_name
183
- assert_equal expected_type . directives . keys . sort , actual_type . directives . keys . sort
188
+ assert_equal_or_nil expected_type . query . graphql_name , actual_type . query . graphql_name
189
+ assert_equal_or_nil expected_type . mutation . graphql_name , actual_type . mutation . graphql_name
190
+ assert_equal_or_nil expected_type . directives . keys . sort , actual_type . directives . keys . sort
184
191
assert_deep_equal expected_type . directives . values . sort_by ( &:graphql_name ) , actual_type . directives . values . sort_by ( &:graphql_name )
185
- assert_equal expected_type . types . keys . sort , actual_type . types . keys . sort
192
+ assert_equal_or_nil expected_type . types . keys . sort , actual_type . types . keys . sort
186
193
assert_deep_equal expected_type . types . values . sort_by ( &:graphql_name ) , actual_type . types . values . sort_by ( &:graphql_name )
187
- assert_equal expected_type . description , actual_type . description
194
+ assert_equal_or_nil expected_type . description , actual_type . description
188
195
elsif actual_type < GraphQL ::Schema ::Object
189
- assert_equal expected_type . graphql_name , actual_type . graphql_name
190
- assert_equal expected_type . description , actual_type . description
191
- assert_equal expected_type . interfaces . map ( &:graphql_name ) . sort , actual_type . interfaces . map ( &:graphql_name ) . sort
196
+ assert_equal_or_nil expected_type . graphql_name , actual_type . graphql_name
197
+ assert_equal_or_nil expected_type . description , actual_type . description
198
+ assert_equal_or_nil expected_type . interfaces . map ( &:graphql_name ) . sort , actual_type . interfaces . map ( &:graphql_name ) . sort
192
199
assert_deep_equal expected_type . interfaces . sort_by ( &:graphql_name ) , actual_type . interfaces . sort_by ( &:graphql_name )
193
- assert_equal expected_type . fields . keys . sort , actual_type . fields . keys . sort
200
+ assert_equal_or_nil expected_type . fields . keys . sort , actual_type . fields . keys . sort
194
201
assert_deep_equal expected_type . fields . values . sort_by ( &:graphql_name ) , actual_type . fields . values . sort_by ( &:graphql_name )
195
202
elsif actual_type < GraphQL ::Schema ::Interface
196
- assert_equal expected_type . graphql_name , actual_type . graphql_name
197
- assert_equal expected_type . description , actual_type . description
198
- assert_equal expected_type . fields . keys . sort , actual_type . fields . keys . sort
203
+ assert_equal_or_nil expected_type . graphql_name , actual_type . graphql_name
204
+ assert_equal_or_nil expected_type . description , actual_type . description
205
+ assert_equal_or_nil expected_type . fields . keys . sort , actual_type . fields . keys . sort
199
206
assert_deep_equal expected_type . fields . values . sort_by ( &:graphql_name ) , actual_type . fields . values . sort_by ( &:graphql_name )
200
207
elsif actual_type < GraphQL ::Schema ::Union
201
- assert_equal expected_type . graphql_name , actual_type . graphql_name
202
- assert_equal expected_type . description , actual_type . description
203
- assert_equal expected_type . possible_types . map ( &:graphql_name ) . sort , actual_type . possible_types . map ( &:graphql_name ) . sort
208
+ assert_equal_or_nil expected_type . graphql_name , actual_type . graphql_name
209
+ assert_equal_or_nil expected_type . description , actual_type . description
210
+ assert_equal_or_nil expected_type . possible_types . map ( &:graphql_name ) . sort , actual_type . possible_types . map ( &:graphql_name ) . sort
204
211
assert_deep_equal expected_type . possible_types . sort_by ( &:graphql_name ) , actual_type . possible_types . sort_by ( &:graphql_name )
205
212
elsif actual_type < GraphQL ::Schema ::Scalar
206
- assert_equal expected_type . graphql_name , actual_type . graphql_name
207
- assert_equal expected_type . specified_by_url , actual_type . specified_by_url
213
+ assert_equal_or_nil expected_type . graphql_name , actual_type . graphql_name
214
+ assert_equal_or_nil expected_type . specified_by_url , actual_type . specified_by_url
208
215
elsif actual_type < GraphQL ::Schema ::Enum
209
- assert_equal expected_type . graphql_name , actual_type . graphql_name
210
- assert_equal expected_type . description , actual_type . description
216
+ assert_equal_or_nil expected_type . graphql_name , actual_type . graphql_name
217
+ assert_equal_or_nil expected_type . description , actual_type . description
211
218
assert_deep_equal expected_type . values . values . sort_by ( &:graphql_name ) , actual_type . values . values . sort_by ( &:graphql_name )
212
219
elsif actual_type < GraphQL ::Schema ::InputObject
213
- assert_equal expected_type . graphql_name , actual_type . graphql_name
214
- assert_equal expected_type . arguments . keys . sort , actual_type . arguments . keys . sort
220
+ assert_equal_or_nil expected_type . graphql_name , actual_type . graphql_name
221
+ assert_equal_or_nil expected_type . arguments . keys . sort , actual_type . arguments . keys . sort
215
222
assert_deep_equal expected_type . arguments . values . sort_by ( &:graphql_name ) , actual_type . arguments . values . sort_by ( &:graphql_name )
216
223
elsif actual_type < GraphQL ::Schema ::Directive
217
- assert_equal expected_type . graphql_name , actual_type . graphql_name
218
- assert_equal expected_type . description , actual_type . description
219
- assert_equal expected_type . repeatable? , actual_type . repeatable?
220
- assert_equal expected_type . locations . sort , actual_type . locations . sort
221
- assert_equal expected_type . arguments . keys . sort , actual_type . arguments . keys . sort
224
+ assert_equal_or_nil expected_type . graphql_name , actual_type . graphql_name
225
+ assert_equal_or_nil expected_type . description , actual_type . description
226
+ assert_equal_or_nil expected_type . repeatable? , actual_type . repeatable?
227
+ assert_equal_or_nil expected_type . locations . sort , actual_type . locations . sort
228
+ assert_equal_or_nil expected_type . arguments . keys . sort , actual_type . arguments . keys . sort
222
229
assert_deep_equal expected_type . arguments . values . sort_by ( &:graphql_name ) , actual_type . arguments . values . sort_by ( &:graphql_name )
223
230
else
224
- assert_equal expected_type , actual_type
231
+ assert_equa_or_nil expected_type , actual_type
225
232
end
226
233
end
227
234
0 commit comments