graphql 1.9.0 → 2.1.1

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

Potentially problematic release.


This version of graphql might be problematic. Click here for more details.

Files changed (723) hide show
  1. checksums.yaml +5 -5
  2. data/lib/generators/graphql/core.rb +21 -9
  3. data/lib/generators/graphql/enum_generator.rb +4 -10
  4. data/lib/generators/graphql/field_extractor.rb +31 -0
  5. data/lib/generators/graphql/input_generator.rb +50 -0
  6. data/lib/generators/graphql/install/mutation_root_generator.rb +34 -0
  7. data/lib/generators/graphql/install/templates/base_mutation.erb +12 -0
  8. data/lib/generators/graphql/{templates → install/templates}/mutation_type.erb +4 -0
  9. data/lib/generators/graphql/install_generator.rb +49 -9
  10. data/lib/generators/graphql/interface_generator.rb +7 -7
  11. data/lib/generators/graphql/loader_generator.rb +1 -0
  12. data/lib/generators/graphql/mutation_create_generator.rb +22 -0
  13. data/lib/generators/graphql/mutation_delete_generator.rb +22 -0
  14. data/lib/generators/graphql/mutation_generator.rb +6 -30
  15. data/lib/generators/graphql/mutation_update_generator.rb +22 -0
  16. data/lib/generators/graphql/object_generator.rb +28 -12
  17. data/lib/generators/graphql/orm_mutations_base.rb +40 -0
  18. data/lib/generators/graphql/relay.rb +66 -0
  19. data/lib/generators/graphql/relay_generator.rb +21 -0
  20. data/lib/generators/graphql/scalar_generator.rb +4 -2
  21. data/lib/generators/graphql/templates/base_argument.erb +8 -0
  22. data/lib/generators/graphql/templates/base_connection.erb +10 -0
  23. data/lib/generators/graphql/templates/base_edge.erb +10 -0
  24. data/lib/generators/graphql/templates/base_enum.erb +4 -0
  25. data/lib/generators/graphql/templates/base_field.erb +9 -0
  26. data/lib/generators/graphql/templates/base_input_object.erb +5 -0
  27. data/lib/generators/graphql/templates/base_interface.erb +6 -0
  28. data/lib/generators/graphql/templates/base_object.erb +5 -0
  29. data/lib/generators/graphql/templates/base_scalar.erb +4 -0
  30. data/lib/generators/graphql/templates/base_union.erb +4 -0
  31. data/lib/generators/graphql/templates/enum.erb +7 -1
  32. data/lib/generators/graphql/templates/graphql_controller.erb +23 -12
  33. data/lib/generators/graphql/templates/input.erb +9 -0
  34. data/lib/generators/graphql/templates/interface.erb +6 -2
  35. data/lib/generators/graphql/templates/loader.erb +4 -0
  36. data/lib/generators/graphql/templates/mutation.erb +5 -1
  37. data/lib/generators/graphql/templates/mutation_create.erb +20 -0
  38. data/lib/generators/graphql/templates/mutation_delete.erb +20 -0
  39. data/lib/generators/graphql/templates/mutation_update.erb +21 -0
  40. data/lib/generators/graphql/templates/node_type.erb +11 -0
  41. data/lib/generators/graphql/templates/object.erb +7 -3
  42. data/lib/generators/graphql/templates/query_type.erb +5 -3
  43. data/lib/generators/graphql/templates/scalar.erb +5 -1
  44. data/lib/generators/graphql/templates/schema.erb +27 -27
  45. data/lib/generators/graphql/templates/union.erb +6 -2
  46. data/lib/generators/graphql/type_generator.rb +47 -10
  47. data/lib/generators/graphql/union_generator.rb +5 -5
  48. data/lib/graphql/analysis/ast/analyzer.rb +41 -12
  49. data/lib/graphql/analysis/ast/field_usage.rb +32 -3
  50. data/lib/graphql/analysis/ast/max_query_complexity.rb +4 -5
  51. data/lib/graphql/analysis/ast/max_query_depth.rb +7 -3
  52. data/lib/graphql/analysis/ast/query_complexity.rb +182 -66
  53. data/lib/graphql/analysis/ast/query_depth.rb +15 -26
  54. data/lib/graphql/analysis/ast/visitor.rb +83 -62
  55. data/lib/graphql/analysis/ast.rb +23 -20
  56. data/lib/graphql/analysis.rb +0 -7
  57. data/lib/graphql/backtrace/inspect_result.rb +0 -1
  58. data/lib/graphql/backtrace/table.rb +37 -16
  59. data/lib/graphql/backtrace/trace.rb +96 -0
  60. data/lib/graphql/backtrace/traced_error.rb +0 -1
  61. data/lib/graphql/backtrace/tracer.rb +39 -9
  62. data/lib/graphql/backtrace.rb +22 -18
  63. data/lib/graphql/coercion_error.rb +8 -0
  64. data/lib/graphql/dataloader/null_dataloader.rb +24 -0
  65. data/lib/graphql/dataloader/request.rb +19 -0
  66. data/lib/graphql/dataloader/request_all.rb +19 -0
  67. data/lib/graphql/dataloader/source.rb +195 -0
  68. data/lib/graphql/dataloader.rb +320 -0
  69. data/lib/graphql/date_encoding_error.rb +16 -0
  70. data/lib/graphql/deprecation.rb +9 -0
  71. data/lib/graphql/dig.rb +1 -1
  72. data/lib/graphql/execution/directive_checks.rb +2 -2
  73. data/lib/graphql/execution/errors.rb +93 -0
  74. data/lib/graphql/execution/interpreter/argument_value.rb +28 -0
  75. data/lib/graphql/execution/interpreter/arguments.rb +88 -0
  76. data/lib/graphql/execution/interpreter/arguments_cache.rb +105 -0
  77. data/lib/graphql/execution/interpreter/handles_raw_value.rb +18 -0
  78. data/lib/graphql/execution/interpreter/resolve.rb +62 -24
  79. data/lib/graphql/execution/interpreter/runtime/graphql_result.rb +170 -0
  80. data/lib/graphql/execution/interpreter/runtime.rb +695 -392
  81. data/lib/graphql/execution/interpreter.rb +199 -74
  82. data/lib/graphql/execution/lazy/lazy_method_map.rb +4 -0
  83. data/lib/graphql/execution/lazy.rb +11 -21
  84. data/lib/graphql/execution/lookahead.rb +110 -150
  85. data/lib/graphql/execution/multiplex.rb +6 -148
  86. data/lib/graphql/execution.rb +12 -4
  87. data/lib/graphql/execution_error.rb +3 -2
  88. data/lib/graphql/integer_decoding_error.rb +17 -0
  89. data/lib/graphql/integer_encoding_error.rb +26 -2
  90. data/lib/graphql/introspection/base_object.rb +2 -5
  91. data/lib/graphql/introspection/directive_location_enum.rb +2 -2
  92. data/lib/graphql/introspection/directive_type.rb +12 -6
  93. data/lib/graphql/introspection/dynamic_fields.rb +3 -8
  94. data/lib/graphql/introspection/entry_points.rb +6 -18
  95. data/lib/graphql/introspection/enum_value_type.rb +2 -2
  96. data/lib/graphql/introspection/field_type.rb +9 -5
  97. data/lib/graphql/introspection/input_value_type.rb +41 -7
  98. data/lib/graphql/introspection/introspection_query.rb +6 -92
  99. data/lib/graphql/introspection/schema_type.rb +13 -12
  100. data/lib/graphql/introspection/type_type.rb +34 -17
  101. data/lib/graphql/introspection.rb +100 -0
  102. data/lib/graphql/invalid_null_error.rb +18 -0
  103. data/lib/graphql/language/block_string.rb +50 -23
  104. data/lib/graphql/language/cache.rb +37 -0
  105. data/lib/graphql/language/definition_slice.rb +21 -10
  106. data/lib/graphql/language/document_from_schema_definition.rb +153 -87
  107. data/lib/graphql/language/lexer.rb +249 -1450
  108. data/lib/graphql/language/nodes.rb +152 -142
  109. data/lib/graphql/language/parser.rb +1036 -953
  110. data/lib/graphql/language/parser.y +159 -120
  111. data/lib/graphql/language/printer.rb +342 -154
  112. data/lib/graphql/language/sanitized_printer.rb +220 -0
  113. data/lib/graphql/language/static_visitor.rb +167 -0
  114. data/lib/graphql/language/token.rb +2 -2
  115. data/lib/graphql/language/visitor.rb +196 -140
  116. data/lib/graphql/language.rb +4 -1
  117. data/lib/graphql/load_application_object_failed_error.rb +22 -0
  118. data/lib/graphql/name_validator.rb +2 -7
  119. data/lib/graphql/pagination/active_record_relation_connection.rb +77 -0
  120. data/lib/graphql/pagination/array_connection.rb +79 -0
  121. data/lib/graphql/pagination/connection.rb +275 -0
  122. data/lib/graphql/pagination/connections.rb +135 -0
  123. data/lib/graphql/pagination/mongoid_relation_connection.rb +25 -0
  124. data/lib/graphql/pagination/relation_connection.rb +228 -0
  125. data/lib/graphql/pagination/sequel_dataset_connection.rb +28 -0
  126. data/lib/graphql/pagination.rb +6 -0
  127. data/lib/graphql/parse_error.rb +0 -1
  128. data/lib/graphql/query/context/scoped_context.rb +101 -0
  129. data/lib/graphql/query/context.rb +157 -187
  130. data/lib/graphql/query/fingerprint.rb +26 -0
  131. data/lib/graphql/query/input_validation_result.rb +33 -7
  132. data/lib/graphql/query/null_context.rb +21 -14
  133. data/lib/graphql/query/validation_pipeline.rb +17 -38
  134. data/lib/graphql/query/variable_validation_error.rb +17 -3
  135. data/lib/graphql/query/variables.rb +49 -14
  136. data/lib/graphql/query.rb +142 -61
  137. data/lib/graphql/railtie.rb +6 -102
  138. data/lib/graphql/rake_task/validate.rb +5 -2
  139. data/lib/graphql/rake_task.rb +42 -20
  140. data/lib/graphql/relay/range_add.rb +17 -10
  141. data/lib/graphql/relay.rb +0 -15
  142. data/lib/graphql/rubocop/graphql/base_cop.rb +36 -0
  143. data/lib/graphql/rubocop/graphql/default_null_true.rb +43 -0
  144. data/lib/graphql/rubocop/graphql/default_required_true.rb +43 -0
  145. data/lib/graphql/rubocop.rb +4 -0
  146. data/lib/graphql/schema/addition.rb +271 -0
  147. data/lib/graphql/schema/always_visible.rb +10 -0
  148. data/lib/graphql/schema/argument.rb +301 -32
  149. data/lib/graphql/schema/base_64_bp.rb +3 -2
  150. data/lib/graphql/schema/base_64_encoder.rb +2 -0
  151. data/lib/graphql/schema/build_from_definition/resolve_map/default_resolve.rb +1 -1
  152. data/lib/graphql/schema/build_from_definition/resolve_map.rb +13 -5
  153. data/lib/graphql/schema/build_from_definition.rb +349 -203
  154. data/lib/graphql/schema/built_in_types.rb +5 -5
  155. data/lib/graphql/schema/directive/deprecated.rb +18 -0
  156. data/lib/graphql/schema/directive/feature.rb +2 -2
  157. data/lib/graphql/schema/directive/flagged.rb +57 -0
  158. data/lib/graphql/schema/directive/include.rb +2 -2
  159. data/lib/graphql/schema/directive/one_of.rb +12 -0
  160. data/lib/graphql/schema/directive/skip.rb +2 -2
  161. data/lib/graphql/schema/directive/specified_by.rb +14 -0
  162. data/lib/graphql/schema/directive/transform.rb +14 -2
  163. data/lib/graphql/schema/directive.rb +134 -15
  164. data/lib/graphql/schema/enum.rb +137 -39
  165. data/lib/graphql/schema/enum_value.rb +17 -23
  166. data/lib/graphql/schema/field/connection_extension.rb +36 -20
  167. data/lib/graphql/schema/field/scope_extension.rb +15 -5
  168. data/lib/graphql/schema/field.rb +570 -334
  169. data/lib/graphql/schema/field_extension.rb +88 -4
  170. data/lib/graphql/schema/find_inherited_value.rb +31 -0
  171. data/lib/graphql/schema/finder.rb +16 -14
  172. data/lib/graphql/schema/has_single_input_argument.rb +156 -0
  173. data/lib/graphql/schema/input_object.rb +190 -48
  174. data/lib/graphql/schema/interface.rb +24 -49
  175. data/lib/graphql/schema/introspection_system.rb +109 -36
  176. data/lib/graphql/schema/late_bound_type.rb +9 -2
  177. data/lib/graphql/schema/list.rb +61 -3
  178. data/lib/graphql/schema/loader.rb +146 -97
  179. data/lib/graphql/schema/member/base_dsl_methods.rb +45 -51
  180. data/lib/graphql/schema/member/build_type.rb +34 -17
  181. data/lib/graphql/schema/member/has_arguments.rb +385 -10
  182. data/lib/graphql/schema/member/has_ast_node.rb +32 -0
  183. data/lib/graphql/schema/member/has_deprecation_reason.rb +24 -0
  184. data/lib/graphql/schema/member/has_directives.rb +118 -0
  185. data/lib/graphql/schema/member/has_fields.rb +180 -35
  186. data/lib/graphql/schema/member/has_interfaces.rb +143 -0
  187. data/lib/graphql/schema/member/has_unresolved_type_error.rb +15 -0
  188. data/lib/graphql/schema/member/has_validators.rb +57 -0
  189. data/lib/graphql/schema/member/relay_shortcuts.rb +47 -2
  190. data/lib/graphql/schema/member/scoped.rb +19 -0
  191. data/lib/graphql/schema/member/type_system_helpers.rb +20 -3
  192. data/lib/graphql/schema/member/validates_input.rb +33 -0
  193. data/lib/graphql/schema/member.rb +11 -6
  194. data/lib/graphql/schema/mutation.rb +4 -9
  195. data/lib/graphql/schema/non_null.rb +34 -4
  196. data/lib/graphql/schema/object.rb +55 -64
  197. data/lib/graphql/schema/printer.rb +26 -40
  198. data/lib/graphql/schema/relay_classic_mutation.rb +13 -80
  199. data/lib/graphql/schema/resolver/has_payload_type.rb +53 -12
  200. data/lib/graphql/schema/resolver.rb +182 -162
  201. data/lib/graphql/schema/scalar.rb +40 -15
  202. data/lib/graphql/schema/subscription.rb +85 -27
  203. data/lib/graphql/schema/timeout.rb +119 -0
  204. data/lib/graphql/schema/type_expression.rb +21 -13
  205. data/lib/graphql/schema/type_membership.rb +51 -0
  206. data/lib/graphql/schema/union.rb +69 -15
  207. data/lib/graphql/schema/unique_within_type.rb +1 -2
  208. data/lib/graphql/schema/validator/allow_blank_validator.rb +29 -0
  209. data/lib/graphql/schema/validator/allow_null_validator.rb +26 -0
  210. data/lib/graphql/schema/validator/exclusion_validator.rb +33 -0
  211. data/lib/graphql/schema/validator/format_validator.rb +48 -0
  212. data/lib/graphql/schema/validator/inclusion_validator.rb +35 -0
  213. data/lib/graphql/schema/validator/length_validator.rb +59 -0
  214. data/lib/graphql/schema/validator/numericality_validator.rb +82 -0
  215. data/lib/graphql/schema/validator/required_validator.rb +82 -0
  216. data/lib/graphql/schema/validator.rb +171 -0
  217. data/lib/graphql/schema/warden.rb +330 -59
  218. data/lib/graphql/schema/wrapper.rb +0 -5
  219. data/lib/graphql/schema.rb +985 -858
  220. data/lib/graphql/static_validation/all_rules.rb +4 -1
  221. data/lib/graphql/static_validation/base_visitor.rb +33 -32
  222. data/lib/graphql/static_validation/definition_dependencies.rb +28 -14
  223. data/lib/graphql/static_validation/error.rb +3 -1
  224. data/lib/graphql/static_validation/literal_validator.rb +71 -28
  225. data/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb +46 -79
  226. data/lib/graphql/static_validation/rules/argument_literals_are_compatible_error.rb +23 -6
  227. data/lib/graphql/static_validation/rules/arguments_are_defined.rb +35 -26
  228. data/lib/graphql/static_validation/rules/arguments_are_defined_error.rb +4 -2
  229. data/lib/graphql/static_validation/rules/directives_are_defined.rb +12 -6
  230. data/lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb +14 -14
  231. data/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb +4 -4
  232. data/lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb +15 -7
  233. data/lib/graphql/static_validation/rules/fields_will_merge.rb +107 -57
  234. data/lib/graphql/static_validation/rules/fields_will_merge_error.rb +25 -4
  235. data/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb +3 -3
  236. data/lib/graphql/static_validation/rules/fragments_are_finite.rb +2 -2
  237. data/lib/graphql/static_validation/rules/input_object_names_are_unique.rb +30 -0
  238. data/lib/graphql/static_validation/rules/input_object_names_are_unique_error.rb +30 -0
  239. data/lib/graphql/static_validation/rules/one_of_input_objects_are_valid.rb +66 -0
  240. data/lib/graphql/static_validation/rules/one_of_input_objects_are_valid_error.rb +29 -0
  241. data/lib/graphql/static_validation/rules/query_root_exists.rb +17 -0
  242. data/lib/graphql/static_validation/rules/query_root_exists_error.rb +26 -0
  243. data/lib/graphql/static_validation/rules/required_arguments_are_present.rb +6 -4
  244. data/lib/graphql/static_validation/rules/required_input_object_attributes_are_present.rb +22 -10
  245. data/lib/graphql/static_validation/rules/unique_directives_per_location.rb +13 -7
  246. data/lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed.rb +12 -13
  247. data/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb +19 -14
  248. data/lib/graphql/static_validation/rules/variables_are_input_types.rb +1 -1
  249. data/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb +5 -3
  250. data/lib/graphql/static_validation/validation_context.rb +17 -7
  251. data/lib/graphql/static_validation/validation_timeout_error.rb +25 -0
  252. data/lib/graphql/static_validation/validator.rb +32 -20
  253. data/lib/graphql/static_validation.rb +1 -3
  254. data/lib/graphql/string_encoding_error.rb +13 -3
  255. data/lib/graphql/subscriptions/action_cable_subscriptions.rb +134 -24
  256. data/lib/graphql/subscriptions/broadcast_analyzer.rb +81 -0
  257. data/lib/graphql/subscriptions/default_subscription_resolve_extension.rb +58 -0
  258. data/lib/graphql/subscriptions/event.rb +90 -27
  259. data/lib/graphql/subscriptions/instrumentation.rb +0 -47
  260. data/lib/graphql/subscriptions/serialize.rb +53 -6
  261. data/lib/graphql/subscriptions.rb +147 -62
  262. data/lib/graphql/tracing/active_support_notifications_trace.rb +16 -0
  263. data/lib/graphql/tracing/active_support_notifications_tracing.rb +8 -17
  264. data/lib/graphql/tracing/appoptics_trace.rb +251 -0
  265. data/lib/graphql/tracing/appoptics_tracing.rb +173 -0
  266. data/lib/graphql/tracing/appsignal_trace.rb +77 -0
  267. data/lib/graphql/tracing/appsignal_tracing.rb +23 -0
  268. data/lib/graphql/tracing/data_dog_trace.rb +196 -0
  269. data/lib/graphql/tracing/data_dog_tracing.rb +53 -2
  270. data/lib/graphql/tracing/legacy_trace.rb +69 -0
  271. data/lib/graphql/tracing/new_relic_trace.rb +75 -0
  272. data/lib/graphql/tracing/new_relic_tracing.rb +9 -12
  273. data/lib/graphql/tracing/notifications_trace.rb +45 -0
  274. data/lib/graphql/tracing/notifications_tracing.rb +59 -0
  275. data/lib/graphql/tracing/platform_trace.rb +118 -0
  276. data/lib/graphql/tracing/platform_tracing.rb +77 -31
  277. data/lib/graphql/tracing/prometheus_trace.rb +89 -0
  278. data/lib/graphql/tracing/prometheus_tracing/graphql_collector.rb +5 -2
  279. data/lib/graphql/tracing/prometheus_tracing.rb +11 -3
  280. data/lib/graphql/tracing/scout_trace.rb +72 -0
  281. data/lib/graphql/tracing/scout_tracing.rb +19 -0
  282. data/lib/graphql/tracing/statsd_trace.rb +56 -0
  283. data/lib/graphql/tracing/statsd_tracing.rb +42 -0
  284. data/lib/graphql/tracing/trace.rb +75 -0
  285. data/lib/graphql/tracing.rb +24 -67
  286. data/lib/graphql/type_kinds.rb +6 -3
  287. data/lib/graphql/types/big_int.rb +23 -0
  288. data/lib/graphql/types/int.rb +11 -3
  289. data/lib/graphql/types/iso_8601_date.rb +45 -0
  290. data/lib/graphql/types/iso_8601_date_time.rb +36 -8
  291. data/lib/graphql/types/json.rb +25 -0
  292. data/lib/graphql/types/relay/base_connection.rb +18 -90
  293. data/lib/graphql/types/relay/base_edge.rb +2 -36
  294. data/lib/graphql/types/relay/connection_behaviors.rb +193 -0
  295. data/lib/graphql/types/relay/edge_behaviors.rb +82 -0
  296. data/lib/graphql/types/relay/has_node_field.rb +41 -0
  297. data/lib/graphql/types/relay/has_nodes_field.rb +41 -0
  298. data/lib/graphql/types/relay/node.rb +2 -4
  299. data/lib/graphql/types/relay/node_behaviors.rb +25 -0
  300. data/lib/graphql/types/relay/page_info.rb +2 -14
  301. data/lib/graphql/types/relay/page_info_behaviors.rb +30 -0
  302. data/lib/graphql/types/relay.rb +10 -5
  303. data/lib/graphql/types/string.rb +8 -2
  304. data/lib/graphql/types.rb +3 -0
  305. data/lib/graphql/unauthorized_error.rb +3 -3
  306. data/lib/graphql/unauthorized_field_error.rb +1 -1
  307. data/lib/graphql/unresolved_type_error.rb +2 -2
  308. data/lib/graphql/version.rb +1 -1
  309. data/lib/graphql.rb +68 -54
  310. data/readme.md +4 -7
  311. metadata +150 -822
  312. data/lib/graphql/analysis/analyze_query.rb +0 -91
  313. data/lib/graphql/analysis/field_usage.rb +0 -45
  314. data/lib/graphql/analysis/max_query_complexity.rb +0 -26
  315. data/lib/graphql/analysis/max_query_depth.rb +0 -26
  316. data/lib/graphql/analysis/query_complexity.rb +0 -88
  317. data/lib/graphql/analysis/query_depth.rb +0 -56
  318. data/lib/graphql/analysis/reducer_state.rb +0 -48
  319. data/lib/graphql/argument.rb +0 -153
  320. data/lib/graphql/authorization.rb +0 -82
  321. data/lib/graphql/backwards_compatibility.rb +0 -60
  322. data/lib/graphql/base_type.rb +0 -226
  323. data/lib/graphql/boolean_type.rb +0 -2
  324. data/lib/graphql/compatibility/execution_specification/counter_schema.rb +0 -53
  325. data/lib/graphql/compatibility/execution_specification/specification_schema.rb +0 -200
  326. data/lib/graphql/compatibility/execution_specification.rb +0 -435
  327. data/lib/graphql/compatibility/lazy_execution_specification/lazy_schema.rb +0 -111
  328. data/lib/graphql/compatibility/lazy_execution_specification.rb +0 -213
  329. data/lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb +0 -91
  330. data/lib/graphql/compatibility/query_parser_specification/query_assertions.rb +0 -79
  331. data/lib/graphql/compatibility/query_parser_specification.rb +0 -264
  332. data/lib/graphql/compatibility/schema_parser_specification.rb +0 -680
  333. data/lib/graphql/compatibility.rb +0 -5
  334. data/lib/graphql/define/assign_argument.rb +0 -12
  335. data/lib/graphql/define/assign_connection.rb +0 -13
  336. data/lib/graphql/define/assign_enum_value.rb +0 -18
  337. data/lib/graphql/define/assign_global_id_field.rb +0 -11
  338. data/lib/graphql/define/assign_mutation_function.rb +0 -34
  339. data/lib/graphql/define/assign_object_field.rb +0 -42
  340. data/lib/graphql/define/defined_object_proxy.rb +0 -50
  341. data/lib/graphql/define/instance_definable.rb +0 -300
  342. data/lib/graphql/define/no_definition_error.rb +0 -7
  343. data/lib/graphql/define/non_null_with_bang.rb +0 -16
  344. data/lib/graphql/define/type_definer.rb +0 -31
  345. data/lib/graphql/define.rb +0 -31
  346. data/lib/graphql/deprecated_dsl.rb +0 -42
  347. data/lib/graphql/directive/deprecated_directive.rb +0 -13
  348. data/lib/graphql/directive/include_directive.rb +0 -2
  349. data/lib/graphql/directive/skip_directive.rb +0 -2
  350. data/lib/graphql/directive.rb +0 -104
  351. data/lib/graphql/enum_type.rb +0 -193
  352. data/lib/graphql/execution/execute.rb +0 -319
  353. data/lib/graphql/execution/flatten.rb +0 -40
  354. data/lib/graphql/execution/instrumentation.rb +0 -92
  355. data/lib/graphql/execution/interpreter/hash_response.rb +0 -46
  356. data/lib/graphql/execution/lazy/resolve.rb +0 -91
  357. data/lib/graphql/execution/typecast.rb +0 -50
  358. data/lib/graphql/field/resolve.rb +0 -59
  359. data/lib/graphql/field.rb +0 -330
  360. data/lib/graphql/filter.rb +0 -53
  361. data/lib/graphql/float_type.rb +0 -2
  362. data/lib/graphql/function.rb +0 -153
  363. data/lib/graphql/id_type.rb +0 -2
  364. data/lib/graphql/input_object_type.rb +0 -153
  365. data/lib/graphql/int_type.rb +0 -2
  366. data/lib/graphql/interface_type.rb +0 -86
  367. data/lib/graphql/internal_representation/document.rb +0 -27
  368. data/lib/graphql/internal_representation/node.rb +0 -206
  369. data/lib/graphql/internal_representation/print.rb +0 -51
  370. data/lib/graphql/internal_representation/rewrite.rb +0 -184
  371. data/lib/graphql/internal_representation/scope.rb +0 -88
  372. data/lib/graphql/internal_representation/visit.rb +0 -36
  373. data/lib/graphql/internal_representation.rb +0 -7
  374. data/lib/graphql/language/lexer.rl +0 -236
  375. data/lib/graphql/list_type.rb +0 -80
  376. data/lib/graphql/literal_validation_error.rb +0 -6
  377. data/lib/graphql/non_null_type.rb +0 -81
  378. data/lib/graphql/object_type.rb +0 -141
  379. data/lib/graphql/query/arguments.rb +0 -179
  380. data/lib/graphql/query/arguments_cache.rb +0 -25
  381. data/lib/graphql/query/executor.rb +0 -53
  382. data/lib/graphql/query/literal_input.rb +0 -115
  383. data/lib/graphql/query/serial_execution/field_resolution.rb +0 -92
  384. data/lib/graphql/query/serial_execution/operation_resolution.rb +0 -19
  385. data/lib/graphql/query/serial_execution/selection_resolution.rb +0 -23
  386. data/lib/graphql/query/serial_execution/value_resolution.rb +0 -87
  387. data/lib/graphql/query/serial_execution.rb +0 -39
  388. data/lib/graphql/relay/array_connection.rb +0 -85
  389. data/lib/graphql/relay/base_connection.rb +0 -172
  390. data/lib/graphql/relay/connection_instrumentation.rb +0 -54
  391. data/lib/graphql/relay/connection_resolve.rb +0 -43
  392. data/lib/graphql/relay/connection_type.rb +0 -40
  393. data/lib/graphql/relay/edge.rb +0 -27
  394. data/lib/graphql/relay/edge_type.rb +0 -18
  395. data/lib/graphql/relay/edges_instrumentation.rb +0 -40
  396. data/lib/graphql/relay/global_id_resolve.rb +0 -18
  397. data/lib/graphql/relay/mongo_relation_connection.rb +0 -50
  398. data/lib/graphql/relay/mutation/instrumentation.rb +0 -23
  399. data/lib/graphql/relay/mutation/resolve.rb +0 -56
  400. data/lib/graphql/relay/mutation/result.rb +0 -38
  401. data/lib/graphql/relay/mutation.rb +0 -190
  402. data/lib/graphql/relay/node.rb +0 -36
  403. data/lib/graphql/relay/page_info.rb +0 -7
  404. data/lib/graphql/relay/relation_connection.rb +0 -186
  405. data/lib/graphql/relay/type_extensions.rb +0 -30
  406. data/lib/graphql/scalar_type.rb +0 -135
  407. data/lib/graphql/schema/catchall_middleware.rb +0 -35
  408. data/lib/graphql/schema/default_parse_error.rb +0 -10
  409. data/lib/graphql/schema/default_type_error.rb +0 -15
  410. data/lib/graphql/schema/member/accepts_definition.rb +0 -152
  411. data/lib/graphql/schema/member/cached_graphql_definition.rb +0 -26
  412. data/lib/graphql/schema/member/instrumentation.rb +0 -121
  413. data/lib/graphql/schema/middleware_chain.rb +0 -82
  414. data/lib/graphql/schema/possible_types.rb +0 -39
  415. data/lib/graphql/schema/rescue_middleware.rb +0 -55
  416. data/lib/graphql/schema/timeout_middleware.rb +0 -85
  417. data/lib/graphql/schema/traversal.rb +0 -228
  418. data/lib/graphql/schema/validation.rb +0 -286
  419. data/lib/graphql/static_validation/default_visitor.rb +0 -15
  420. data/lib/graphql/static_validation/no_validate_visitor.rb +0 -10
  421. data/lib/graphql/static_validation/type_stack.rb +0 -216
  422. data/lib/graphql/string_type.rb +0 -2
  423. data/lib/graphql/subscriptions/subscription_root.rb +0 -66
  424. data/lib/graphql/tracing/skylight_tracing.rb +0 -61
  425. data/lib/graphql/types/relay/base_field.rb +0 -22
  426. data/lib/graphql/types/relay/base_interface.rb +0 -29
  427. data/lib/graphql/types/relay/base_object.rb +0 -26
  428. data/lib/graphql/types/relay/node_field.rb +0 -43
  429. data/lib/graphql/types/relay/nodes_field.rb +0 -45
  430. data/lib/graphql/union_type.rb +0 -100
  431. data/lib/graphql/upgrader/member.rb +0 -899
  432. data/lib/graphql/upgrader/schema.rb +0 -37
  433. data/spec/dummy/Gemfile +0 -12
  434. data/spec/dummy/Gemfile.lock +0 -157
  435. data/spec/dummy/README.md +0 -24
  436. data/spec/dummy/Rakefile +0 -7
  437. data/spec/dummy/app/assets/config/manifest.js +0 -1
  438. data/spec/dummy/app/assets/javascripts/application.js +0 -66
  439. data/spec/dummy/app/channels/application_cable/channel.rb +0 -5
  440. data/spec/dummy/app/channels/application_cable/connection.rb +0 -5
  441. data/spec/dummy/app/channels/graphql_channel.rb +0 -116
  442. data/spec/dummy/app/controllers/application_controller.rb +0 -4
  443. data/spec/dummy/app/controllers/pages_controller.rb +0 -5
  444. data/spec/dummy/app/helpers/application_helper.rb +0 -3
  445. data/spec/dummy/app/jobs/application_job.rb +0 -3
  446. data/spec/dummy/app/views/layouts/application.html.erb +0 -12
  447. data/spec/dummy/app/views/pages/show.html +0 -16
  448. data/spec/dummy/bin/bundle +0 -4
  449. data/spec/dummy/bin/rails +0 -5
  450. data/spec/dummy/bin/rake +0 -5
  451. data/spec/dummy/bin/setup +0 -31
  452. data/spec/dummy/bin/update +0 -27
  453. data/spec/dummy/bin/yarn +0 -12
  454. data/spec/dummy/config/application.rb +0 -30
  455. data/spec/dummy/config/boot.rb +0 -4
  456. data/spec/dummy/config/cable.yml +0 -10
  457. data/spec/dummy/config/environment.rb +0 -6
  458. data/spec/dummy/config/environments/development.rb +0 -40
  459. data/spec/dummy/config/environments/production.rb +0 -76
  460. data/spec/dummy/config/environments/test.rb +0 -37
  461. data/spec/dummy/config/initializers/application_controller_renderer.rb +0 -9
  462. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -8
  463. data/spec/dummy/config/initializers/cookies_serializer.rb +0 -6
  464. data/spec/dummy/config/initializers/filter_parameter_logging.rb +0 -5
  465. data/spec/dummy/config/initializers/inflections.rb +0 -17
  466. data/spec/dummy/config/initializers/mime_types.rb +0 -5
  467. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -10
  468. data/spec/dummy/config/locales/en.yml +0 -33
  469. data/spec/dummy/config/puma.rb +0 -57
  470. data/spec/dummy/config/routes.rb +0 -4
  471. data/spec/dummy/config/secrets.yml +0 -32
  472. data/spec/dummy/config.ru +0 -6
  473. data/spec/dummy/log/test.log +0 -199
  474. data/spec/dummy/package.json +0 -5
  475. data/spec/dummy/public/404.html +0 -67
  476. data/spec/dummy/public/422.html +0 -67
  477. data/spec/dummy/public/500.html +0 -66
  478. data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
  479. data/spec/dummy/public/apple-touch-icon.png +0 -0
  480. data/spec/dummy/public/favicon.ico +0 -0
  481. data/spec/dummy/public/robots.txt +0 -1
  482. data/spec/dummy/test/application_system_test_case.rb +0 -6
  483. data/spec/dummy/test/system/action_cable_subscription_test.rb +0 -45
  484. data/spec/dummy/test/test_helper.rb +0 -4
  485. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4w/4wzXRZrAkwKdgYaSE0pid5eB-fer8vSfSku_NPg4rMA.cache +0 -0
  486. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7I/7IHVBiJT06QSpgLpLoJIxboQ0B-D_tMTxsvoezBTV3Q.cache +0 -1
  487. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8w/8wY_SKagj8wHuwGNAAf6JnQ8joMbC6cEYpHrTAI8Urc.cache +0 -1
  488. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/AK/AKzz1u6bGb4auXcrObA_g5LL-oV0ejNGa448AgAi_WQ.cache +0 -1
  489. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ET/ETW4uxvaYpruL8y6_ZptUH82ZowMaHIqvg5WexBFdEM.cache +0 -3
  490. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F1/F1TWpjjyA56k9Z90n5B3xRn7DUdGjX73QCkYC6k07JQ.cache +0 -0
  491. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F8/F8MUNRzORGFgr329fNM0xLaoWCXdv3BIalT7dsvLfjs.cache +0 -2
  492. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KB/KB07ZaKNC5uXJ7TjLi-WqnY6g7dq8wWp_8N3HNjBNxg.cache +0 -2
  493. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ms/MsKSimH_UCB-H1tLvDABDHuvGciuoW6kVqQWDrXU5FQ.cache +0 -0
  494. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mt/Mtci-Kim50aPOmeClD4AIicKn1d1WJ0n454IjSd94sk.cache +0 -0
  495. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QH/QHt3Tc1Y6M66Oo_pDuMyWrQNs4Pp3SMeZR5K1wJj2Ts.cache +0 -1
  496. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/XU/XU4k1OXnfMils5SrirorPvDSyDSqiOWLZNtmAH1HH8k.cache +0 -0
  497. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZI/ZIof7mZxWWCnraIFOCuV6a8QRWzKJXJnx2Xd7C0ZyX0.cache +0 -1
  498. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cG/cGc_puuPS5pZKgUcy1Y_i1L6jl5UtsiIrMH59rTzR6c.cache +0 -3
  499. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/df/dfro_B6bx3KP1Go-7jEOqqZ2j4hVRseXIc3es9PKQno.cache +0 -1
  500. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jO/jO1DfbqnG0mTULsjJJANc3fefrG2zt7DIMmcptMT628.cache +0 -1
  501. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pE/pE7gO6pQ-z187Swb4hT554wmqsq-cNzgPWLrCz-LQQQ.cache +0 -0
  502. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r9/r9iU1l58a6rxkZSW5RSC52_tD-_UQuHxoMVnkfJ7Mhs.cache +0 -1
  503. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xi/xitPPFfPIyDMpaznV0sBBcw8eSCV8PJcLLWin78sCgE.cache +0 -0
  504. data/spec/dummy/tmp/screenshots/failures_test_it_handles_subscriptions.png +0 -0
  505. data/spec/fixtures/upgrader/account.original.rb +0 -19
  506. data/spec/fixtures/upgrader/account.transformed.rb +0 -20
  507. data/spec/fixtures/upgrader/blame_range.original.rb +0 -43
  508. data/spec/fixtures/upgrader/blame_range.transformed.rb +0 -30
  509. data/spec/fixtures/upgrader/date_time.original.rb +0 -24
  510. data/spec/fixtures/upgrader/date_time.transformed.rb +0 -23
  511. data/spec/fixtures/upgrader/delete_project.original.rb +0 -28
  512. data/spec/fixtures/upgrader/delete_project.transformed.rb +0 -27
  513. data/spec/fixtures/upgrader/gist_order_field.original.rb +0 -14
  514. data/spec/fixtures/upgrader/gist_order_field.transformed.rb +0 -13
  515. data/spec/fixtures/upgrader/increment_count.original.rb +0 -59
  516. data/spec/fixtures/upgrader/increment_count.transformed.rb +0 -50
  517. data/spec/fixtures/upgrader/photo.original.rb +0 -10
  518. data/spec/fixtures/upgrader/photo.transformed.rb +0 -12
  519. data/spec/fixtures/upgrader/release_order.original.rb +0 -15
  520. data/spec/fixtures/upgrader/release_order.transformed.rb +0 -14
  521. data/spec/fixtures/upgrader/starrable.original.rb +0 -49
  522. data/spec/fixtures/upgrader/starrable.transformed.rb +0 -46
  523. data/spec/fixtures/upgrader/subscribable.original.rb +0 -55
  524. data/spec/fixtures/upgrader/subscribable.transformed.rb +0 -51
  525. data/spec/fixtures/upgrader/type_x.original.rb +0 -65
  526. data/spec/fixtures/upgrader/type_x.transformed.rb +0 -56
  527. data/spec/graphql/analysis/analyze_query_spec.rb +0 -272
  528. data/spec/graphql/analysis/ast/field_usage_spec.rb +0 -51
  529. data/spec/graphql/analysis/ast/max_query_complexity_spec.rb +0 -120
  530. data/spec/graphql/analysis/ast/max_query_depth_spec.rb +0 -114
  531. data/spec/graphql/analysis/ast/query_complexity_spec.rb +0 -299
  532. data/spec/graphql/analysis/ast/query_depth_spec.rb +0 -108
  533. data/spec/graphql/analysis/ast_spec.rb +0 -269
  534. data/spec/graphql/analysis/field_usage_spec.rb +0 -62
  535. data/spec/graphql/analysis/max_query_complexity_spec.rb +0 -102
  536. data/spec/graphql/analysis/max_query_depth_spec.rb +0 -101
  537. data/spec/graphql/analysis/query_complexity_spec.rb +0 -301
  538. data/spec/graphql/analysis/query_depth_spec.rb +0 -81
  539. data/spec/graphql/argument_spec.rb +0 -159
  540. data/spec/graphql/authorization_spec.rb +0 -901
  541. data/spec/graphql/backtrace_spec.rb +0 -206
  542. data/spec/graphql/base_type_spec.rb +0 -171
  543. data/spec/graphql/boolean_type_spec.rb +0 -21
  544. data/spec/graphql/compatibility/execution_specification_spec.rb +0 -4
  545. data/spec/graphql/compatibility/lazy_execution_specification_spec.rb +0 -4
  546. data/spec/graphql/compatibility/query_parser_specification_spec.rb +0 -6
  547. data/spec/graphql/compatibility/schema_parser_specification_spec.rb +0 -6
  548. data/spec/graphql/define/assign_argument_spec.rb +0 -61
  549. data/spec/graphql/define/instance_definable_spec.rb +0 -203
  550. data/spec/graphql/directive/skip_directive_spec.rb +0 -9
  551. data/spec/graphql/directive_spec.rb +0 -295
  552. data/spec/graphql/enum_type_spec.rb +0 -158
  553. data/spec/graphql/execution/execute_spec.rb +0 -303
  554. data/spec/graphql/execution/instrumentation_spec.rb +0 -184
  555. data/spec/graphql/execution/interpreter_spec.rb +0 -485
  556. data/spec/graphql/execution/lazy/lazy_method_map_spec.rb +0 -57
  557. data/spec/graphql/execution/lazy_spec.rb +0 -240
  558. data/spec/graphql/execution/lookahead_spec.rb +0 -363
  559. data/spec/graphql/execution/multiplex_spec.rb +0 -211
  560. data/spec/graphql/execution/typecast_spec.rb +0 -47
  561. data/spec/graphql/execution_error_spec.rb +0 -325
  562. data/spec/graphql/field_spec.rb +0 -246
  563. data/spec/graphql/float_type_spec.rb +0 -16
  564. data/spec/graphql/function_spec.rb +0 -129
  565. data/spec/graphql/id_type_spec.rb +0 -33
  566. data/spec/graphql/input_object_type_spec.rb +0 -25
  567. data/spec/graphql/int_type_spec.rb +0 -35
  568. data/spec/graphql/interface_type_spec.rb +0 -196
  569. data/spec/graphql/internal_representation/print_spec.rb +0 -41
  570. data/spec/graphql/internal_representation/rewrite_spec.rb +0 -376
  571. data/spec/graphql/introspection/directive_type_spec.rb +0 -61
  572. data/spec/graphql/introspection/input_value_type_spec.rb +0 -105
  573. data/spec/graphql/introspection/introspection_query_spec.rb +0 -59
  574. data/spec/graphql/introspection/schema_type_spec.rb +0 -56
  575. data/spec/graphql/introspection/type_type_spec.rb +0 -155
  576. data/spec/graphql/language/block_string_spec.rb +0 -70
  577. data/spec/graphql/language/definition_slice_spec.rb +0 -226
  578. data/spec/graphql/language/document_from_schema_definition_spec.rb +0 -770
  579. data/spec/graphql/language/equality_spec.rb +0 -84
  580. data/spec/graphql/language/generation_spec.rb +0 -38
  581. data/spec/graphql/language/lexer_spec.rb +0 -135
  582. data/spec/graphql/language/nodes_spec.rb +0 -67
  583. data/spec/graphql/language/parser_spec.rb +0 -175
  584. data/spec/graphql/language/printer_spec.rb +0 -215
  585. data/spec/graphql/language/visitor_spec.rb +0 -400
  586. data/spec/graphql/list_type_spec.rb +0 -57
  587. data/spec/graphql/non_null_type_spec.rb +0 -48
  588. data/spec/graphql/object_type_spec.rb +0 -197
  589. data/spec/graphql/query/arguments_spec.rb +0 -346
  590. data/spec/graphql/query/context_spec.rb +0 -292
  591. data/spec/graphql/query/executor_spec.rb +0 -314
  592. data/spec/graphql/query/literal_input_spec.rb +0 -91
  593. data/spec/graphql/query/result_spec.rb +0 -29
  594. data/spec/graphql/query/serial_execution/value_resolution_spec.rb +0 -109
  595. data/spec/graphql/query_spec.rb +0 -800
  596. data/spec/graphql/rake_task_spec.rb +0 -59
  597. data/spec/graphql/scalar_type_spec.rb +0 -66
  598. data/spec/graphql/schema/argument_spec.rb +0 -127
  599. data/spec/graphql/schema/build_from_definition_spec.rb +0 -1187
  600. data/spec/graphql/schema/catchall_middleware_spec.rb +0 -35
  601. data/spec/graphql/schema/directive/feature_spec.rb +0 -81
  602. data/spec/graphql/schema/directive/transform_spec.rb +0 -39
  603. data/spec/graphql/schema/enum_spec.rb +0 -83
  604. data/spec/graphql/schema/enum_value_spec.rb +0 -24
  605. data/spec/graphql/schema/field_extension_spec.rb +0 -115
  606. data/spec/graphql/schema/field_spec.rb +0 -301
  607. data/spec/graphql/schema/finder_spec.rb +0 -135
  608. data/spec/graphql/schema/input_object_spec.rb +0 -238
  609. data/spec/graphql/schema/instrumentation_spec.rb +0 -43
  610. data/spec/graphql/schema/interface_spec.rb +0 -215
  611. data/spec/graphql/schema/introspection_system_spec.rb +0 -47
  612. data/spec/graphql/schema/list_spec.rb +0 -46
  613. data/spec/graphql/schema/loader_spec.rb +0 -286
  614. data/spec/graphql/schema/member/accepts_definition_spec.rb +0 -115
  615. data/spec/graphql/schema/member/build_type_spec.rb +0 -63
  616. data/spec/graphql/schema/member/scoped_spec.rb +0 -177
  617. data/spec/graphql/schema/member/type_system_helpers_spec.rb +0 -63
  618. data/spec/graphql/schema/middleware_chain_spec.rb +0 -57
  619. data/spec/graphql/schema/mutation_spec.rb +0 -150
  620. data/spec/graphql/schema/non_null_spec.rb +0 -46
  621. data/spec/graphql/schema/object_spec.rb +0 -244
  622. data/spec/graphql/schema/printer_spec.rb +0 -869
  623. data/spec/graphql/schema/relay_classic_mutation_spec.rb +0 -234
  624. data/spec/graphql/schema/rescue_middleware_spec.rb +0 -74
  625. data/spec/graphql/schema/resolver_spec.rb +0 -640
  626. data/spec/graphql/schema/scalar_spec.rb +0 -101
  627. data/spec/graphql/schema/subscription_spec.rb +0 -416
  628. data/spec/graphql/schema/timeout_middleware_spec.rb +0 -188
  629. data/spec/graphql/schema/traversal_spec.rb +0 -222
  630. data/spec/graphql/schema/type_expression_spec.rb +0 -39
  631. data/spec/graphql/schema/union_spec.rb +0 -72
  632. data/spec/graphql/schema/unique_within_type_spec.rb +0 -44
  633. data/spec/graphql/schema/validation_spec.rb +0 -355
  634. data/spec/graphql/schema/warden_spec.rb +0 -926
  635. data/spec/graphql/static_validation/rules/argument_literals_are_compatible_spec.rb +0 -413
  636. data/spec/graphql/static_validation/rules/argument_names_are_unique_spec.rb +0 -44
  637. data/spec/graphql/static_validation/rules/arguments_are_defined_spec.rb +0 -112
  638. data/spec/graphql/static_validation/rules/directives_are_defined_spec.rb +0 -35
  639. data/spec/graphql/static_validation/rules/directives_are_in_valid_locations_spec.rb +0 -42
  640. data/spec/graphql/static_validation/rules/fields_are_defined_on_type_spec.rb +0 -167
  641. data/spec/graphql/static_validation/rules/fields_have_appropriate_selections_spec.rb +0 -66
  642. data/spec/graphql/static_validation/rules/fields_will_merge_spec.rb +0 -740
  643. data/spec/graphql/static_validation/rules/fragment_names_are_unique_spec.rb +0 -28
  644. data/spec/graphql/static_validation/rules/fragment_spreads_are_possible_spec.rb +0 -52
  645. data/spec/graphql/static_validation/rules/fragment_types_exist_spec.rb +0 -42
  646. data/spec/graphql/static_validation/rules/fragments_are_finite_spec.rb +0 -123
  647. data/spec/graphql/static_validation/rules/fragments_are_named_spec.rb +0 -24
  648. data/spec/graphql/static_validation/rules/fragments_are_on_composite_types_spec.rb +0 -56
  649. data/spec/graphql/static_validation/rules/fragments_are_used_spec.rb +0 -61
  650. data/spec/graphql/static_validation/rules/mutation_root_exists_spec.rb +0 -39
  651. data/spec/graphql/static_validation/rules/no_definitions_are_present_spec.rb +0 -62
  652. data/spec/graphql/static_validation/rules/operation_names_are_valid_spec.rb +0 -82
  653. data/spec/graphql/static_validation/rules/required_arguments_are_present_spec.rb +0 -73
  654. data/spec/graphql/static_validation/rules/required_input_object_attributes_are_present_spec.rb +0 -58
  655. data/spec/graphql/static_validation/rules/subscription_root_exists_spec.rb +0 -34
  656. data/spec/graphql/static_validation/rules/unique_directives_per_location_spec.rb +0 -188
  657. data/spec/graphql/static_validation/rules/variable_default_values_are_correctly_typed_spec.rb +0 -196
  658. data/spec/graphql/static_validation/rules/variable_names_are_unique_spec.rb +0 -23
  659. data/spec/graphql/static_validation/rules/variable_usages_are_allowed_spec.rb +0 -236
  660. data/spec/graphql/static_validation/rules/variables_are_input_types_spec.rb +0 -78
  661. data/spec/graphql/static_validation/rules/variables_are_used_and_defined_spec.rb +0 -81
  662. data/spec/graphql/static_validation/type_stack_spec.rb +0 -29
  663. data/spec/graphql/static_validation/validator_spec.rb +0 -204
  664. data/spec/graphql/string_type_spec.rb +0 -80
  665. data/spec/graphql/subscriptions/serialize_spec.rb +0 -49
  666. data/spec/graphql/subscriptions_spec.rb +0 -502
  667. data/spec/graphql/tracing/new_relic_tracing_spec.rb +0 -63
  668. data/spec/graphql/tracing/platform_tracing_spec.rb +0 -137
  669. data/spec/graphql/tracing/prometheus_tracing_spec.rb +0 -42
  670. data/spec/graphql/tracing/scout_tracing_spec.rb +0 -17
  671. data/spec/graphql/tracing/skylight_tracing_spec.rb +0 -63
  672. data/spec/graphql/tracing_spec.rb +0 -52
  673. data/spec/graphql/types/iso_8601_date_time_spec.rb +0 -137
  674. data/spec/graphql/union_type_spec.rb +0 -211
  675. data/spec/graphql/upgrader/member_spec.rb +0 -583
  676. data/spec/graphql/upgrader/schema_spec.rb +0 -82
  677. data/spec/integration/mongoid/graphql/relay/mongo_relation_connection_spec.rb +0 -528
  678. data/spec/integration/mongoid/spec_helper.rb +0 -2
  679. data/spec/integration/mongoid/star_trek/data.rb +0 -126
  680. data/spec/integration/mongoid/star_trek/schema.rb +0 -425
  681. data/spec/integration/rails/data.rb +0 -110
  682. data/spec/integration/rails/generators/base_generator_test.rb +0 -7
  683. data/spec/integration/rails/generators/graphql/enum_generator_spec.rb +0 -30
  684. data/spec/integration/rails/generators/graphql/install_generator_spec.rb +0 -218
  685. data/spec/integration/rails/generators/graphql/interface_generator_spec.rb +0 -34
  686. data/spec/integration/rails/generators/graphql/loader_generator_spec.rb +0 -59
  687. data/spec/integration/rails/generators/graphql/mutation_generator_spec.rb +0 -71
  688. data/spec/integration/rails/generators/graphql/object_generator_spec.rb +0 -54
  689. data/spec/integration/rails/generators/graphql/scalar_generator_spec.rb +0 -28
  690. data/spec/integration/rails/generators/graphql/union_generator_spec.rb +0 -67
  691. data/spec/integration/rails/graphql/input_object_type_spec.rb +0 -364
  692. data/spec/integration/rails/graphql/query/variables_spec.rb +0 -375
  693. data/spec/integration/rails/graphql/relay/array_connection_spec.rb +0 -290
  694. data/spec/integration/rails/graphql/relay/base_connection_spec.rb +0 -101
  695. data/spec/integration/rails/graphql/relay/connection_instrumentation_spec.rb +0 -80
  696. data/spec/integration/rails/graphql/relay/connection_resolve_spec.rb +0 -79
  697. data/spec/integration/rails/graphql/relay/connection_type_spec.rb +0 -106
  698. data/spec/integration/rails/graphql/relay/edge_spec.rb +0 -10
  699. data/spec/integration/rails/graphql/relay/mutation_spec.rb +0 -387
  700. data/spec/integration/rails/graphql/relay/node_spec.rb +0 -263
  701. data/spec/integration/rails/graphql/relay/page_info_spec.rb +0 -111
  702. data/spec/integration/rails/graphql/relay/range_add_spec.rb +0 -117
  703. data/spec/integration/rails/graphql/relay/relation_connection_spec.rb +0 -837
  704. data/spec/integration/rails/graphql/schema_spec.rb +0 -476
  705. data/spec/integration/rails/graphql/tracing/active_support_notifications_tracing_spec.rb +0 -62
  706. data/spec/integration/rails/spec_helper.rb +0 -25
  707. data/spec/integration/tmp/app/graphql/types/family_type.rb +0 -9
  708. data/spec/spec_helper.rb +0 -116
  709. data/spec/support/dummy/data.rb +0 -45
  710. data/spec/support/dummy/schema.rb +0 -492
  711. data/spec/support/error_bubbling_helpers.rb +0 -23
  712. data/spec/support/global_id.rb +0 -23
  713. data/spec/support/jazz.rb +0 -759
  714. data/spec/support/lazy_helpers.rb +0 -192
  715. data/spec/support/magic_cards/schema.graphql +0 -33
  716. data/spec/support/minimum_input_object.rb +0 -21
  717. data/spec/support/new_relic.rb +0 -27
  718. data/spec/support/parser/filename_example.graphql +0 -5
  719. data/spec/support/parser/filename_example_error_1.graphql +0 -4
  720. data/spec/support/parser/filename_example_error_2.graphql +0 -5
  721. data/spec/support/skylight.rb +0 -39
  722. data/spec/support/star_wars/schema.rb +0 -465
  723. data/spec/support/static_validation_helpers.rb +0 -32
@@ -1,680 +0,0 @@
1
- # frozen_string_literal: true
2
- module GraphQL
3
- module Compatibility
4
- # This asserts that a given parse function turns a string into
5
- # the proper tree of {{GraphQL::Language::Nodes}}.
6
- module SchemaParserSpecification
7
- # @yieldparam query_string [String] A query string to parse
8
- # @yieldreturn [GraphQL::Language::Nodes::Document]
9
- # @return [Class<Minitest::Test>] A test suite for this parse function
10
- def self.build_suite(&block)
11
- Class.new(Minitest::Test) do
12
- @@parse_fn = block
13
-
14
- def parse(query_string)
15
- @@parse_fn.call(query_string)
16
- end
17
-
18
- def test_it_parses_object_types
19
- document = parse('
20
- # This is what
21
- # somebody said about something
22
- type Comment implements Node @deprecated(reason: "No longer supported") {
23
- id: ID!
24
- }
25
- ')
26
-
27
- type = document.definitions.first
28
- assert_equal GraphQL::Language::Nodes::ObjectTypeDefinition, type.class
29
- assert_equal 'Comment', type.name
30
- assert_equal "This is what\nsomebody said about something", type.description
31
- assert_equal ['Node'], type.interfaces.map(&:name)
32
- assert_equal ['id'], type.fields.map(&:name)
33
- assert_equal [], type.fields[0].arguments
34
- assert_equal 'ID', type.fields[0].type.of_type.name
35
- assert_equal 1, type.directives.length
36
-
37
- deprecated_directive = type.directives[0]
38
- assert_equal 'deprecated', deprecated_directive.name
39
- assert_equal 'reason', deprecated_directive.arguments[0].name
40
- assert_equal 'No longer supported', deprecated_directive.arguments[0].value
41
- end
42
-
43
- def test_it_parses_scalars
44
- document = parse('scalar DateTime')
45
-
46
- type = document.definitions.first
47
- assert_equal GraphQL::Language::Nodes::ScalarTypeDefinition, type.class
48
- assert_equal 'DateTime', type.name
49
- end
50
-
51
- def test_it_parses_enum_types
52
- document = parse('
53
- enum DogCommand {
54
- # Good dog
55
- SIT
56
- DOWN @deprecated(reason: "No longer supported")
57
- HEEL
58
- }
59
- ')
60
-
61
- type = document.definitions.first
62
- assert_equal GraphQL::Language::Nodes::EnumTypeDefinition, type.class
63
- assert_equal 'DogCommand', type.name
64
- assert_equal 3, type.values.length
65
-
66
- assert_equal 'SIT', type.values[0].name
67
- assert_equal [], type.values[0].directives
68
- assert_equal "Good dog", type.values[0].description
69
-
70
- assert_equal 'DOWN', type.values[1].name
71
- assert_equal 1, type.values[1].directives.length
72
- deprecated_directive = type.values[1].directives[0]
73
- assert_equal 'deprecated', deprecated_directive.name
74
- assert_equal 'reason', deprecated_directive.arguments[0].name
75
- assert_equal 'No longer supported', deprecated_directive.arguments[0].value
76
-
77
- assert_equal 'HEEL', type.values[2].name
78
- assert_equal [], type.values[2].directives
79
- end
80
-
81
- def test_it_parses_union_types
82
- document = parse(
83
- "union BagOfThings = \n" \
84
- "A |\n" \
85
- "B |\n" \
86
- "C"
87
- )
88
-
89
- union = document.definitions.first
90
-
91
- assert_equal GraphQL::Language::Nodes::UnionTypeDefinition, union.class
92
- assert_equal 'BagOfThings', union.name
93
- assert_equal 3, union.types.length
94
- assert_equal [1, 1], union.position
95
-
96
- assert_equal GraphQL::Language::Nodes::TypeName, union.types[0].class
97
- assert_equal 'A', union.types[0].name
98
- assert_equal [2, 1], union.types[0].position
99
-
100
- assert_equal GraphQL::Language::Nodes::TypeName, union.types[1].class
101
- assert_equal 'B', union.types[1].name
102
- assert_equal [3, 1], union.types[1].position
103
-
104
- assert_equal GraphQL::Language::Nodes::TypeName, union.types[2].class
105
- assert_equal 'C', union.types[2].name
106
- assert_equal [4, 1], union.types[2].position
107
- end
108
-
109
- def test_it_parses_input_types
110
- document = parse('
111
- input EmptyMutationInput {
112
- clientMutationId: String
113
- }
114
- ')
115
-
116
- type = document.definitions.first
117
- assert_equal GraphQL::Language::Nodes::InputObjectTypeDefinition, type.class
118
- assert_equal 'EmptyMutationInput', type.name
119
- assert_equal ['clientMutationId'], type.fields.map(&:name)
120
- assert_equal 'String', type.fields[0].type.name
121
- assert_equal nil, type.fields[0].default_value
122
- end
123
-
124
- def test_it_parses_directives
125
- document = parse('
126
- directive @include(if: Boolean!)
127
- on FIELD
128
- | FRAGMENT_SPREAD
129
- | INLINE_FRAGMENT
130
- ')
131
-
132
- type = document.definitions.first
133
- assert_equal GraphQL::Language::Nodes::DirectiveDefinition, type.class
134
- assert_equal 'include', type.name
135
-
136
- assert_equal 1, type.arguments.length
137
- assert_equal 'if', type.arguments[0].name
138
- assert_equal 'Boolean', type.arguments[0].type.of_type.name
139
-
140
- assert_equal 3, type.locations.length
141
-
142
- assert_instance_of GraphQL::Language::Nodes::DirectiveLocation, type.locations[0]
143
- assert_equal 'FIELD', type.locations[0].name
144
- assert_equal [3, 20], type.locations[0].position
145
-
146
- assert_instance_of GraphQL::Language::Nodes::DirectiveLocation, type.locations[1]
147
- assert_equal 'FRAGMENT_SPREAD', type.locations[1].name
148
- assert_equal [4, 19], type.locations[1].position
149
-
150
- assert_instance_of GraphQL::Language::Nodes::DirectiveLocation, type.locations[2]
151
- assert_equal 'INLINE_FRAGMENT', type.locations[2].name
152
- assert_equal [5, 19], type.locations[2].position
153
- end
154
-
155
- def test_it_parses_field_arguments
156
- document = parse('
157
- type Mutation {
158
- post(
159
- id: ID! @deprecated(reason: "Not used"),
160
- # This is what goes in the post
161
- data: String
162
- ): Post
163
- }
164
- ')
165
-
166
- field = document.definitions.first.fields.first
167
- assert_equal ['id', 'data'], field.arguments.map(&:name)
168
- id_arg = field.arguments[0]
169
-
170
- deprecated_directive = id_arg.directives[0]
171
- assert_equal 'deprecated', deprecated_directive.name
172
- assert_equal 'reason', deprecated_directive.arguments[0].name
173
- assert_equal 'Not used', deprecated_directive.arguments[0].value
174
-
175
- data_arg = field.arguments[1]
176
- assert_equal "data", data_arg.name
177
- assert_equal "This is what goes in the post", data_arg.description
178
- end
179
-
180
- def test_it_parses_schema_definition
181
- document = parse('
182
- schema {
183
- query: QueryRoot
184
- mutation: MutationRoot
185
- subscription: SubscriptionRoot
186
- }
187
- ')
188
-
189
- schema = document.definitions.first
190
- assert_equal 'QueryRoot', schema.query
191
- assert_equal 'MutationRoot', schema.mutation
192
- assert_equal 'SubscriptionRoot', schema.subscription
193
- end
194
-
195
- def test_it_parses_schema_extensions
196
- document = parse('
197
- extend schema {
198
- query: QueryRoot
199
- mutation: MutationRoot
200
- subscription: SubscriptionRoot
201
- }
202
- ')
203
-
204
- schema_extension = document.definitions.first
205
- assert_equal GraphQL::Language::Nodes::SchemaExtension, schema_extension.class
206
- assert_equal [2, 15], schema_extension.position
207
-
208
- assert_equal 'QueryRoot', schema_extension.query
209
- assert_equal 'MutationRoot', schema_extension.mutation
210
- assert_equal 'SubscriptionRoot', schema_extension.subscription
211
- end
212
-
213
- def test_it_parses_schema_extensions_with_directives
214
- document = parse('
215
- extend schema @something {
216
- query: QueryRoot
217
- }
218
- ')
219
-
220
- schema_extension = document.definitions.first
221
- assert_equal GraphQL::Language::Nodes::SchemaExtension, schema_extension.class
222
-
223
- assert_equal 1, schema_extension.directives.length
224
- assert_equal GraphQL::Language::Nodes::Directive, schema_extension.directives.first.class
225
- assert_equal 'something', schema_extension.directives.first.name
226
-
227
- assert_equal 'QueryRoot', schema_extension.query
228
- assert_equal nil, schema_extension.mutation
229
- assert_equal nil, schema_extension.subscription
230
- end
231
-
232
- def test_it_parses_schema_extensions_with_only_directives
233
- document = parse('
234
- extend schema @something
235
- ')
236
-
237
- schema_extension = document.definitions.first
238
- assert_equal GraphQL::Language::Nodes::SchemaExtension, schema_extension.class
239
-
240
- assert_equal 1, schema_extension.directives.length
241
- assert_equal GraphQL::Language::Nodes::Directive, schema_extension.directives.first.class
242
- assert_equal 'something', schema_extension.directives.first.name
243
-
244
- assert_equal nil, schema_extension.query
245
- assert_equal nil, schema_extension.mutation
246
- assert_equal nil, schema_extension.subscription
247
- end
248
-
249
- def test_it_parses_scalar_extensions
250
- document = parse('
251
- extend scalar Date @something @somethingElse
252
- ')
253
-
254
- scalar_extension = document.definitions.first
255
- assert_equal GraphQL::Language::Nodes::ScalarTypeExtension, scalar_extension.class
256
- assert_equal 'Date', scalar_extension.name
257
- assert_equal [2, 15], scalar_extension.position
258
-
259
- assert_equal 2, scalar_extension.directives.length
260
- assert_equal GraphQL::Language::Nodes::Directive, scalar_extension.directives.first.class
261
- assert_equal 'something', scalar_extension.directives.first.name
262
- assert_equal GraphQL::Language::Nodes::Directive, scalar_extension.directives.last.class
263
- assert_equal 'somethingElse', scalar_extension.directives.last.name
264
- end
265
-
266
- def test_it_parses_object_type_extensions_with_field_definitions
267
- document = parse('
268
- extend type User {
269
- login: String!
270
- }
271
- ')
272
-
273
- object_type_extension = document.definitions.first
274
- assert_equal GraphQL::Language::Nodes::ObjectTypeExtension, object_type_extension.class
275
- assert_equal 'User', object_type_extension.name
276
- assert_equal [2, 15], object_type_extension.position
277
-
278
- assert_equal 1, object_type_extension.fields.length
279
- assert_equal GraphQL::Language::Nodes::FieldDefinition, object_type_extension.fields.first.class
280
- end
281
-
282
- def test_it_parses_object_type_extensions_with_field_definitions_and_directives
283
- document = parse('
284
- extend type User @deprecated {
285
- login: String!
286
- }
287
- ')
288
-
289
- object_type_extension = document.definitions.first
290
- assert_equal GraphQL::Language::Nodes::ObjectTypeExtension, object_type_extension.class
291
- assert_equal 'User', object_type_extension.name
292
- assert_equal [2, 15], object_type_extension.position
293
-
294
- assert_equal 1, object_type_extension.fields.length
295
- assert_equal GraphQL::Language::Nodes::FieldDefinition, object_type_extension.fields.first.class
296
-
297
- assert_equal 1, object_type_extension.directives.length
298
- assert_equal GraphQL::Language::Nodes::Directive, object_type_extension.directives.first.class
299
- end
300
-
301
- def test_it_parses_object_type_extensions_with_field_definitions_and_implements
302
- document = parse('
303
- extend type User implements Node {
304
- login: String!
305
- }
306
- ')
307
-
308
- object_type_extension = document.definitions.first
309
- assert_equal GraphQL::Language::Nodes::ObjectTypeExtension, object_type_extension.class
310
- assert_equal 'User', object_type_extension.name
311
- assert_equal [2, 15], object_type_extension.position
312
-
313
- assert_equal 1, object_type_extension.fields.length
314
- assert_equal GraphQL::Language::Nodes::FieldDefinition, object_type_extension.fields.first.class
315
-
316
- assert_equal 1, object_type_extension.interfaces.length
317
- assert_equal GraphQL::Language::Nodes::TypeName, object_type_extension.interfaces.first.class
318
- end
319
-
320
- def test_it_parses_object_type_extensions_with_only_directives
321
- document = parse('
322
- extend type User @deprecated
323
- ')
324
-
325
- object_type_extension = document.definitions.first
326
- assert_equal GraphQL::Language::Nodes::ObjectTypeExtension, object_type_extension.class
327
- assert_equal 'User', object_type_extension.name
328
- assert_equal [2, 15], object_type_extension.position
329
-
330
- assert_equal 1, object_type_extension.directives.length
331
- assert_equal GraphQL::Language::Nodes::Directive, object_type_extension.directives.first.class
332
- assert_equal 'deprecated', object_type_extension.directives.first.name
333
- end
334
-
335
- def test_it_parses_object_type_extensions_with_implements_and_directives
336
- document = parse('
337
- extend type User implements Node @deprecated
338
- ')
339
-
340
- object_type_extension = document.definitions.first
341
- assert_equal GraphQL::Language::Nodes::ObjectTypeExtension, object_type_extension.class
342
- assert_equal 'User', object_type_extension.name
343
- assert_equal [2, 15], object_type_extension.position
344
-
345
- assert_equal 1, object_type_extension.directives.length
346
- assert_equal GraphQL::Language::Nodes::Directive, object_type_extension.directives.first.class
347
- assert_equal 'deprecated', object_type_extension.directives.first.name
348
-
349
- assert_equal 1, object_type_extension.interfaces.length
350
- assert_equal GraphQL::Language::Nodes::TypeName, object_type_extension.interfaces.first.class
351
- assert_equal 'Node', object_type_extension.interfaces.first.name
352
- end
353
-
354
- def test_it_parses_object_type_extensions_with_only_implements
355
- document = parse('
356
- extend type User implements Node
357
- ')
358
-
359
- object_type_extension = document.definitions.first
360
- assert_equal GraphQL::Language::Nodes::ObjectTypeExtension, object_type_extension.class
361
- assert_equal 'User', object_type_extension.name
362
- assert_equal [2, 15], object_type_extension.position
363
-
364
- assert_equal 1, object_type_extension.interfaces.length
365
- assert_equal GraphQL::Language::Nodes::TypeName, object_type_extension.interfaces.first.class
366
- assert_equal 'Node', object_type_extension.interfaces.first.name
367
- end
368
-
369
- def test_it_parses_interface_type_extensions_with_directives_and_fields
370
- document = parse('
371
- extend interface Node @directive {
372
- field: String
373
- }
374
- ')
375
-
376
- interface_type_extension = document.definitions.first
377
- assert_equal GraphQL::Language::Nodes::InterfaceTypeExtension, interface_type_extension.class
378
- assert_equal 'Node', interface_type_extension.name
379
- assert_equal [2, 15], interface_type_extension.position
380
-
381
- assert_equal 1, interface_type_extension.directives.length
382
- assert_equal GraphQL::Language::Nodes::Directive, interface_type_extension.directives.first.class
383
- assert_equal 'directive', interface_type_extension.directives.first.name
384
-
385
- assert_equal 1, interface_type_extension.fields.length
386
- assert_equal GraphQL::Language::Nodes::FieldDefinition, interface_type_extension.fields.first.class
387
- assert_equal 'field', interface_type_extension.fields.first.name
388
- end
389
-
390
- def test_it_parses_interface_type_extensions_with_fields
391
- document = parse('
392
- extend interface Node {
393
- field: String
394
- }
395
- ')
396
-
397
- interface_type_extension = document.definitions.first
398
- assert_equal GraphQL::Language::Nodes::InterfaceTypeExtension, interface_type_extension.class
399
- assert_equal 'Node', interface_type_extension.name
400
- assert_equal [2, 15], interface_type_extension.position
401
-
402
- assert_equal 0, interface_type_extension.directives.length
403
-
404
- assert_equal 1, interface_type_extension.fields.length
405
- assert_equal GraphQL::Language::Nodes::FieldDefinition, interface_type_extension.fields.first.class
406
- assert_equal 'field', interface_type_extension.fields.first.name
407
- end
408
-
409
- def test_it_parses_interface_type_extensions_with_directives
410
- document = parse('
411
- extend interface Node @directive
412
- ')
413
-
414
- interface_type_extension = document.definitions.first
415
- assert_equal GraphQL::Language::Nodes::InterfaceTypeExtension, interface_type_extension.class
416
- assert_equal 'Node', interface_type_extension.name
417
- assert_equal [2, 15], interface_type_extension.position
418
-
419
- assert_equal 1, interface_type_extension.directives.length
420
- assert_equal GraphQL::Language::Nodes::Directive, interface_type_extension.directives.first.class
421
- assert_equal 'directive', interface_type_extension.directives.first.name
422
- end
423
-
424
- def test_it_parses_union_type_extension_with_union_members
425
- document = parse('
426
- extend union BagOfThings = A | B
427
- ')
428
-
429
- union_type_extension = document.definitions.first
430
- assert_equal GraphQL::Language::Nodes::UnionTypeExtension, union_type_extension.class
431
- assert_equal 'BagOfThings', union_type_extension.name
432
- assert_equal [2, 15], union_type_extension.position
433
-
434
- assert_equal 0, union_type_extension.directives.length
435
-
436
- assert_equal 2, union_type_extension.types.length
437
- assert_equal GraphQL::Language::Nodes::TypeName, union_type_extension.types.first.class
438
- assert_equal 'A', union_type_extension.types.first.name
439
- end
440
-
441
- def test_it_parses_union_type_extension_with_directives_and_union_members
442
- document = parse('
443
- extend union BagOfThings @directive = A | B
444
- ')
445
-
446
- union_type_extension = document.definitions.first
447
- assert_equal GraphQL::Language::Nodes::UnionTypeExtension, union_type_extension.class
448
- assert_equal 'BagOfThings', union_type_extension.name
449
- assert_equal [2, 15], union_type_extension.position
450
-
451
- assert_equal 1, union_type_extension.directives.length
452
- assert_equal GraphQL::Language::Nodes::Directive, union_type_extension.directives.first.class
453
- assert_equal 'directive', union_type_extension.directives.first.name
454
-
455
- assert_equal 2, union_type_extension.types.length
456
- assert_equal GraphQL::Language::Nodes::TypeName, union_type_extension.types.first.class
457
- assert_equal 'A', union_type_extension.types.first.name
458
- end
459
-
460
- def test_it_parses_union_type_extension_with_directives
461
- document = parse('
462
- extend union BagOfThings @directive
463
- ')
464
-
465
- union_type_extension = document.definitions.first
466
- assert_equal GraphQL::Language::Nodes::UnionTypeExtension, union_type_extension.class
467
- assert_equal 'BagOfThings', union_type_extension.name
468
- assert_equal [2, 15], union_type_extension.position
469
-
470
- assert_equal 1, union_type_extension.directives.length
471
- assert_equal GraphQL::Language::Nodes::Directive, union_type_extension.directives.first.class
472
- assert_equal 'directive', union_type_extension.directives.first.name
473
-
474
- assert_equal 0, union_type_extension.types.length
475
- end
476
-
477
- def test_it_parses_enum_type_extension_with_values
478
- document = parse('
479
- extend enum Status {
480
- DRAFT
481
- PUBLISHED
482
- }
483
- ')
484
-
485
- enum_type_extension = document.definitions.first
486
- assert_equal GraphQL::Language::Nodes::EnumTypeExtension, enum_type_extension.class
487
- assert_equal 'Status', enum_type_extension.name
488
- assert_equal [2, 15], enum_type_extension.position
489
-
490
- assert_equal 0, enum_type_extension.directives.length
491
-
492
- assert_equal 2, enum_type_extension.values.length
493
- assert_equal GraphQL::Language::Nodes::EnumValueDefinition, enum_type_extension.values.first.class
494
- assert_equal 'DRAFT', enum_type_extension.values.first.name
495
- end
496
-
497
- def test_it_parses_enum_type_extension_with_directives_and_values
498
- document = parse('
499
- extend enum Status @directive {
500
- DRAFT
501
- PUBLISHED
502
- }
503
- ')
504
-
505
- enum_type_extension = document.definitions.first
506
- assert_equal GraphQL::Language::Nodes::EnumTypeExtension, enum_type_extension.class
507
- assert_equal 'Status', enum_type_extension.name
508
- assert_equal [2, 15], enum_type_extension.position
509
-
510
- assert_equal 1, enum_type_extension.directives.length
511
- assert_equal GraphQL::Language::Nodes::Directive, enum_type_extension.directives.first.class
512
- assert_equal 'directive', enum_type_extension.directives.first.name
513
-
514
- assert_equal 2, enum_type_extension.values.length
515
- assert_equal GraphQL::Language::Nodes::EnumValueDefinition, enum_type_extension.values.first.class
516
- assert_equal 'DRAFT', enum_type_extension.values.first.name
517
- end
518
-
519
- def test_it_parses_enum_type_extension_with_directives
520
- document = parse('
521
- extend enum Status @directive
522
- ')
523
-
524
- enum_type_extension = document.definitions.first
525
- assert_equal GraphQL::Language::Nodes::EnumTypeExtension, enum_type_extension.class
526
- assert_equal 'Status', enum_type_extension.name
527
- assert_equal [2, 15], enum_type_extension.position
528
-
529
- assert_equal 1, enum_type_extension.directives.length
530
- assert_equal GraphQL::Language::Nodes::Directive, enum_type_extension.directives.first.class
531
- assert_equal 'directive', enum_type_extension.directives.first.name
532
-
533
- assert_equal 0, enum_type_extension.values.length
534
- end
535
-
536
- def test_it_parses_input_object_type_extension_with_fields
537
- document = parse('
538
- extend input UserInput {
539
- login: String!
540
- }
541
- ')
542
-
543
- input_object_type_extension = document.definitions.first
544
- assert_equal GraphQL::Language::Nodes::InputObjectTypeExtension, input_object_type_extension.class
545
- assert_equal 'UserInput', input_object_type_extension.name
546
- assert_equal [2, 15], input_object_type_extension.position
547
-
548
- assert_equal 1, input_object_type_extension.fields.length
549
- assert_equal GraphQL::Language::Nodes::InputValueDefinition, input_object_type_extension.fields.first.class
550
- assert_equal 'login', input_object_type_extension.fields.first.name
551
-
552
- assert_equal 0, input_object_type_extension.directives.length
553
- end
554
-
555
- def test_it_parses_input_object_type_extension_with_directives_and_fields
556
- document = parse('
557
- extend input UserInput @deprecated {
558
- login: String!
559
- }
560
- ')
561
-
562
- input_object_type_extension = document.definitions.first
563
- assert_equal GraphQL::Language::Nodes::InputObjectTypeExtension, input_object_type_extension.class
564
- assert_equal 'UserInput', input_object_type_extension.name
565
- assert_equal [2, 15], input_object_type_extension.position
566
-
567
- assert_equal 1, input_object_type_extension.fields.length
568
- assert_equal GraphQL::Language::Nodes::InputValueDefinition, input_object_type_extension.fields.first.class
569
- assert_equal 'login', input_object_type_extension.fields.first.name
570
-
571
- assert_equal 1, input_object_type_extension.directives.length
572
- assert_equal GraphQL::Language::Nodes::Directive, input_object_type_extension.directives.first.class
573
- assert_equal 'deprecated', input_object_type_extension.directives.first.name
574
- end
575
-
576
- def test_it_parses_input_object_type_extension_with_directives
577
- document = parse('
578
- extend input UserInput @deprecated
579
- ')
580
-
581
- input_object_type_extension = document.definitions.first
582
- assert_equal GraphQL::Language::Nodes::InputObjectTypeExtension, input_object_type_extension.class
583
- assert_equal 'UserInput', input_object_type_extension.name
584
- assert_equal [2, 15], input_object_type_extension.position
585
-
586
- assert_equal 0, input_object_type_extension.fields.length
587
-
588
- assert_equal 1, input_object_type_extension.directives.length
589
- assert_equal GraphQL::Language::Nodes::Directive, input_object_type_extension.directives.first.class
590
- assert_equal 'deprecated', input_object_type_extension.directives.first.name
591
- end
592
-
593
- def test_it_parses_whole_definition_with_descriptions
594
- document = parse(SCHEMA_DEFINITION_STRING)
595
-
596
- assert_equal 6, document.definitions.size
597
-
598
- schema_definition, directive_definition, enum_type_definition, object_type_definition, input_object_type_definition, interface_type_definition = document.definitions
599
-
600
- assert_equal GraphQL::Language::Nodes::SchemaDefinition, schema_definition.class
601
-
602
- assert_equal GraphQL::Language::Nodes::DirectiveDefinition, directive_definition.class
603
- assert_equal 'This is a directive', directive_definition.description
604
-
605
- assert_equal GraphQL::Language::Nodes::EnumTypeDefinition, enum_type_definition.class
606
- assert_equal "Multiline comment\n\nWith an enum", enum_type_definition.description
607
-
608
- assert_nil enum_type_definition.values[0].description
609
- assert_equal 'Not a creative color', enum_type_definition.values[1].description
610
-
611
- assert_equal GraphQL::Language::Nodes::ObjectTypeDefinition, object_type_definition.class
612
- assert_equal 'Comment without preceding space', object_type_definition.description
613
- assert_equal 'And a field to boot', object_type_definition.fields[0].description
614
-
615
- assert_equal GraphQL::Language::Nodes::InputObjectTypeDefinition, input_object_type_definition.class
616
- assert_equal 'Comment for input object types', input_object_type_definition.description
617
- assert_equal 'Color of the car', input_object_type_definition.fields[0].description
618
-
619
- assert_equal GraphQL::Language::Nodes::InterfaceTypeDefinition, interface_type_definition.class
620
- assert_equal 'Comment for interface definitions', interface_type_definition.description
621
- assert_equal 'Amount of wheels', interface_type_definition.fields[0].description
622
-
623
- brand_field = interface_type_definition.fields[1]
624
- assert_equal 1, brand_field.arguments.length
625
- assert_equal 'argument', brand_field.arguments[0].name
626
- assert_instance_of GraphQL::Language::Nodes::NullValue, brand_field.arguments[0].default_value
627
- end
628
- end
629
- end
630
-
631
- SCHEMA_DEFINITION_STRING = %|
632
- # Schema at beginning of file
633
-
634
- schema {
635
- query: Hello
636
- }
637
-
638
- # Comment between two definitions are omitted
639
-
640
- # This is a directive
641
- directive @foo(
642
- # It has an argument
643
- arg: Int
644
- ) on FIELD
645
-
646
- # Multiline comment
647
- #
648
- # With an enum
649
- enum Color {
650
- RED
651
-
652
- # Not a creative color
653
- GREEN
654
- BLUE
655
- }
656
-
657
- #Comment without preceding space
658
- type Hello {
659
- # And a field to boot
660
- str: String
661
- }
662
-
663
- # Comment for input object types
664
- input Car {
665
- # Color of the car
666
- color: String!
667
- }
668
-
669
- # Comment for interface definitions
670
- interface Vehicle {
671
- # Amount of wheels
672
- wheels: Int!
673
- brand(argument: String = null): String!
674
- }
675
-
676
- # Comment at the end of schema
677
- |
678
- end
679
- end
680
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
- require "graphql/compatibility/execution_specification"
3
- require "graphql/compatibility/lazy_execution_specification"
4
- require "graphql/compatibility/query_parser_specification"
5
- require "graphql/compatibility/schema_parser_specification"