graphql 1.9.0.pre1 → 1.9.0.pre2

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.
Files changed (235) hide show
  1. checksums.yaml +4 -4
  2. data/lib/graphql.rb +5 -1
  3. data/lib/graphql/analysis/ast/analyzer.rb +1 -1
  4. data/lib/graphql/analysis/ast/visitor.rb +6 -1
  5. data/lib/graphql/backwards_compatibility.rb +1 -1
  6. data/lib/graphql/dig.rb +19 -0
  7. data/lib/graphql/directive.rb +13 -1
  8. data/lib/graphql/directive/include_directive.rb +1 -7
  9. data/lib/graphql/directive/skip_directive.rb +1 -8
  10. data/lib/graphql/execution/interpreter.rb +23 -13
  11. data/lib/graphql/execution/interpreter/resolve.rb +56 -0
  12. data/lib/graphql/execution/interpreter/runtime.rb +174 -74
  13. data/lib/graphql/execution/lazy.rb +7 -1
  14. data/lib/graphql/execution/lookahead.rb +71 -6
  15. data/lib/graphql/execution_error.rb +1 -1
  16. data/lib/graphql/introspection/entry_points.rb +5 -1
  17. data/lib/graphql/introspection/type_type.rb +4 -4
  18. data/lib/graphql/language.rb +0 -1
  19. data/lib/graphql/language/block_string.rb +37 -0
  20. data/lib/graphql/language/document_from_schema_definition.rb +1 -1
  21. data/lib/graphql/language/lexer.rb +55 -36
  22. data/lib/graphql/language/lexer.rl +8 -3
  23. data/lib/graphql/language/nodes.rb +27 -4
  24. data/lib/graphql/language/parser.rb +55 -55
  25. data/lib/graphql/language/parser.y +11 -11
  26. data/lib/graphql/language/printer.rb +1 -1
  27. data/lib/graphql/language/visitor.rb +22 -13
  28. data/lib/graphql/literal_validation_error.rb +6 -0
  29. data/lib/graphql/query.rb +13 -0
  30. data/lib/graphql/query/arguments.rb +2 -1
  31. data/lib/graphql/query/context.rb +3 -10
  32. data/lib/graphql/query/executor.rb +1 -1
  33. data/lib/graphql/query/validation_pipeline.rb +1 -1
  34. data/lib/graphql/relay/connection_resolve.rb +1 -1
  35. data/lib/graphql/relay/relation_connection.rb +1 -1
  36. data/lib/graphql/schema.rb +81 -11
  37. data/lib/graphql/schema/argument.rb +1 -1
  38. data/lib/graphql/schema/build_from_definition.rb +2 -4
  39. data/lib/graphql/schema/directive.rb +103 -0
  40. data/lib/graphql/schema/directive/feature.rb +66 -0
  41. data/lib/graphql/schema/directive/include.rb +25 -0
  42. data/lib/graphql/schema/directive/skip.rb +25 -0
  43. data/lib/graphql/schema/directive/transform.rb +48 -0
  44. data/lib/graphql/schema/enum_value.rb +2 -2
  45. data/lib/graphql/schema/field.rb +63 -17
  46. data/lib/graphql/schema/input_object.rb +1 -0
  47. data/lib/graphql/schema/member/base_dsl_methods.rb +4 -2
  48. data/lib/graphql/schema/member/build_type.rb +33 -1
  49. data/lib/graphql/schema/member/has_fields.rb +8 -73
  50. data/lib/graphql/schema/relay_classic_mutation.rb +6 -1
  51. data/lib/graphql/schema/resolver.rb +1 -1
  52. data/lib/graphql/static_validation.rb +2 -1
  53. data/lib/graphql/static_validation/all_rules.rb +1 -0
  54. data/lib/graphql/static_validation/base_visitor.rb +25 -10
  55. data/lib/graphql/static_validation/definition_dependencies.rb +3 -3
  56. data/lib/graphql/static_validation/{message.rb → error.rb} +11 -11
  57. data/lib/graphql/static_validation/interpreter_visitor.rb +14 -0
  58. data/lib/graphql/static_validation/literal_validator.rb +54 -11
  59. data/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb +34 -5
  60. data/lib/graphql/static_validation/rules/argument_literals_are_compatible_error.rb +31 -0
  61. data/lib/graphql/static_validation/rules/argument_names_are_unique.rb +2 -2
  62. data/lib/graphql/static_validation/rules/argument_names_are_unique_error.rb +30 -0
  63. data/lib/graphql/static_validation/rules/arguments_are_defined.rb +7 -1
  64. data/lib/graphql/static_validation/rules/arguments_are_defined_error.rb +35 -0
  65. data/lib/graphql/static_validation/rules/directives_are_defined.rb +5 -1
  66. data/lib/graphql/static_validation/rules/directives_are_defined_error.rb +29 -0
  67. data/lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb +11 -2
  68. data/lib/graphql/static_validation/rules/directives_are_in_valid_locations_error.rb +31 -0
  69. data/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb +11 -2
  70. data/lib/graphql/static_validation/rules/fields_are_defined_on_type_error.rb +32 -0
  71. data/lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb +14 -2
  72. data/lib/graphql/static_validation/rules/fields_have_appropriate_selections_error.rb +31 -0
  73. data/lib/graphql/static_validation/rules/fields_will_merge.rb +24 -6
  74. data/lib/graphql/static_validation/rules/fields_will_merge_error.rb +32 -0
  75. data/lib/graphql/static_validation/rules/fragment_names_are_unique.rb +5 -1
  76. data/lib/graphql/static_validation/rules/fragment_names_are_unique_error.rb +29 -0
  77. data/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb +8 -1
  78. data/lib/graphql/static_validation/rules/fragment_spreads_are_possible_error.rb +35 -0
  79. data/lib/graphql/static_validation/rules/fragment_types_exist.rb +5 -1
  80. data/lib/graphql/static_validation/rules/fragment_types_exist_error.rb +29 -0
  81. data/lib/graphql/static_validation/rules/fragments_are_finite.rb +6 -1
  82. data/lib/graphql/static_validation/rules/fragments_are_finite_error.rb +29 -0
  83. data/lib/graphql/static_validation/rules/fragments_are_named.rb +4 -1
  84. data/lib/graphql/static_validation/rules/fragments_are_named_error.rb +26 -0
  85. data/lib/graphql/static_validation/rules/fragments_are_on_composite_types.rb +5 -1
  86. data/lib/graphql/static_validation/rules/fragments_are_on_composite_types_error.rb +30 -0
  87. data/lib/graphql/static_validation/rules/fragments_are_used.rb +13 -3
  88. data/lib/graphql/static_validation/rules/fragments_are_used_error.rb +29 -0
  89. data/lib/graphql/static_validation/rules/mutation_root_exists.rb +4 -1
  90. data/lib/graphql/static_validation/rules/mutation_root_exists_error.rb +26 -0
  91. data/lib/graphql/static_validation/rules/no_definitions_are_present.rb +2 -2
  92. data/lib/graphql/static_validation/rules/no_definitions_are_present_error.rb +25 -0
  93. data/lib/graphql/static_validation/rules/operation_names_are_valid.rb +9 -2
  94. data/lib/graphql/static_validation/rules/operation_names_are_valid_error.rb +28 -0
  95. data/lib/graphql/static_validation/rules/required_arguments_are_present.rb +7 -1
  96. data/lib/graphql/static_validation/rules/required_arguments_are_present_error.rb +35 -0
  97. data/lib/graphql/static_validation/rules/required_input_object_attributes_are_present.rb +47 -0
  98. data/lib/graphql/static_validation/rules/required_input_object_attributes_are_present_error.rb +35 -0
  99. data/lib/graphql/static_validation/rules/subscription_root_exists.rb +4 -1
  100. data/lib/graphql/static_validation/rules/subscription_root_exists_error.rb +26 -0
  101. data/lib/graphql/static_validation/rules/unique_directives_per_location.rb +4 -3
  102. data/lib/graphql/static_validation/rules/unique_directives_per_location_error.rb +29 -0
  103. data/lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed.rb +20 -6
  104. data/lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed_error.rb +39 -0
  105. data/lib/graphql/static_validation/rules/variable_names_are_unique.rb +5 -1
  106. data/lib/graphql/static_validation/rules/variable_names_are_unique_error.rb +29 -0
  107. data/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb +8 -1
  108. data/lib/graphql/static_validation/rules/variable_usages_are_allowed_error.rb +38 -0
  109. data/lib/graphql/static_validation/rules/variables_are_input_types.rb +12 -2
  110. data/lib/graphql/static_validation/rules/variables_are_input_types_error.rb +32 -0
  111. data/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb +18 -2
  112. data/lib/graphql/static_validation/rules/variables_are_used_and_defined_error.rb +37 -0
  113. data/lib/graphql/static_validation/validator.rb +24 -14
  114. data/lib/graphql/tracing/new_relic_tracing.rb +2 -2
  115. data/lib/graphql/tracing/skylight_tracing.rb +2 -2
  116. data/lib/graphql/unauthorized_field_error.rb +23 -0
  117. data/lib/graphql/version.rb +1 -1
  118. data/spec/graphql/analysis/ast_spec.rb +40 -0
  119. data/spec/graphql/authorization_spec.rb +93 -20
  120. data/spec/graphql/base_type_spec.rb +3 -1
  121. data/spec/graphql/execution/interpreter_spec.rb +127 -4
  122. data/spec/graphql/execution/lazy_spec.rb +49 -0
  123. data/spec/graphql/execution/lookahead_spec.rb +113 -21
  124. data/spec/graphql/execution/multiplex_spec.rb +2 -1
  125. data/spec/graphql/introspection/type_type_spec.rb +1 -1
  126. data/spec/graphql/language/lexer_spec.rb +72 -3
  127. data/spec/graphql/language/printer_spec.rb +18 -6
  128. data/spec/graphql/query/arguments_spec.rb +21 -0
  129. data/spec/graphql/query/context_spec.rb +10 -0
  130. data/spec/graphql/schema/build_from_definition_spec.rb +144 -29
  131. data/spec/graphql/schema/directive/feature_spec.rb +81 -0
  132. data/spec/graphql/schema/directive/transform_spec.rb +39 -0
  133. data/spec/graphql/schema/enum_spec.rb +5 -3
  134. data/spec/graphql/schema/field_extension_spec.rb +3 -3
  135. data/spec/graphql/schema/field_spec.rb +19 -0
  136. data/spec/graphql/schema/input_object_spec.rb +81 -0
  137. data/spec/graphql/schema/member/build_type_spec.rb +46 -0
  138. data/spec/graphql/schema/member/scoped_spec.rb +3 -3
  139. data/spec/graphql/schema/printer_spec.rb +244 -96
  140. data/spec/graphql/schema/relay_classic_mutation_spec.rb +26 -0
  141. data/spec/graphql/schema/resolver_spec.rb +1 -1
  142. data/spec/graphql/schema/warden_spec.rb +35 -11
  143. data/spec/graphql/static_validation/rules/argument_literals_are_compatible_spec.rb +212 -72
  144. data/spec/graphql/static_validation/rules/argument_names_are_unique_spec.rb +2 -2
  145. data/spec/graphql/static_validation/rules/arguments_are_defined_spec.rb +72 -29
  146. data/spec/graphql/static_validation/rules/directives_are_defined_spec.rb +4 -2
  147. data/spec/graphql/static_validation/rules/directives_are_in_valid_locations_spec.rb +4 -2
  148. data/spec/graphql/static_validation/rules/fields_are_defined_on_type_spec.rb +10 -5
  149. data/spec/graphql/static_validation/rules/fields_have_appropriate_selections_spec.rb +10 -5
  150. data/spec/graphql/static_validation/rules/fields_will_merge_spec.rb +2 -1
  151. data/spec/graphql/static_validation/rules/fragment_names_are_unique_spec.rb +2 -1
  152. data/spec/graphql/static_validation/rules/fragment_spreads_are_possible_spec.rb +6 -3
  153. data/spec/graphql/static_validation/rules/fragment_types_exist_spec.rb +4 -2
  154. data/spec/graphql/static_validation/rules/fragments_are_finite_spec.rb +4 -2
  155. data/spec/graphql/static_validation/rules/fragments_are_named_spec.rb +2 -1
  156. data/spec/graphql/static_validation/rules/fragments_are_on_composite_types_spec.rb +6 -3
  157. data/spec/graphql/static_validation/rules/fragments_are_used_spec.rb +22 -2
  158. data/spec/graphql/static_validation/rules/mutation_root_exists_spec.rb +2 -1
  159. data/spec/graphql/static_validation/rules/operation_names_are_valid_spec.rb +6 -3
  160. data/spec/graphql/static_validation/rules/required_arguments_are_present_spec.rb +13 -4
  161. data/spec/graphql/static_validation/rules/required_input_object_attributes_are_present_spec.rb +58 -0
  162. data/spec/graphql/static_validation/rules/subscription_root_exists_spec.rb +2 -1
  163. data/spec/graphql/static_validation/rules/unique_directives_per_location_spec.rb +14 -7
  164. data/spec/graphql/static_validation/rules/variable_default_values_are_correctly_typed_spec.rb +14 -7
  165. data/spec/graphql/static_validation/rules/variable_usages_are_allowed_spec.rb +8 -4
  166. data/spec/graphql/static_validation/rules/variables_are_input_types_spec.rb +8 -4
  167. data/spec/graphql/static_validation/rules/variables_are_used_and_defined_spec.rb +6 -3
  168. data/spec/graphql/static_validation/validator_spec.rb +6 -4
  169. data/spec/graphql/tracing/new_relic_tracing_spec.rb +10 -0
  170. data/spec/graphql/tracing/skylight_tracing_spec.rb +10 -0
  171. data/spec/graphql/types/iso_8601_date_time_spec.rb +1 -2
  172. data/spec/integration/mongoid/star_trek/schema.rb +5 -5
  173. data/spec/integration/rails/graphql/relay/relation_connection_spec.rb +37 -8
  174. data/spec/integration/rails/graphql/schema_spec.rb +2 -2
  175. data/spec/integration/rails/spec_helper.rb +10 -0
  176. data/spec/integration/tmp/app/graphql/types/bird_type.rb +7 -0
  177. data/spec/integration/tmp/dummy/Gemfile +45 -0
  178. data/spec/integration/tmp/dummy/README.rdoc +28 -0
  179. data/spec/integration/tmp/dummy/Rakefile +6 -0
  180. data/spec/integration/tmp/dummy/app/assets/javascripts/application.js +16 -0
  181. data/spec/integration/tmp/dummy/app/assets/stylesheets/application.css +15 -0
  182. data/spec/integration/tmp/dummy/app/controllers/application_controller.rb +5 -0
  183. data/spec/integration/tmp/dummy/app/controllers/graphql_controller.rb +43 -0
  184. data/spec/integration/tmp/dummy/app/graphql/dummy_schema.rb +34 -0
  185. data/spec/integration/tmp/dummy/app/graphql/types/base_enum.rb +4 -0
  186. data/spec/integration/tmp/dummy/app/graphql/types/base_input_object.rb +4 -0
  187. data/spec/integration/tmp/dummy/app/graphql/types/base_interface.rb +5 -0
  188. data/spec/integration/tmp/dummy/app/graphql/types/base_object.rb +4 -0
  189. data/spec/integration/tmp/dummy/app/graphql/types/base_scalar.rb +4 -0
  190. data/spec/integration/tmp/dummy/app/graphql/types/base_union.rb +4 -0
  191. data/spec/integration/tmp/dummy/app/graphql/types/mutation_type.rb +10 -0
  192. data/spec/integration/tmp/dummy/app/graphql/types/query_type.rb +15 -0
  193. data/spec/integration/tmp/dummy/app/helpers/application_helper.rb +2 -0
  194. data/spec/integration/tmp/dummy/app/views/layouts/application.html.erb +14 -0
  195. data/spec/integration/tmp/dummy/bin/bundle +3 -0
  196. data/spec/integration/tmp/dummy/bin/rails +4 -0
  197. data/spec/integration/tmp/dummy/bin/rake +4 -0
  198. data/spec/integration/tmp/dummy/bin/setup +29 -0
  199. data/spec/integration/tmp/dummy/config.ru +4 -0
  200. data/spec/integration/tmp/dummy/config/application.rb +32 -0
  201. data/spec/integration/tmp/dummy/config/boot.rb +3 -0
  202. data/spec/integration/tmp/dummy/config/environment.rb +5 -0
  203. data/spec/integration/tmp/dummy/config/environments/development.rb +38 -0
  204. data/spec/integration/tmp/dummy/config/environments/production.rb +76 -0
  205. data/spec/integration/tmp/dummy/config/environments/test.rb +42 -0
  206. data/spec/integration/tmp/dummy/config/initializers/assets.rb +11 -0
  207. data/spec/integration/tmp/dummy/config/initializers/backtrace_silencers.rb +7 -0
  208. data/spec/integration/tmp/dummy/config/initializers/cookies_serializer.rb +3 -0
  209. data/spec/integration/tmp/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  210. data/spec/integration/tmp/dummy/config/initializers/inflections.rb +16 -0
  211. data/spec/integration/tmp/dummy/config/initializers/mime_types.rb +4 -0
  212. data/spec/integration/tmp/dummy/config/initializers/session_store.rb +3 -0
  213. data/spec/integration/tmp/dummy/config/initializers/to_time_preserves_timezone.rb +10 -0
  214. data/spec/integration/tmp/dummy/config/initializers/wrap_parameters.rb +9 -0
  215. data/spec/integration/tmp/dummy/config/locales/en.yml +23 -0
  216. data/spec/integration/tmp/dummy/config/routes.rb +61 -0
  217. data/spec/integration/tmp/dummy/config/secrets.yml +22 -0
  218. data/spec/integration/tmp/dummy/db/seeds.rb +7 -0
  219. data/spec/integration/tmp/dummy/public/404.html +67 -0
  220. data/spec/integration/tmp/dummy/public/422.html +67 -0
  221. data/spec/integration/tmp/dummy/public/500.html +66 -0
  222. data/spec/integration/tmp/dummy/public/favicon.ico +0 -0
  223. data/spec/integration/tmp/dummy/public/robots.txt +5 -0
  224. data/spec/support/dummy/schema.rb +2 -2
  225. data/spec/support/error_bubbling_helpers.rb +23 -0
  226. data/spec/support/jazz.rb +53 -6
  227. data/spec/support/lazy_helpers.rb +26 -8
  228. data/spec/support/new_relic.rb +3 -0
  229. data/spec/support/skylight.rb +3 -0
  230. data/spec/support/star_wars/schema.rb +13 -9
  231. data/spec/support/static_validation_helpers.rb +3 -1
  232. metadata +145 -22
  233. data/lib/graphql/language/comments.rb +0 -45
  234. data/spec/graphql/schema/member/has_fields_spec.rb +0 -132
  235. data/spec/integration/tmp/app/graphql/types/family_type.rb +0 -9
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
@@ -0,0 +1,5 @@
1
+ # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
2
+ #
3
+ # To ban all spiders from the entire site uncomment the next two lines:
4
+ # User-agent: *
5
+ # Disallow: /
@@ -354,7 +354,7 @@ module Dummy
354
354
  COWS.values + GOATS.values
355
355
  end
356
356
 
357
- field :all_animal_as_cow, [AnimalAsCow, null: true], null: false, method: :all_animal
357
+ field :all_animal_as_cow, [AnimalAsCow, null: true], null: false, resolver_method: :all_animal
358
358
 
359
359
  field :all_dairy, [DairyProduct, null: true], null: true do
360
360
  argument :execution_error_at_index, Integer, required: false
@@ -372,7 +372,7 @@ module Dummy
372
372
  CHEESES.values + MILKS.values
373
373
  end
374
374
 
375
- field :all_edible_as_milk, [EdibleAsMilk, null: true], null: true, method: :all_edible
375
+ field :all_edible_as_milk, [EdibleAsMilk, null: true], null: true, resolver_method: :all_edible
376
376
 
377
377
  field :error, String, null: true, description: "Raise an error"
378
378
  def error
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+ # helpers to enable / disable error bubbling in a block scope
3
+ module ErrorBubblingHelpers
4
+ def without_error_bubbling(schema)
5
+ original_error_bubbling = schema.error_bubbling
6
+ begin
7
+ schema.error_bubbling = false
8
+ yield if block_given?
9
+ ensure
10
+ schema.error_bubbling = original_error_bubbling
11
+ end
12
+ end
13
+
14
+ def with_error_bubbling(schema)
15
+ original_error_bubbling = schema.error_bubbling
16
+ begin
17
+ schema.error_bubbling = true
18
+ yield if block_given?
19
+ ensure
20
+ schema.error_bubbling = original_error_bubbling
21
+ end
22
+ end
23
+ end
@@ -151,7 +151,7 @@ module Jazz
151
151
  null: false,
152
152
  description: "A unique identifier for this object",
153
153
  )
154
- upcased_field :upcased_id, ID, null: false, method: :id # upcase: true added by helper
154
+ upcased_field :upcased_id, ID, null: false, resolver_method: :id # upcase: true added by helper
155
155
 
156
156
  def id
157
157
  GloballyIdentifiableType.to_id(@object)
@@ -191,7 +191,7 @@ module Jazz
191
191
  class Ensemble < ObjectWithUpcasedName
192
192
  # Test string type names
193
193
  # This method should override inherited one
194
- field :name, "String", null: false, method: :overridden_name
194
+ field :name, "String", null: false, resolver_method: :overridden_name
195
195
  implements GloballyIdentifiableType, NamedEntity, HasMusicians
196
196
  description "A group of musicians playing together"
197
197
  config :config, :configged
@@ -219,6 +219,7 @@ module Jazz
219
219
  value "KEYS" do
220
220
  description "Neither here nor there, really"
221
221
  end
222
+ value "SILENCE", "Makes no sound", value: false
222
223
  end
223
224
 
224
225
  # Lives side-by-side with an old-style definition
@@ -363,10 +364,10 @@ module Jazz
363
364
  argument :input, [RawJson], required: true
364
365
  end
365
366
 
366
- field :upcase_check_1, String, null: true, method: :upcase_check, extras: [:upcase]
367
- field :upcase_check_2, String, null: false, upcase: false, method: :upcase_check, extras: [:upcase]
368
- field :upcase_check_3, String, null: false, upcase: true, method: :upcase_check, extras: [:upcase]
369
- field :upcase_check_4, String, null: false, upcase: "why not?", method: :upcase_check, extras: [:upcase]
367
+ field :upcase_check_1, String, null: true, resolver_method: :upcase_check, extras: [:upcase]
368
+ field :upcase_check_2, String, null: false, upcase: false, resolver_method: :upcase_check, extras: [:upcase]
369
+ field :upcase_check_3, String, null: false, upcase: true, resolver_method: :upcase_check, extras: [:upcase]
370
+ field :upcase_check_4, String, null: false, upcase: "why not?", resolver_method: :upcase_check, extras: [:upcase]
370
371
  def upcase_check(upcase:)
371
372
  upcase.inspect
372
373
  end
@@ -455,6 +456,20 @@ module Jazz
455
456
  def named_entities
456
457
  [Models.data["Ensemble"].first, nil]
457
458
  end
459
+
460
+ field :default_value_test, String, null: false do
461
+ if TESTING_INTERPRETER
462
+ argument :arg_with_default, InspectableInput, required: false, default_value: { string_value: "S" }
463
+ else
464
+ argument :arg_with_default, InspectableInput, required: false, default_value: { "stringValue" => "S" }
465
+ end
466
+ end
467
+
468
+ def default_value_test(arg_with_default:)
469
+ "#{arg_with_default.class.name} -> #{arg_with_default.to_h}"
470
+ end
471
+
472
+ field :complex_hash_key, String, null: false, hash_key: :'foo bar/fizz-buzz'
458
473
  end
459
474
 
460
475
  class EnsembleInput < GraphQL::Schema::InputObject
@@ -495,6 +510,24 @@ module Jazz
495
510
  end
496
511
  end
497
512
 
513
+ class HasExtras < GraphQL::Schema::RelayClassicMutation
514
+ null true
515
+ description "Test extras in RelayClassicMutation"
516
+
517
+ argument :int, Integer, required: false
518
+ extras [:ast_node]
519
+
520
+ field :node_class, String, null: false
521
+ field :int, Integer, null: true
522
+
523
+ def resolve(int: nil, ast_node:)
524
+ {
525
+ int: int,
526
+ node_class: ast_node.class.name,
527
+ }
528
+ end
529
+ end
530
+
498
531
  class RenameNamedEntity < GraphQL::Schema::RelayClassicMutation
499
532
  argument :named_entity_id, ID, required: true, loads: NamedEntity
500
533
  argument :new_name, String, required: true
@@ -603,6 +636,7 @@ module Jazz
603
636
  field :upvote_ensembles_as_bands, mutation: UpvoteEnsemblesAsBands
604
637
  field :upvote_ensembles_ids, mutation: UpvoteEnsemblesIds
605
638
  field :rename_ensemble_as_band, mutation: RenameEnsembleAsBand
639
+ field :has_extras, mutation: HasExtras
606
640
 
607
641
  def add_ensemble(input:)
608
642
  ens = Models::Ensemble.new(input.name)
@@ -652,6 +686,18 @@ module Jazz
652
686
  end
653
687
  end
654
688
 
689
+ class NestedType < GraphQL::Introspection::TypeType
690
+ def name
691
+ object.name.upcase
692
+ end
693
+
694
+ class DeeplyNestedType < GraphQL::Introspection::TypeType
695
+ def name
696
+ object.name.upcase
697
+ end
698
+ end
699
+ end
700
+
655
701
  class SchemaType < GraphQL::Introspection::SchemaType
656
702
  graphql_name "__Schema"
657
703
 
@@ -705,6 +751,7 @@ module Jazz
705
751
  end
706
752
  if TESTING_INTERPRETER
707
753
  use GraphQL::Execution::Interpreter
754
+ use GraphQL::Analysis::AST
708
755
  end
709
756
  end
710
757
  end
@@ -1,5 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
  module LazyHelpers
3
+ MAGIC_NUMBER_WITH_LAZY_AUTHORIZED_HOOK = 44
4
+ MAGIC_NUMBER_THAT_RETURNS_NIL = 0
5
+ MAGIC_NUMBER_THAT_RAISES_ERROR = 13
3
6
  class Wrapper
4
7
  def initialize(item = nil, &block)
5
8
  if block
@@ -49,7 +52,19 @@ module LazyHelpers
49
52
  class LazySum < GraphQL::Schema::Object
50
53
  field :value, Integer, null: true
51
54
  def value
52
- object == 13 ? nil : object
55
+ if object == MAGIC_NUMBER_THAT_RAISES_ERROR
56
+ nil
57
+ else
58
+ object
59
+ end
60
+ end
61
+
62
+ def self.authorized?(obj, ctx)
63
+ if obj == MAGIC_NUMBER_WITH_LAZY_AUTHORIZED_HOOK
64
+ Wrapper.new { true }
65
+ else
66
+ true
67
+ end
53
68
  end
54
69
 
55
70
  field :nestedSum, LazySum, null: false do
@@ -57,7 +72,7 @@ module LazyHelpers
57
72
  end
58
73
 
59
74
  def nested_sum(value:)
60
- if value == 13
75
+ if value == MAGIC_NUMBER_THAT_RAISES_ERROR
61
76
  Wrapper.new(nil)
62
77
  else
63
78
  SumAll.new(@object + value)
@@ -98,18 +113,20 @@ module LazyHelpers
98
113
  end
99
114
 
100
115
  def nullable_nested_sum(value:)
101
- if value == 13
102
- Wrapper.new { raise GraphQL::ExecutionError.new("13 is unlucky") }
116
+ if value == MAGIC_NUMBER_THAT_RAISES_ERROR
117
+ Wrapper.new { raise GraphQL::ExecutionError.new("#{MAGIC_NUMBER_THAT_RAISES_ERROR} is unlucky") }
118
+ elsif value == MAGIC_NUMBER_THAT_RETURNS_NIL
119
+ nil
103
120
  else
104
121
  SumAll.new(value)
105
122
  end
106
123
  end
107
124
 
108
- field :list_sum, [LazySum], null: true do
125
+ field :list_sum, [LazySum, null: true], null: true do
109
126
  argument :values, [Integer], required: true
110
127
  end
111
128
  def list_sum(values:)
112
- values
129
+ values.map { |v| v == MAGIC_NUMBER_THAT_RETURNS_NIL ? nil : v }
113
130
  end
114
131
  end
115
132
 
@@ -156,6 +173,7 @@ module LazyHelpers
156
173
 
157
174
  if TESTING_INTERPRETER
158
175
  use GraphQL::Execution::Interpreter
176
+ use GraphQL::Analysis::AST
159
177
  end
160
178
 
161
179
  def self.sync_lazy(lazy)
@@ -168,7 +186,7 @@ module LazyHelpers
168
186
  end
169
187
  end
170
188
 
171
- def run_query(query_str)
172
- LazySchema.execute(query_str)
189
+ def run_query(query_str, **rest)
190
+ LazySchema.execute(query_str, **rest)
173
191
  end
174
192
  end
@@ -6,9 +6,11 @@ end
6
6
 
7
7
  module NewRelic
8
8
  TRANSACTION_NAMES = []
9
+ EXECUTION_SCOPES = []
9
10
  # Reset state between tests
10
11
  def self.clear_all
11
12
  TRANSACTION_NAMES.clear
13
+ EXECUTION_SCOPES.clear
12
14
  end
13
15
  module Agent
14
16
  def self.set_transaction_name(name)
@@ -17,6 +19,7 @@ module NewRelic
17
19
 
18
20
  module MethodTracerHelpers
19
21
  def self.trace_execution_scoped(trace_name)
22
+ EXECUTION_SCOPES << trace_name
20
23
  yield
21
24
  end
22
25
  end
@@ -9,9 +9,11 @@ end
9
9
 
10
10
  module Skylight
11
11
  ENDPOINT_NAMES = []
12
+ TITLE_NAMES = []
12
13
  # Reset state between tests
13
14
  def self.clear_all
14
15
  ENDPOINT_NAMES.clear
16
+ TITLE_NAMES.clear
15
17
  end
16
18
 
17
19
  def self.instrumenter
@@ -19,6 +21,7 @@ module Skylight
19
21
  end
20
22
 
21
23
  def self.instrument(category:, title:)
24
+ TITLE_NAMES << title
22
25
  yield
23
26
  end
24
27
 
@@ -159,14 +159,18 @@ module StarWars
159
159
  field :shipsWithMaxPageSize, "Ships with max page size", max_page_size: 2, resolver: ShipsWithMaxPageSize
160
160
 
161
161
  field :bases, BasesConnectionWithTotalCountType, null: true, connection: true do
162
- argument :name_includes, String, required: false
162
+ argument :nameIncludes, String, required: false
163
+ argument :complexOrder, Boolean, required: false
163
164
  end
164
165
 
165
- def bases(name_includes: nil)
166
+ def bases(name_includes: nil, complex_order: nil)
166
167
  all_bases = Base.where(id: object.bases)
167
168
  if name_includes
168
169
  all_bases = all_bases.where("name LIKE ?", "%#{name_includes}%")
169
170
  end
171
+ if complex_order
172
+ all_bases = all_bases.order("bases.name DESC")
173
+ end
170
174
  all_bases
171
175
  end
172
176
 
@@ -190,12 +194,12 @@ module StarWars
190
194
  all_bases.to_a
191
195
  end
192
196
 
193
- field :basesWithMaxLimitRelation, BaseConnection, null: true, max_page_size: 2, method: :all_bases
194
- field :basesWithMaxLimitArray, BaseConnection, null: true, max_page_size: 2, method: :all_bases_array
195
- field :basesWithDefaultMaxLimitRelation, BaseConnection, null: true, method: :all_bases
196
- field :basesWithDefaultMaxLimitArray, BaseConnection, null: true, method: :all_bases_array
197
- field :basesWithLargeMaxLimitRelation, BaseConnection, null: true, max_page_size: 1000, method: :all_bases
198
- field :basesWithoutNodes, BaseConnectionWithoutNodes, null: true, method: :all_bases_array
197
+ field :basesWithMaxLimitRelation, BaseConnection, null: true, max_page_size: 2, resolver_method: :all_bases
198
+ field :basesWithMaxLimitArray, BaseConnection, null: true, max_page_size: 2, resolver_method: :all_bases_array
199
+ field :basesWithDefaultMaxLimitRelation, BaseConnection, null: true, resolver_method: :all_bases
200
+ field :basesWithDefaultMaxLimitArray, BaseConnection, null: true, resolver_method: :all_bases_array
201
+ field :basesWithLargeMaxLimitRelation, BaseConnection, null: true, max_page_size: 1000, resolver_method: :all_bases
202
+ field :basesWithoutNodes, BaseConnectionWithoutNodes, null: true, resolver_method: :all_bases_array
199
203
 
200
204
  field :basesAsSequelDataset, BasesConnectionWithTotalCountType, null: true, connection: true, max_page_size: 1000 do
201
205
  argument :nameIncludes, String, required: false
@@ -209,7 +213,7 @@ module StarWars
209
213
  all_bases
210
214
  end
211
215
 
212
- field :basesWithCustomEdge, CustomEdgeBaseConnectionType, null: true, connection: true, method: :lazy_bases
216
+ field :basesWithCustomEdge, CustomEdgeBaseConnectionType, null: true, connection: true, resolver_method: :lazy_bases
213
217
 
214
218
  def lazy_bases
215
219
  LazyNodesWrapper.new(object.bases)
@@ -25,6 +25,8 @@ module StaticValidationHelpers
25
25
  end
26
26
 
27
27
  def schema
28
- Dummy::Schema
28
+ # without #graphql_definition call here #errors / #error_messages will reference a different schema object
29
+ # than the one returned by schema so it's difficult to make changes in specs.
30
+ Dummy::Schema.graphql_definition
29
31
  end
30
32
  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.pre1
4
+ version: 1.9.0.pre2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Mosolgo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-25 00:00:00.000000000 Z
11
+ date: 2019-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ips
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2.12'
69
- - !ruby/object:Gem::Dependency
70
- name: guard-bundler
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '2.1'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '2.1'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: guard-minitest
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -420,6 +406,7 @@ files:
420
406
  - lib/graphql/define/non_null_with_bang.rb
421
407
  - lib/graphql/define/type_definer.rb
422
408
  - lib/graphql/deprecated_dsl.rb
409
+ - lib/graphql/dig.rb
423
410
  - lib/graphql/directive.rb
424
411
  - lib/graphql/directive/deprecated_directive.rb
425
412
  - lib/graphql/directive/include_directive.rb
@@ -433,6 +420,7 @@ files:
433
420
  - lib/graphql/execution/interpreter.rb
434
421
  - lib/graphql/execution/interpreter/execution_errors.rb
435
422
  - lib/graphql/execution/interpreter/hash_response.rb
423
+ - lib/graphql/execution/interpreter/resolve.rb
436
424
  - lib/graphql/execution/interpreter/runtime.rb
437
425
  - lib/graphql/execution/lazy.rb
438
426
  - lib/graphql/execution/lazy/lazy_method_map.rb
@@ -474,7 +462,6 @@ files:
474
462
  - lib/graphql/invalid_null_error.rb
475
463
  - lib/graphql/language.rb
476
464
  - lib/graphql/language/block_string.rb
477
- - lib/graphql/language/comments.rb
478
465
  - lib/graphql/language/definition_slice.rb
479
466
  - lib/graphql/language/document_from_schema_definition.rb
480
467
  - lib/graphql/language/generation.rb
@@ -487,6 +474,7 @@ files:
487
474
  - lib/graphql/language/token.rb
488
475
  - lib/graphql/language/visitor.rb
489
476
  - lib/graphql/list_type.rb
477
+ - lib/graphql/literal_validation_error.rb
490
478
  - lib/graphql/name_validator.rb
491
479
  - lib/graphql/non_null_type.rb
492
480
  - lib/graphql/object_type.rb
@@ -544,6 +532,11 @@ files:
544
532
  - lib/graphql/schema/catchall_middleware.rb
545
533
  - lib/graphql/schema/default_parse_error.rb
546
534
  - lib/graphql/schema/default_type_error.rb
535
+ - lib/graphql/schema/directive.rb
536
+ - lib/graphql/schema/directive/feature.rb
537
+ - lib/graphql/schema/directive/include.rb
538
+ - lib/graphql/schema/directive/skip.rb
539
+ - lib/graphql/schema/directive/transform.rb
547
540
  - lib/graphql/schema/enum.rb
548
541
  - lib/graphql/schema/enum_value.rb
549
542
  - lib/graphql/schema/field.rb
@@ -595,35 +588,64 @@ files:
595
588
  - lib/graphql/static_validation/base_visitor.rb
596
589
  - lib/graphql/static_validation/default_visitor.rb
597
590
  - lib/graphql/static_validation/definition_dependencies.rb
591
+ - lib/graphql/static_validation/error.rb
592
+ - lib/graphql/static_validation/interpreter_visitor.rb
598
593
  - lib/graphql/static_validation/literal_validator.rb
599
- - lib/graphql/static_validation/message.rb
600
594
  - lib/graphql/static_validation/no_validate_visitor.rb
601
595
  - lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
596
+ - lib/graphql/static_validation/rules/argument_literals_are_compatible_error.rb
602
597
  - lib/graphql/static_validation/rules/argument_names_are_unique.rb
598
+ - lib/graphql/static_validation/rules/argument_names_are_unique_error.rb
603
599
  - lib/graphql/static_validation/rules/arguments_are_defined.rb
600
+ - lib/graphql/static_validation/rules/arguments_are_defined_error.rb
604
601
  - lib/graphql/static_validation/rules/directives_are_defined.rb
602
+ - lib/graphql/static_validation/rules/directives_are_defined_error.rb
605
603
  - lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb
604
+ - lib/graphql/static_validation/rules/directives_are_in_valid_locations_error.rb
606
605
  - lib/graphql/static_validation/rules/fields_are_defined_on_type.rb
606
+ - lib/graphql/static_validation/rules/fields_are_defined_on_type_error.rb
607
607
  - lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb
608
+ - lib/graphql/static_validation/rules/fields_have_appropriate_selections_error.rb
608
609
  - lib/graphql/static_validation/rules/fields_will_merge.rb
610
+ - lib/graphql/static_validation/rules/fields_will_merge_error.rb
609
611
  - lib/graphql/static_validation/rules/fragment_names_are_unique.rb
612
+ - lib/graphql/static_validation/rules/fragment_names_are_unique_error.rb
610
613
  - lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb
614
+ - lib/graphql/static_validation/rules/fragment_spreads_are_possible_error.rb
611
615
  - lib/graphql/static_validation/rules/fragment_types_exist.rb
616
+ - lib/graphql/static_validation/rules/fragment_types_exist_error.rb
612
617
  - lib/graphql/static_validation/rules/fragments_are_finite.rb
618
+ - lib/graphql/static_validation/rules/fragments_are_finite_error.rb
613
619
  - lib/graphql/static_validation/rules/fragments_are_named.rb
620
+ - lib/graphql/static_validation/rules/fragments_are_named_error.rb
614
621
  - lib/graphql/static_validation/rules/fragments_are_on_composite_types.rb
622
+ - lib/graphql/static_validation/rules/fragments_are_on_composite_types_error.rb
615
623
  - lib/graphql/static_validation/rules/fragments_are_used.rb
624
+ - lib/graphql/static_validation/rules/fragments_are_used_error.rb
616
625
  - lib/graphql/static_validation/rules/mutation_root_exists.rb
626
+ - lib/graphql/static_validation/rules/mutation_root_exists_error.rb
617
627
  - lib/graphql/static_validation/rules/no_definitions_are_present.rb
628
+ - lib/graphql/static_validation/rules/no_definitions_are_present_error.rb
618
629
  - lib/graphql/static_validation/rules/operation_names_are_valid.rb
630
+ - lib/graphql/static_validation/rules/operation_names_are_valid_error.rb
619
631
  - lib/graphql/static_validation/rules/required_arguments_are_present.rb
632
+ - lib/graphql/static_validation/rules/required_arguments_are_present_error.rb
633
+ - lib/graphql/static_validation/rules/required_input_object_attributes_are_present.rb
634
+ - lib/graphql/static_validation/rules/required_input_object_attributes_are_present_error.rb
620
635
  - lib/graphql/static_validation/rules/subscription_root_exists.rb
636
+ - lib/graphql/static_validation/rules/subscription_root_exists_error.rb
621
637
  - lib/graphql/static_validation/rules/unique_directives_per_location.rb
638
+ - lib/graphql/static_validation/rules/unique_directives_per_location_error.rb
622
639
  - lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed.rb
640
+ - lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed_error.rb
623
641
  - lib/graphql/static_validation/rules/variable_names_are_unique.rb
642
+ - lib/graphql/static_validation/rules/variable_names_are_unique_error.rb
624
643
  - lib/graphql/static_validation/rules/variable_usages_are_allowed.rb
644
+ - lib/graphql/static_validation/rules/variable_usages_are_allowed_error.rb
625
645
  - lib/graphql/static_validation/rules/variables_are_input_types.rb
646
+ - lib/graphql/static_validation/rules/variables_are_input_types_error.rb
626
647
  - lib/graphql/static_validation/rules/variables_are_used_and_defined.rb
648
+ - lib/graphql/static_validation/rules/variables_are_used_and_defined_error.rb
627
649
  - lib/graphql/static_validation/type_stack.rb
628
650
  - lib/graphql/static_validation/validation_context.rb
629
651
  - lib/graphql/static_validation/validator.rb
@@ -664,6 +686,7 @@ files:
664
686
  - lib/graphql/types/relay/page_info.rb
665
687
  - lib/graphql/types/string.rb
666
688
  - lib/graphql/unauthorized_error.rb
689
+ - lib/graphql/unauthorized_field_error.rb
667
690
  - lib/graphql/union_type.rb
668
691
  - lib/graphql/unresolved_type_error.rb
669
692
  - lib/graphql/upgrader/member.rb
@@ -838,6 +861,8 @@ files:
838
861
  - spec/graphql/schema/argument_spec.rb
839
862
  - spec/graphql/schema/build_from_definition_spec.rb
840
863
  - spec/graphql/schema/catchall_middleware_spec.rb
864
+ - spec/graphql/schema/directive/feature_spec.rb
865
+ - spec/graphql/schema/directive/transform_spec.rb
841
866
  - spec/graphql/schema/enum_spec.rb
842
867
  - spec/graphql/schema/enum_value_spec.rb
843
868
  - spec/graphql/schema/field_extension_spec.rb
@@ -851,7 +876,6 @@ files:
851
876
  - spec/graphql/schema/loader_spec.rb
852
877
  - spec/graphql/schema/member/accepts_definition_spec.rb
853
878
  - spec/graphql/schema/member/build_type_spec.rb
854
- - spec/graphql/schema/member/has_fields_spec.rb
855
879
  - spec/graphql/schema/member/scoped_spec.rb
856
880
  - spec/graphql/schema/member/type_system_helpers_spec.rb
857
881
  - spec/graphql/schema/middleware_chain_spec.rb
@@ -889,6 +913,7 @@ files:
889
913
  - spec/graphql/static_validation/rules/no_definitions_are_present_spec.rb
890
914
  - spec/graphql/static_validation/rules/operation_names_are_valid_spec.rb
891
915
  - spec/graphql/static_validation/rules/required_arguments_are_present_spec.rb
916
+ - spec/graphql/static_validation/rules/required_input_object_attributes_are_present_spec.rb
892
917
  - spec/graphql/static_validation/rules/subscription_root_exists_spec.rb
893
918
  - spec/graphql/static_validation/rules/unique_directives_per_location_spec.rb
894
919
  - spec/graphql/static_validation/rules/variable_default_values_are_correctly_typed_spec.rb
@@ -941,10 +966,58 @@ files:
941
966
  - spec/integration/rails/graphql/schema_spec.rb
942
967
  - spec/integration/rails/graphql/tracing/active_support_notifications_tracing_spec.rb
943
968
  - spec/integration/rails/spec_helper.rb
944
- - spec/integration/tmp/app/graphql/types/family_type.rb
969
+ - spec/integration/tmp/app/graphql/types/bird_type.rb
970
+ - spec/integration/tmp/dummy/Gemfile
971
+ - spec/integration/tmp/dummy/README.rdoc
972
+ - spec/integration/tmp/dummy/Rakefile
973
+ - spec/integration/tmp/dummy/app/assets/javascripts/application.js
974
+ - spec/integration/tmp/dummy/app/assets/stylesheets/application.css
975
+ - spec/integration/tmp/dummy/app/controllers/application_controller.rb
976
+ - spec/integration/tmp/dummy/app/controllers/graphql_controller.rb
977
+ - spec/integration/tmp/dummy/app/graphql/dummy_schema.rb
978
+ - spec/integration/tmp/dummy/app/graphql/types/base_enum.rb
979
+ - spec/integration/tmp/dummy/app/graphql/types/base_input_object.rb
980
+ - spec/integration/tmp/dummy/app/graphql/types/base_interface.rb
981
+ - spec/integration/tmp/dummy/app/graphql/types/base_object.rb
982
+ - spec/integration/tmp/dummy/app/graphql/types/base_scalar.rb
983
+ - spec/integration/tmp/dummy/app/graphql/types/base_union.rb
984
+ - spec/integration/tmp/dummy/app/graphql/types/mutation_type.rb
985
+ - spec/integration/tmp/dummy/app/graphql/types/query_type.rb
986
+ - spec/integration/tmp/dummy/app/helpers/application_helper.rb
987
+ - spec/integration/tmp/dummy/app/views/layouts/application.html.erb
988
+ - spec/integration/tmp/dummy/bin/bundle
989
+ - spec/integration/tmp/dummy/bin/rails
990
+ - spec/integration/tmp/dummy/bin/rake
991
+ - spec/integration/tmp/dummy/bin/setup
992
+ - spec/integration/tmp/dummy/config.ru
993
+ - spec/integration/tmp/dummy/config/application.rb
994
+ - spec/integration/tmp/dummy/config/boot.rb
995
+ - spec/integration/tmp/dummy/config/environment.rb
996
+ - spec/integration/tmp/dummy/config/environments/development.rb
997
+ - spec/integration/tmp/dummy/config/environments/production.rb
998
+ - spec/integration/tmp/dummy/config/environments/test.rb
999
+ - spec/integration/tmp/dummy/config/initializers/assets.rb
1000
+ - spec/integration/tmp/dummy/config/initializers/backtrace_silencers.rb
1001
+ - spec/integration/tmp/dummy/config/initializers/cookies_serializer.rb
1002
+ - spec/integration/tmp/dummy/config/initializers/filter_parameter_logging.rb
1003
+ - spec/integration/tmp/dummy/config/initializers/inflections.rb
1004
+ - spec/integration/tmp/dummy/config/initializers/mime_types.rb
1005
+ - spec/integration/tmp/dummy/config/initializers/session_store.rb
1006
+ - spec/integration/tmp/dummy/config/initializers/to_time_preserves_timezone.rb
1007
+ - spec/integration/tmp/dummy/config/initializers/wrap_parameters.rb
1008
+ - spec/integration/tmp/dummy/config/locales/en.yml
1009
+ - spec/integration/tmp/dummy/config/routes.rb
1010
+ - spec/integration/tmp/dummy/config/secrets.yml
1011
+ - spec/integration/tmp/dummy/db/seeds.rb
1012
+ - spec/integration/tmp/dummy/public/404.html
1013
+ - spec/integration/tmp/dummy/public/422.html
1014
+ - spec/integration/tmp/dummy/public/500.html
1015
+ - spec/integration/tmp/dummy/public/favicon.ico
1016
+ - spec/integration/tmp/dummy/public/robots.txt
945
1017
  - spec/spec_helper.rb
946
1018
  - spec/support/dummy/data.rb
947
1019
  - spec/support/dummy/schema.rb
1020
+ - spec/support/error_bubbling_helpers.rb
948
1021
  - spec/support/global_id.rb
949
1022
  - spec/support/jazz.rb
950
1023
  - spec/support/lazy_helpers.rb
@@ -1150,6 +1223,8 @@ test_files:
1150
1223
  - spec/graphql/schema/argument_spec.rb
1151
1224
  - spec/graphql/schema/build_from_definition_spec.rb
1152
1225
  - spec/graphql/schema/catchall_middleware_spec.rb
1226
+ - spec/graphql/schema/directive/feature_spec.rb
1227
+ - spec/graphql/schema/directive/transform_spec.rb
1153
1228
  - spec/graphql/schema/enum_spec.rb
1154
1229
  - spec/graphql/schema/enum_value_spec.rb
1155
1230
  - spec/graphql/schema/field_extension_spec.rb
@@ -1163,7 +1238,6 @@ test_files:
1163
1238
  - spec/graphql/schema/loader_spec.rb
1164
1239
  - spec/graphql/schema/member/accepts_definition_spec.rb
1165
1240
  - spec/graphql/schema/member/build_type_spec.rb
1166
- - spec/graphql/schema/member/has_fields_spec.rb
1167
1241
  - spec/graphql/schema/member/scoped_spec.rb
1168
1242
  - spec/graphql/schema/member/type_system_helpers_spec.rb
1169
1243
  - spec/graphql/schema/middleware_chain_spec.rb
@@ -1201,6 +1275,7 @@ test_files:
1201
1275
  - spec/graphql/static_validation/rules/no_definitions_are_present_spec.rb
1202
1276
  - spec/graphql/static_validation/rules/operation_names_are_valid_spec.rb
1203
1277
  - spec/graphql/static_validation/rules/required_arguments_are_present_spec.rb
1278
+ - spec/graphql/static_validation/rules/required_input_object_attributes_are_present_spec.rb
1204
1279
  - spec/graphql/static_validation/rules/subscription_root_exists_spec.rb
1205
1280
  - spec/graphql/static_validation/rules/unique_directives_per_location_spec.rb
1206
1281
  - spec/graphql/static_validation/rules/variable_default_values_are_correctly_typed_spec.rb
@@ -1253,10 +1328,58 @@ test_files:
1253
1328
  - spec/integration/rails/graphql/schema_spec.rb
1254
1329
  - spec/integration/rails/graphql/tracing/active_support_notifications_tracing_spec.rb
1255
1330
  - spec/integration/rails/spec_helper.rb
1256
- - spec/integration/tmp/app/graphql/types/family_type.rb
1331
+ - spec/integration/tmp/app/graphql/types/bird_type.rb
1332
+ - spec/integration/tmp/dummy/app/assets/javascripts/application.js
1333
+ - spec/integration/tmp/dummy/app/assets/stylesheets/application.css
1334
+ - spec/integration/tmp/dummy/app/controllers/application_controller.rb
1335
+ - spec/integration/tmp/dummy/app/controllers/graphql_controller.rb
1336
+ - spec/integration/tmp/dummy/app/graphql/dummy_schema.rb
1337
+ - spec/integration/tmp/dummy/app/graphql/types/base_enum.rb
1338
+ - spec/integration/tmp/dummy/app/graphql/types/base_input_object.rb
1339
+ - spec/integration/tmp/dummy/app/graphql/types/base_interface.rb
1340
+ - spec/integration/tmp/dummy/app/graphql/types/base_object.rb
1341
+ - spec/integration/tmp/dummy/app/graphql/types/base_scalar.rb
1342
+ - spec/integration/tmp/dummy/app/graphql/types/base_union.rb
1343
+ - spec/integration/tmp/dummy/app/graphql/types/mutation_type.rb
1344
+ - spec/integration/tmp/dummy/app/graphql/types/query_type.rb
1345
+ - spec/integration/tmp/dummy/app/helpers/application_helper.rb
1346
+ - spec/integration/tmp/dummy/app/views/layouts/application.html.erb
1347
+ - spec/integration/tmp/dummy/bin/bundle
1348
+ - spec/integration/tmp/dummy/bin/rails
1349
+ - spec/integration/tmp/dummy/bin/rake
1350
+ - spec/integration/tmp/dummy/bin/setup
1351
+ - spec/integration/tmp/dummy/config/application.rb
1352
+ - spec/integration/tmp/dummy/config/boot.rb
1353
+ - spec/integration/tmp/dummy/config/environment.rb
1354
+ - spec/integration/tmp/dummy/config/environments/development.rb
1355
+ - spec/integration/tmp/dummy/config/environments/production.rb
1356
+ - spec/integration/tmp/dummy/config/environments/test.rb
1357
+ - spec/integration/tmp/dummy/config/initializers/assets.rb
1358
+ - spec/integration/tmp/dummy/config/initializers/backtrace_silencers.rb
1359
+ - spec/integration/tmp/dummy/config/initializers/cookies_serializer.rb
1360
+ - spec/integration/tmp/dummy/config/initializers/filter_parameter_logging.rb
1361
+ - spec/integration/tmp/dummy/config/initializers/inflections.rb
1362
+ - spec/integration/tmp/dummy/config/initializers/mime_types.rb
1363
+ - spec/integration/tmp/dummy/config/initializers/session_store.rb
1364
+ - spec/integration/tmp/dummy/config/initializers/to_time_preserves_timezone.rb
1365
+ - spec/integration/tmp/dummy/config/initializers/wrap_parameters.rb
1366
+ - spec/integration/tmp/dummy/config/locales/en.yml
1367
+ - spec/integration/tmp/dummy/config/routes.rb
1368
+ - spec/integration/tmp/dummy/config/secrets.yml
1369
+ - spec/integration/tmp/dummy/config.ru
1370
+ - spec/integration/tmp/dummy/db/seeds.rb
1371
+ - spec/integration/tmp/dummy/Gemfile
1372
+ - spec/integration/tmp/dummy/public/404.html
1373
+ - spec/integration/tmp/dummy/public/422.html
1374
+ - spec/integration/tmp/dummy/public/500.html
1375
+ - spec/integration/tmp/dummy/public/favicon.ico
1376
+ - spec/integration/tmp/dummy/public/robots.txt
1377
+ - spec/integration/tmp/dummy/Rakefile
1378
+ - spec/integration/tmp/dummy/README.rdoc
1257
1379
  - spec/spec_helper.rb
1258
1380
  - spec/support/dummy/data.rb
1259
1381
  - spec/support/dummy/schema.rb
1382
+ - spec/support/error_bubbling_helpers.rb
1260
1383
  - spec/support/global_id.rb
1261
1384
  - spec/support/jazz.rb
1262
1385
  - spec/support/lazy_helpers.rb