graphql 1.9.0.pre3 → 1.9.0.pre4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/lib/graphql/analysis/ast/visitor.rb +5 -0
  3. data/lib/graphql/execution/interpreter/hash_response.rb +1 -1
  4. data/lib/graphql/execution/interpreter/resolve.rb +2 -0
  5. data/lib/graphql/execution/interpreter/runtime.rb +11 -2
  6. data/lib/graphql/execution/lookahead.rb +1 -1
  7. data/lib/graphql/internal_representation/rewrite.rb +5 -5
  8. data/lib/graphql/language/parser.rb +1 -1
  9. data/lib/graphql/language/parser.y +1 -1
  10. data/lib/graphql/language/printer.rb +1 -1
  11. data/lib/graphql/language/visitor.rb +1 -1
  12. data/lib/graphql/query.rb +1 -1
  13. data/lib/graphql/query/arguments.rb +1 -1
  14. data/lib/graphql/query/arguments_cache.rb +1 -1
  15. data/lib/graphql/query/validation_pipeline.rb +3 -3
  16. data/lib/graphql/schema.rb +1 -1
  17. data/lib/graphql/schema/field.rb +25 -11
  18. data/lib/graphql/schema/field/connection_extension.rb +1 -1
  19. data/lib/graphql/schema/field_extension.rb +11 -3
  20. data/lib/graphql/schema/mutation.rb +1 -1
  21. data/lib/graphql/static_validation/base_visitor.rb +1 -1
  22. data/lib/graphql/static_validation/definition_dependencies.rb +3 -3
  23. data/lib/graphql/static_validation/literal_validator.rb +1 -1
  24. data/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb +1 -1
  25. data/lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb +1 -1
  26. data/lib/graphql/static_validation/rules/fields_will_merge.rb +1 -1
  27. data/lib/graphql/static_validation/validator.rb +1 -1
  28. data/lib/graphql/types/relay/node_field.rb +15 -0
  29. data/lib/graphql/types/relay/nodes_field.rb +17 -1
  30. data/lib/graphql/version.rb +1 -1
  31. data/spec/graphql/analysis/ast_spec.rb +12 -0
  32. data/spec/graphql/execution/interpreter_spec.rb +83 -0
  33. data/spec/graphql/schema/field_extension_spec.rb +26 -4
  34. data/spec/graphql/static_validation/rules/argument_literals_are_compatible_spec.rb +3 -3
  35. data/spec/integration/rails/graphql/relay/mutation_spec.rb +48 -0
  36. data/spec/integration/tmp/app/graphql/types/family_type.rb +9 -0
  37. metadata +4 -98
  38. data/spec/integration/tmp/app/graphql/types/bird_type.rb +0 -7
  39. data/spec/integration/tmp/dummy/Gemfile +0 -45
  40. data/spec/integration/tmp/dummy/README.rdoc +0 -28
  41. data/spec/integration/tmp/dummy/Rakefile +0 -6
  42. data/spec/integration/tmp/dummy/app/assets/javascripts/application.js +0 -16
  43. data/spec/integration/tmp/dummy/app/assets/stylesheets/application.css +0 -15
  44. data/spec/integration/tmp/dummy/app/controllers/application_controller.rb +0 -5
  45. data/spec/integration/tmp/dummy/app/controllers/graphql_controller.rb +0 -43
  46. data/spec/integration/tmp/dummy/app/graphql/dummy_schema.rb +0 -34
  47. data/spec/integration/tmp/dummy/app/graphql/types/base_enum.rb +0 -4
  48. data/spec/integration/tmp/dummy/app/graphql/types/base_input_object.rb +0 -4
  49. data/spec/integration/tmp/dummy/app/graphql/types/base_interface.rb +0 -5
  50. data/spec/integration/tmp/dummy/app/graphql/types/base_object.rb +0 -4
  51. data/spec/integration/tmp/dummy/app/graphql/types/base_scalar.rb +0 -4
  52. data/spec/integration/tmp/dummy/app/graphql/types/base_union.rb +0 -4
  53. data/spec/integration/tmp/dummy/app/graphql/types/mutation_type.rb +0 -10
  54. data/spec/integration/tmp/dummy/app/graphql/types/query_type.rb +0 -15
  55. data/spec/integration/tmp/dummy/app/helpers/application_helper.rb +0 -2
  56. data/spec/integration/tmp/dummy/app/views/layouts/application.html.erb +0 -14
  57. data/spec/integration/tmp/dummy/bin/bundle +0 -3
  58. data/spec/integration/tmp/dummy/bin/rails +0 -4
  59. data/spec/integration/tmp/dummy/bin/rake +0 -4
  60. data/spec/integration/tmp/dummy/bin/setup +0 -29
  61. data/spec/integration/tmp/dummy/config.ru +0 -4
  62. data/spec/integration/tmp/dummy/config/application.rb +0 -32
  63. data/spec/integration/tmp/dummy/config/boot.rb +0 -3
  64. data/spec/integration/tmp/dummy/config/environment.rb +0 -5
  65. data/spec/integration/tmp/dummy/config/environments/development.rb +0 -38
  66. data/spec/integration/tmp/dummy/config/environments/production.rb +0 -76
  67. data/spec/integration/tmp/dummy/config/environments/test.rb +0 -42
  68. data/spec/integration/tmp/dummy/config/initializers/assets.rb +0 -11
  69. data/spec/integration/tmp/dummy/config/initializers/backtrace_silencers.rb +0 -7
  70. data/spec/integration/tmp/dummy/config/initializers/cookies_serializer.rb +0 -3
  71. data/spec/integration/tmp/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  72. data/spec/integration/tmp/dummy/config/initializers/inflections.rb +0 -16
  73. data/spec/integration/tmp/dummy/config/initializers/mime_types.rb +0 -4
  74. data/spec/integration/tmp/dummy/config/initializers/session_store.rb +0 -3
  75. data/spec/integration/tmp/dummy/config/initializers/to_time_preserves_timezone.rb +0 -10
  76. data/spec/integration/tmp/dummy/config/initializers/wrap_parameters.rb +0 -9
  77. data/spec/integration/tmp/dummy/config/locales/en.yml +0 -23
  78. data/spec/integration/tmp/dummy/config/routes.rb +0 -61
  79. data/spec/integration/tmp/dummy/config/secrets.yml +0 -22
  80. data/spec/integration/tmp/dummy/db/seeds.rb +0 -7
  81. data/spec/integration/tmp/dummy/public/404.html +0 -67
  82. data/spec/integration/tmp/dummy/public/422.html +0 -67
  83. data/spec/integration/tmp/dummy/public/500.html +0 -66
  84. data/spec/integration/tmp/dummy/public/favicon.ico +0 -0
  85. data/spec/integration/tmp/dummy/public/robots.txt +0 -5
@@ -4,6 +4,21 @@ module GraphQL
4
4
  module Relay
5
5
  # This can be used for implementing `Query.node(id: ...)`,
6
6
  # or use it for inspiration for your own field definition.
7
+ #
8
+ # @example Adding this field directly
9
+ # add_field(GraphQL::Types::Relay::NodeField)
10
+ #
11
+ # @example Implementing a similar field in your own Query root
12
+ #
13
+ # field :node, GraphQL::Types::Relay::Node, null: true,
14
+ # description: "Fetches an object given its ID" do
15
+ # argument :id, ID, required: true
16
+ # end
17
+ #
18
+ # def node(id:)
19
+ # context.schema.object_from_id(context, id)
20
+ # end
21
+ #
7
22
  NodeField = GraphQL::Schema::Field.new(
8
23
  name: "node",
9
24
  owner: nil,
@@ -4,7 +4,23 @@ module GraphQL
4
4
  module Relay
5
5
  # This can be used for implementing `Query.nodes(ids: ...)`,
6
6
  # or use it for inspiration for your own field definition.
7
- # @see GraphQL::Types::Relay::NodeField
7
+ #
8
+ # @example Adding this field directly
9
+ # add_field(GraphQL::Types::Relay::NodesField)
10
+ #
11
+ # @example Implementing a similar field in your own Query root
12
+ #
13
+ # field :nodes, [GraphQL::Types::Relay::Node, null: true], null: false,
14
+ # description: Fetches a list of objects given a list of IDs." do
15
+ # argument :ids, [ID], required: true
16
+ # end
17
+ #
18
+ # def nodes(ids:)
19
+ # ids.map do |id|
20
+ # context.schema.object_from_id(context, id)
21
+ # end
22
+ # end
23
+ #
8
24
  NodesField = GraphQL::Schema::Field.new(
9
25
  name: "nodes",
10
26
  owner: nil,
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module GraphQL
3
- VERSION = "1.9.0.pre3"
3
+ VERSION = "1.9.0.pre4"
4
4
  end
@@ -137,6 +137,18 @@ describe GraphQL::Analysis::AST do
137
137
  }
138
138
  |}
139
139
 
140
+ describe "without a selected operation" do
141
+ let(:query_string) {%|
142
+ # A comment
143
+ # And nothing else
144
+ # Should not break
145
+ |}
146
+
147
+ it "bails early when there is no selected operation to be executed" do
148
+ assert_equal 2, reduce_result.size
149
+ end
150
+ end
151
+
140
152
  describe "conditional analysis" do
141
153
  let(:analyzers) { [AstTypeCollector, AstConditionalAnalyzer] }
142
154
 
@@ -78,6 +78,8 @@ describe GraphQL::Execution::Interpreter do
78
78
  end
79
79
 
80
80
  class FieldCounter < GraphQL::Schema::Object
81
+ implements GraphQL::Types::Relay::Node
82
+
81
83
  field :field_counter, FieldCounter, null: false
82
84
  def field_counter; :field_counter; end
83
85
 
@@ -167,13 +169,52 @@ describe GraphQL::Execution::Interpreter do
167
169
 
168
170
  field :field_counter, FieldCounter, null: false
169
171
  def field_counter; :field_counter; end
172
+
173
+ field :node, field: GraphQL::Relay::Node.field
174
+ field :nodes, field: GraphQL::Relay::Node.plural_field
175
+ end
176
+
177
+ class Counter < GraphQL::Schema::Object
178
+ field :value, Integer, null: false
179
+ field :lazy_value, Integer, null: false
180
+
181
+ def lazy_value
182
+ Box.new { object.value }
183
+ end
184
+
185
+ field :increment, Counter, null: false
186
+
187
+ def increment
188
+ object.value += 1
189
+ object
190
+ end
191
+ end
192
+
193
+
194
+ class Mutation < GraphQL::Schema::Object
195
+ field :increment_counter, Counter, null: false
196
+
197
+ def increment_counter
198
+ counter = context[:counter]
199
+ counter.value += 1
200
+ counter
201
+ end
170
202
  end
171
203
 
172
204
  class Schema < GraphQL::Schema
173
205
  use GraphQL::Execution::Interpreter
174
206
  use GraphQL::Analysis::AST
175
207
  query(Query)
208
+ mutation(Mutation)
176
209
  lazy_resolve(Box, :value)
210
+
211
+ def self.object_from_id(id, ctx)
212
+ OpenStruct.new(id: id)
213
+ end
214
+
215
+ def self.resolve_type(type, obj, ctx)
216
+ FieldCounter
217
+ end
177
218
  end
178
219
  end
179
220
 
@@ -225,6 +266,34 @@ describe GraphQL::Execution::Interpreter do
225
266
  assert_equal expected_abstract_list, result["data"]["find"]
226
267
  end
227
268
 
269
+ it "runs mutation roots atomically and sequentially" do
270
+ query_str = <<-GRAPHQL
271
+ mutation {
272
+ i1: incrementCounter { value lazyValue
273
+ i2: increment { value lazyValue }
274
+ i3: increment { value lazyValue }
275
+ }
276
+ i4: incrementCounter { value lazyValue }
277
+ i5: incrementCounter { value lazyValue }
278
+ }
279
+ GRAPHQL
280
+
281
+ result = InterpreterTest::Schema.execute(query_str, context: { counter: OpenStruct.new(value: 0) })
282
+ expected_data = {
283
+ "i1" => {
284
+ "value" => 1,
285
+ # All of these get `3` as lazy value. They're resolved together,
286
+ # since they aren't _root_ mutation fields.
287
+ "lazyValue" => 3,
288
+ "i2" => { "value" => 2, "lazyValue" => 3 },
289
+ "i3" => { "value" => 3, "lazyValue" => 3 },
290
+ },
291
+ "i4" => { "value" => 4, "lazyValue" => 4},
292
+ "i5" => { "value" => 5, "lazyValue" => 5},
293
+ }
294
+ assert_equal expected_data, result["data"]
295
+ end
296
+
228
297
  it "runs skip and include" do
229
298
  query_str = <<-GRAPHQL
230
299
  query($truthy: Boolean!, $falsey: Boolean!){
@@ -277,6 +346,9 @@ describe GraphQL::Execution::Interpreter do
277
346
 
278
347
  describe "CI setup" do
279
348
  it "sets interpreter based on a constant" do
349
+ # Force the plugins to be applied
350
+ Jazz::Schema.graphql_definition
351
+ Dummy::Schema.graphql_definition
280
352
  if TESTING_INTERPRETER
281
353
  assert_equal GraphQL::Execution::Interpreter, Jazz::Schema.query_execution_strategy
282
354
  assert_equal GraphQL::Execution::Interpreter, Dummy::Schema.query_execution_strategy
@@ -286,6 +358,7 @@ describe GraphQL::Execution::Interpreter do
286
358
  end
287
359
  end
288
360
  end
361
+
289
362
  describe "null propagation" do
290
363
  it "propagates nulls" do
291
364
  query_str = <<-GRAPHQL
@@ -399,4 +472,14 @@ describe GraphQL::Execution::Interpreter do
399
472
  assert_equal 3, res["data"]["fieldCounter"]["fieldCounter"]["c3"]
400
473
  end
401
474
  end
475
+
476
+ describe "backwards compatibility" do
477
+ it "handles a legacy nodes field" do
478
+ res = InterpreterTest::Schema.execute('{ node(id: "abc") { id } }')
479
+ assert_equal "abc", res["data"]["node"]["id"]
480
+
481
+ res = InterpreterTest::Schema.execute('{ nodes(ids: ["abc", "xyz"]) { id } }')
482
+ assert_equal ["abc", "xyz"], res["data"]["nodes"].map { |n| n["id"] }
483
+ end
484
+ end
402
485
  end
@@ -20,7 +20,7 @@ describe GraphQL::Schema::FieldExtension do
20
20
  field.argument(:factor, Integer, required: true)
21
21
  end
22
22
 
23
- def before_resolve(object:, arguments:, context:)
23
+ def resolve(object:, arguments:, context:)
24
24
  factor = arguments.delete(:factor)
25
25
  yield(object, arguments, factor)
26
26
  end
@@ -30,6 +30,19 @@ describe GraphQL::Schema::FieldExtension do
30
30
  end
31
31
  end
32
32
 
33
+ class MultiplyByArgumentUsingResolve < GraphQL::Schema::FieldExtension
34
+ def apply
35
+ field.argument(:factor, Integer, required: true)
36
+ end
37
+
38
+ # `yield` returns the user-returned value
39
+ # This method's return value is passed along
40
+ def resolve(object:, arguments:, context:)
41
+ factor = arguments.delete(:factor)
42
+ yield(object, arguments) * factor
43
+ end
44
+ end
45
+
33
46
  class BaseObject < GraphQL::Schema::Object
34
47
  end
35
48
 
@@ -43,7 +56,7 @@ describe GraphQL::Schema::FieldExtension do
43
56
  input # return it as-is, it will be modified by extensions
44
57
  end
45
58
 
46
- field :trippled_by_option, Integer, null: false, resolver_method: :pass_thru do
59
+ field :tripled_by_option, Integer, null: false, resolver_method: :pass_thru do
47
60
  extension(MultiplyByOption, factor: 3)
48
61
  argument :input, Integer, required: true
49
62
  end
@@ -51,6 +64,10 @@ describe GraphQL::Schema::FieldExtension do
51
64
  field :multiply_input, Integer, null: false, resolver_method: :pass_thru, extensions: [MultiplyByArgument] do
52
65
  argument :input, Integer, required: true
53
66
  end
67
+
68
+ field :multiply_input2, Integer, null: false, resolver_method: :pass_thru, extensions: [MultiplyByArgumentUsingResolve] do
69
+ argument :input, Integer, required: true
70
+ end
54
71
  end
55
72
 
56
73
  class Schema < GraphQL::Schema
@@ -79,10 +96,15 @@ describe GraphQL::Schema::FieldExtension do
79
96
  assert_equal 10, res["data"]["doubled"]
80
97
  end
81
98
 
99
+ it "returns the modified value from `yield`" do
100
+ res = exec_query("{ multiplyInput2(input: 5, factor: 5) }")
101
+ assert_equal 25, res["data"]["multiplyInput2"]
102
+ end
103
+
82
104
  it "has access to config options" do
83
105
  # The factor of three came from an option
84
- res = exec_query("{ trippledByOption(input: 4) }")
85
- assert_equal 12, res["data"]["trippledByOption"]
106
+ res = exec_query("{ tripledByOption(input: 4) }")
107
+ assert_equal 12, res["data"]["tripledByOption"]
86
108
  end
87
109
 
88
110
  it "can hide arguments from resolve methods" do
@@ -10,7 +10,7 @@ describe GraphQL::StaticValidation::ArgumentLiteralsAreCompatible do
10
10
  stringCheese: cheese(id: "aasdlkfj") { ...cheeseFields }
11
11
  cheese(id: 1) { source @skip(if: "whatever") }
12
12
  yakSource: searchDairy(product: [{source: COW, fatContent: 1.1}]) { __typename }
13
- badSource: searchDairy(product: [{source: 1.1}]) { __typename }
13
+ badSource: searchDairy(product: {source: 1.1}) { __typename }
14
14
  missingSource: searchDairy(product: [{fatContent: 1.1}]) { __typename }
15
15
  listCoerce: cheese(id: 1) { similarCheese(source: YAK) { __typename } }
16
16
  missingInputField: searchDairy(product: [{source: YAK, wacky: 1}]) { __typename }
@@ -46,7 +46,7 @@ describe GraphQL::StaticValidation::ArgumentLiteralsAreCompatible do
46
46
 
47
47
  input_object_field_error = {
48
48
  "message"=>"Argument 'source' on InputObject 'DairyProductInput' has an invalid value. Expected type 'DairyAnimal!'.",
49
- "locations"=>[{"line"=>6, "column"=>40}],
49
+ "locations"=>[{"line"=>6, "column"=>39}],
50
50
  "path"=>["query getCheese", "badSource", "product", "source"],
51
51
  "extensions"=>{"code"=>"argumentLiteralsIncompatible", "typeName"=>"InputObject", "argumentName"=>"source"},
52
52
  }
@@ -91,7 +91,7 @@ describe GraphQL::StaticValidation::ArgumentLiteralsAreCompatible do
91
91
 
92
92
  input_object_field_error = {
93
93
  "message"=>"Argument 'source' on InputObject 'DairyProductInput' has an invalid value. Expected type 'DairyAnimal!'.",
94
- "locations"=>[{"line"=>6, "column"=>40}],
94
+ "locations"=>[{"line"=>6, "column"=>39}],
95
95
  "path"=>["query getCheese", "badSource", "product", "source"],
96
96
  "extensions"=>{"code"=>"argumentLiteralsIncompatible", "typeName"=>"InputObject", "argumentName"=>"source"},
97
97
  }
@@ -336,4 +336,52 @@ describe GraphQL::Relay::Mutation do
336
336
  assert_equal(expected, result)
337
337
  end
338
338
  end
339
+
340
+ describe 'supports new input object definition with old mutation definition' do
341
+ let(:some_attribute_type) do
342
+ Class.new(GraphQL::Schema::InputObject) do
343
+ graphql_name 'SomeAttribute'
344
+ argument :something, String, required: false
345
+ end
346
+ end
347
+
348
+ let(:do_something_mutation) do
349
+ some_attribute = some_attribute_type
350
+
351
+ GraphQL::Relay::Mutation.define do
352
+ name 'DoSomethingMutation'
353
+ input_field :someAttributes, types[some_attribute.graphql_definition]
354
+
355
+ return_field :anything, types.String
356
+
357
+ resolve ->(_obj, inputs, _ctx) {
358
+ {
359
+ anything: inputs.to_h['someAttributes'][0].class.to_s
360
+ }
361
+ }
362
+ end
363
+ end
364
+
365
+ let(:mutation_type) do
366
+ do_something = do_something_mutation
367
+
368
+ Class.new(GraphQL::Schema::Object) do
369
+ graphql_name 'Mutation'
370
+ field :doSomething, field: do_something.field
371
+ end
372
+ end
373
+
374
+ let(:schema) do
375
+ mutation = mutation_type
376
+
377
+ Class.new(GraphQL::Schema) do
378
+ mutation mutation
379
+ end
380
+ end
381
+
382
+ it 'converts to hash the whole input' do
383
+ result = schema.execute('mutation { doSomething(input: {someAttributes: [{something: "string"}]}) { anything } }')
384
+ assert_equal 'Hash', result['data']['doSomething']['anything']
385
+ end
386
+ end
339
387
  end
@@ -0,0 +1,9 @@
1
+ module Types
2
+ class FamilyType < Types::BaseEnum
3
+ value "NIGHTSHADE"
4
+ value "BRASSICA", value: Family::COLE
5
+ value "UMBELLIFER", value: :umbellifer
6
+ value "LEGUME", value: "bean & friends"
7
+ value "CURCURBITS", value: 5
8
+ end
9
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0.pre3
4
+ version: 1.9.0.pre4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Mosolgo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-30 00:00:00.000000000 Z
11
+ date: 2019-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ips
@@ -969,54 +969,7 @@ files:
969
969
  - spec/integration/rails/graphql/schema_spec.rb
970
970
  - spec/integration/rails/graphql/tracing/active_support_notifications_tracing_spec.rb
971
971
  - spec/integration/rails/spec_helper.rb
972
- - spec/integration/tmp/app/graphql/types/bird_type.rb
973
- - spec/integration/tmp/dummy/Gemfile
974
- - spec/integration/tmp/dummy/README.rdoc
975
- - spec/integration/tmp/dummy/Rakefile
976
- - spec/integration/tmp/dummy/app/assets/javascripts/application.js
977
- - spec/integration/tmp/dummy/app/assets/stylesheets/application.css
978
- - spec/integration/tmp/dummy/app/controllers/application_controller.rb
979
- - spec/integration/tmp/dummy/app/controllers/graphql_controller.rb
980
- - spec/integration/tmp/dummy/app/graphql/dummy_schema.rb
981
- - spec/integration/tmp/dummy/app/graphql/types/base_enum.rb
982
- - spec/integration/tmp/dummy/app/graphql/types/base_input_object.rb
983
- - spec/integration/tmp/dummy/app/graphql/types/base_interface.rb
984
- - spec/integration/tmp/dummy/app/graphql/types/base_object.rb
985
- - spec/integration/tmp/dummy/app/graphql/types/base_scalar.rb
986
- - spec/integration/tmp/dummy/app/graphql/types/base_union.rb
987
- - spec/integration/tmp/dummy/app/graphql/types/mutation_type.rb
988
- - spec/integration/tmp/dummy/app/graphql/types/query_type.rb
989
- - spec/integration/tmp/dummy/app/helpers/application_helper.rb
990
- - spec/integration/tmp/dummy/app/views/layouts/application.html.erb
991
- - spec/integration/tmp/dummy/bin/bundle
992
- - spec/integration/tmp/dummy/bin/rails
993
- - spec/integration/tmp/dummy/bin/rake
994
- - spec/integration/tmp/dummy/bin/setup
995
- - spec/integration/tmp/dummy/config.ru
996
- - spec/integration/tmp/dummy/config/application.rb
997
- - spec/integration/tmp/dummy/config/boot.rb
998
- - spec/integration/tmp/dummy/config/environment.rb
999
- - spec/integration/tmp/dummy/config/environments/development.rb
1000
- - spec/integration/tmp/dummy/config/environments/production.rb
1001
- - spec/integration/tmp/dummy/config/environments/test.rb
1002
- - spec/integration/tmp/dummy/config/initializers/assets.rb
1003
- - spec/integration/tmp/dummy/config/initializers/backtrace_silencers.rb
1004
- - spec/integration/tmp/dummy/config/initializers/cookies_serializer.rb
1005
- - spec/integration/tmp/dummy/config/initializers/filter_parameter_logging.rb
1006
- - spec/integration/tmp/dummy/config/initializers/inflections.rb
1007
- - spec/integration/tmp/dummy/config/initializers/mime_types.rb
1008
- - spec/integration/tmp/dummy/config/initializers/session_store.rb
1009
- - spec/integration/tmp/dummy/config/initializers/to_time_preserves_timezone.rb
1010
- - spec/integration/tmp/dummy/config/initializers/wrap_parameters.rb
1011
- - spec/integration/tmp/dummy/config/locales/en.yml
1012
- - spec/integration/tmp/dummy/config/routes.rb
1013
- - spec/integration/tmp/dummy/config/secrets.yml
1014
- - spec/integration/tmp/dummy/db/seeds.rb
1015
- - spec/integration/tmp/dummy/public/404.html
1016
- - spec/integration/tmp/dummy/public/422.html
1017
- - spec/integration/tmp/dummy/public/500.html
1018
- - spec/integration/tmp/dummy/public/favicon.ico
1019
- - spec/integration/tmp/dummy/public/robots.txt
972
+ - spec/integration/tmp/app/graphql/types/family_type.rb
1020
973
  - spec/spec_helper.rb
1021
974
  - spec/support/dummy/data.rb
1022
975
  - spec/support/dummy/schema.rb
@@ -1135,54 +1088,7 @@ test_files:
1135
1088
  - spec/integration/mongoid/star_trek/schema.rb
1136
1089
  - spec/integration/mongoid/star_trek/data.rb
1137
1090
  - spec/integration/mongoid/graphql/relay/mongo_relation_connection_spec.rb
1138
- - spec/integration/tmp/dummy/app/graphql/types/base_input_object.rb
1139
- - spec/integration/tmp/dummy/app/graphql/types/base_enum.rb
1140
- - spec/integration/tmp/dummy/app/graphql/types/base_interface.rb
1141
- - spec/integration/tmp/dummy/app/graphql/types/base_scalar.rb
1142
- - spec/integration/tmp/dummy/app/graphql/types/mutation_type.rb
1143
- - spec/integration/tmp/dummy/app/graphql/types/query_type.rb
1144
- - spec/integration/tmp/dummy/app/graphql/types/base_object.rb
1145
- - spec/integration/tmp/dummy/app/graphql/types/base_union.rb
1146
- - spec/integration/tmp/dummy/app/graphql/dummy_schema.rb
1147
- - spec/integration/tmp/dummy/app/controllers/application_controller.rb
1148
- - spec/integration/tmp/dummy/app/controllers/graphql_controller.rb
1149
- - spec/integration/tmp/dummy/app/views/layouts/application.html.erb
1150
- - spec/integration/tmp/dummy/app/assets/javascripts/application.js
1151
- - spec/integration/tmp/dummy/app/assets/stylesheets/application.css
1152
- - spec/integration/tmp/dummy/app/helpers/application_helper.rb
1153
- - spec/integration/tmp/dummy/bin/rake
1154
- - spec/integration/tmp/dummy/bin/setup
1155
- - spec/integration/tmp/dummy/bin/bundle
1156
- - spec/integration/tmp/dummy/bin/rails
1157
- - spec/integration/tmp/dummy/config/secrets.yml
1158
- - spec/integration/tmp/dummy/config/routes.rb
1159
- - spec/integration/tmp/dummy/config/locales/en.yml
1160
- - spec/integration/tmp/dummy/config/environments/production.rb
1161
- - spec/integration/tmp/dummy/config/environments/development.rb
1162
- - spec/integration/tmp/dummy/config/environments/test.rb
1163
- - spec/integration/tmp/dummy/config/environment.rb
1164
- - spec/integration/tmp/dummy/config/application.rb
1165
- - spec/integration/tmp/dummy/config/boot.rb
1166
- - spec/integration/tmp/dummy/config/initializers/backtrace_silencers.rb
1167
- - spec/integration/tmp/dummy/config/initializers/mime_types.rb
1168
- - spec/integration/tmp/dummy/config/initializers/filter_parameter_logging.rb
1169
- - spec/integration/tmp/dummy/config/initializers/session_store.rb
1170
- - spec/integration/tmp/dummy/config/initializers/wrap_parameters.rb
1171
- - spec/integration/tmp/dummy/config/initializers/assets.rb
1172
- - spec/integration/tmp/dummy/config/initializers/cookies_serializer.rb
1173
- - spec/integration/tmp/dummy/config/initializers/to_time_preserves_timezone.rb
1174
- - spec/integration/tmp/dummy/config/initializers/inflections.rb
1175
- - spec/integration/tmp/dummy/config.ru
1176
- - spec/integration/tmp/dummy/Rakefile
1177
- - spec/integration/tmp/dummy/public/favicon.ico
1178
- - spec/integration/tmp/dummy/public/422.html
1179
- - spec/integration/tmp/dummy/public/500.html
1180
- - spec/integration/tmp/dummy/public/404.html
1181
- - spec/integration/tmp/dummy/public/robots.txt
1182
- - spec/integration/tmp/dummy/db/seeds.rb
1183
- - spec/integration/tmp/dummy/Gemfile
1184
- - spec/integration/tmp/dummy/README.rdoc
1185
- - spec/integration/tmp/app/graphql/types/bird_type.rb
1091
+ - spec/integration/tmp/app/graphql/types/family_type.rb
1186
1092
  - spec/integration/rails/spec_helper.rb
1187
1093
  - spec/integration/rails/data.rb
1188
1094
  - spec/integration/rails/graphql/tracing/active_support_notifications_tracing_spec.rb