graphql 1.7.3 → 1.7.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (348) hide show
  1. checksums.yaml +4 -4
  2. data/lib/graphql.rb +6 -5
  3. data/lib/graphql/analysis/analyze_query.rb +2 -2
  4. data/lib/graphql/backtrace.rb +5 -0
  5. data/lib/graphql/coercion_error.rb +5 -0
  6. data/lib/graphql/define/type_definer.rb +2 -2
  7. data/lib/graphql/execution/execute.rb +7 -6
  8. data/lib/graphql/execution/lazy/resolve.rb +1 -1
  9. data/lib/graphql/execution/multiplex.rb +13 -4
  10. data/lib/graphql/execution_error.rb +8 -1
  11. data/lib/graphql/language/parser.rb +6 -5
  12. data/lib/graphql/language/parser.y +6 -5
  13. data/lib/graphql/query.rb +10 -1
  14. data/lib/graphql/query/context.rb +2 -0
  15. data/lib/graphql/relay/relation_connection.rb +1 -1
  16. data/lib/graphql/scalar_type.rb +24 -0
  17. data/lib/graphql/schema.rb +18 -3
  18. data/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb +13 -2
  19. data/lib/graphql/static_validation/validator.rb +1 -1
  20. data/lib/graphql/subscriptions.rb +9 -1
  21. data/lib/graphql/subscriptions/action_cable_subscriptions.rb +6 -3
  22. data/lib/graphql/subscriptions/event.rb +1 -1
  23. data/lib/graphql/subscriptions/instrumentation.rb +1 -1
  24. data/lib/graphql/subscriptions/serialize.rb +52 -0
  25. data/lib/graphql/tracing.rb +50 -21
  26. data/lib/graphql/tracing/appsignal_tracing.rb +28 -0
  27. data/lib/graphql/tracing/new_relic_tracing.rb +28 -0
  28. data/lib/graphql/tracing/platform_tracing.rb +59 -0
  29. data/lib/graphql/tracing/scout_tracing.rb +33 -0
  30. data/lib/graphql/tracing/skylight_tracing.rb +39 -0
  31. data/lib/graphql/version.rb +1 -1
  32. data/spec/dummy/Gemfile +10 -0
  33. data/spec/dummy/Gemfile.lock +149 -0
  34. data/spec/dummy/README.md +24 -0
  35. data/spec/dummy/Rakefile +7 -0
  36. data/spec/dummy/app/assets/config/manifest.js +1 -0
  37. data/spec/dummy/app/assets/javascripts/application.js +66 -0
  38. data/spec/dummy/app/channels/application_cable/channel.rb +5 -0
  39. data/spec/dummy/app/channels/application_cable/connection.rb +5 -0
  40. data/spec/dummy/app/channels/graphql_channel.rb +84 -0
  41. data/spec/dummy/app/controllers/application_controller.rb +4 -0
  42. data/spec/dummy/app/controllers/pages_controller.rb +5 -0
  43. data/spec/dummy/app/helpers/application_helper.rb +3 -0
  44. data/spec/dummy/app/jobs/application_job.rb +3 -0
  45. data/spec/dummy/app/views/layouts/application.html.erb +12 -0
  46. data/spec/dummy/app/views/pages/show.html +16 -0
  47. data/spec/dummy/bin/bundle +4 -0
  48. data/spec/dummy/bin/rails +5 -0
  49. data/spec/dummy/bin/rake +5 -0
  50. data/spec/dummy/bin/setup +31 -0
  51. data/spec/dummy/bin/update +27 -0
  52. data/spec/dummy/bin/yarn +12 -0
  53. data/spec/dummy/config.ru +6 -0
  54. data/spec/dummy/config/application.rb +31 -0
  55. data/spec/dummy/config/boot.rb +4 -0
  56. data/spec/dummy/config/cable.yml +10 -0
  57. data/spec/dummy/config/environment.rb +6 -0
  58. data/spec/dummy/config/environments/development.rb +40 -0
  59. data/spec/dummy/config/environments/production.rb +76 -0
  60. data/spec/dummy/config/environments/test.rb +37 -0
  61. data/spec/dummy/config/initializers/application_controller_renderer.rb +9 -0
  62. data/spec/dummy/config/initializers/backtrace_silencers.rb +8 -0
  63. data/spec/dummy/config/initializers/cookies_serializer.rb +6 -0
  64. data/spec/dummy/config/initializers/filter_parameter_logging.rb +5 -0
  65. data/spec/dummy/config/initializers/inflections.rb +17 -0
  66. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  67. data/spec/dummy/config/initializers/wrap_parameters.rb +10 -0
  68. data/spec/dummy/config/locales/en.yml +33 -0
  69. data/spec/dummy/config/puma.rb +57 -0
  70. data/spec/dummy/config/routes.rb +4 -0
  71. data/spec/dummy/config/secrets.yml +32 -0
  72. data/spec/dummy/log/development.log +360 -0
  73. data/spec/dummy/log/test.log +789 -0
  74. data/spec/dummy/package.json +5 -0
  75. data/spec/dummy/public/404.html +67 -0
  76. data/spec/dummy/public/422.html +67 -0
  77. data/spec/dummy/public/500.html +66 -0
  78. data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
  79. data/spec/dummy/public/apple-touch-icon.png +0 -0
  80. data/spec/dummy/public/favicon.ico +0 -0
  81. data/spec/dummy/public/robots.txt +1 -0
  82. data/spec/dummy/test/application_system_test_case.rb +6 -0
  83. data/spec/dummy/test/system/action_cable_subscription_test.rb +41 -0
  84. data/spec/dummy/test/test_helper.rb +3 -0
  85. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-5/-5OWGoO21F6_WNuECrXgkwH7NcKlWSSe2GjVanwsmUk.cache +0 -0
  86. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-T/-TNJ0-j8HjZCYUE7EDQlhfGu64B8guOUPkXYO6HFhus.cache +0 -0
  87. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/09/09tM9-9HC9J7np7PawoxLz0YZYB_jmwdMFL4N4WBJdM.cache +1 -0
  88. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0H/0HR_baZ3Owzw1Gx5epPCDhsl0UXWGh73zDkQu08IHuc.cache +1 -0
  89. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1I/1IbYhe7oTUZvWCe0pIMBMp5bLq5pCuxuxlgnQV1TAno.cache +2 -0
  90. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1I/1i4n3ptJre3b2zbA9AvgzE-ThTU_1mqSX3AlMtS_Qxk.cache +1 -0
  91. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1L/1LQJg_vkfK3o2UCvJGQKuGjXydCfw7GerrpJCGiKw5k.cache +1 -0
  92. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1U/1U5446rsEAdkd13irJZX_XQoEKv9Ay8wSrKES_-gD8k.cache +0 -0
  93. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2c/2cKLFtRkYbS9lni4MJ8unG2jW0YmNgK6tdelamzjM30.cache +0 -0
  94. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2m/2mGtEm87jDbeppJBYdnCWjRDV5cQaosG-bKVwVN7_kE.cache +1 -0
  95. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2p/2pt2peFCVR6OoIrgufIQbrDGMcFLYwrJtHsLENF31jQ.cache +0 -0
  96. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2u/2uWP73mE8FRywvUKKT08RhFuNUlVUEopIKdt0Jtt8y8.cache +1 -0
  97. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3-/3-C6wEhMG8qKt4rLfzJzMlRBgxb5aDJIB2m5WS0WbAI.cache +0 -0
  98. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/33/33_yR0KysvUnUWvR5TzwELDqGApTbi2ex2o3vY-ybfU.cache +1 -0
  99. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3N/3NTAQ9mVEZbccGibE39JpeqlDw2L6zcUtlRsbPCT918.cache +2 -0
  100. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3V/3V8ZntS_gc1fums5LuLZK0a_nwPIjLXSD0JNF_3ScEk.cache +0 -0
  101. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4U/4UAd9Le8LhEYS8mCovy_yQC_ofpTBWt1Q997x0hg6xY.cache +0 -0
  102. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4V/4VaOsvficwh2EmmuR-pEJTISpR9mbr8Cf7jYYyptEwY.cache +2 -0
  103. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/53/53WajXFPOCZVqMrL7nxYAYl90fSweya9XM4vrDJhU6c.cache +1 -0
  104. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/53/53oHiwCXSKokJPEWS6w53bGXkeZm-YAcDuXcBhNscEY.cache +0 -0
  105. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5Q/5QrnrmEh-kADCXW4bexyNOrjfDmlq_YHgPcEYcHtz28.cache +0 -0
  106. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5T/5ThW8FwEh4SPqrxD1RKHSc3o-vA_2ff5zKoly--6uuM.cache +0 -0
  107. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5d/5dGYuqW7Lp3oCc1lq8B9Uoa0lfgE4iOEiGvgwRf1JHA.cache +0 -0
  108. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5f/5fUAiOa1Zm-ove4HOeSLN1OQmEMHu0OYjHrYIK3-SGE.cache +2 -0
  109. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5f/5flfgUDFCRhrUbGifk2RfSEGWOBMubAcaWg4ZadI5PY.cache +1 -0
  110. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5i/5iW33HH6azj0ds2lqDaOB1666CY_uOHhVAQavgh7tYw.cache +1 -0
  111. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5m/5m0G50I6WuIDftOEFtJHjC0KmN1mnhe51wBZ2dq9la0.cache +0 -0
  112. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5m/5mzbQNNLQ1vmll1Azo5cAZpDY2Zc7C_CLYJH2zKtzYY.cache +0 -0
  113. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6K/6KeDYkyM_nd3JJSp2B4HtcpdeA3uHgJLSlRaEVpH328.cache +1 -0
  114. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6V/6Vgv7g9Uc08fiIpuLxlhqPTfx6tGo1yLedmmUvEL41A.cache +2 -0
  115. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6n/6nd7P_DUqcusZX7UkA5TILZyMrcu-AYfxnc2Kz_J0qQ.cache +1 -0
  116. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6x/6x8om3H3i1stGMEt1wnZ3OsVPGj-sxwE-eyd7A6hSi8.cache +0 -0
  117. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/70/7037jorQaO3wUpzYOJoDOd8cgJMeC2uTysojXmeaYzs.cache +0 -0
  118. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7p/7pN8wYS-6xc_x5BzT4gRgFAiVGhhcW9NHg_e6Ng5CDw.cache +0 -0
  119. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7r/7rgR5Gy_i08FxXwdCvtqSCXSghB7e5EXB2Vox4MQVUg.cache +2 -0
  120. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8Q/8Qz_ptqTPNDlaE2aAVgaFiIBByiF2fhNHKQJFggzJYA.cache +0 -0
  121. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8e/8ezXMOIySx7oyopI2nH1EXfCzPCFHTJiS3q2tvyEZjY.cache +1 -0
  122. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/99/99m8UCKl4j8IpsVOK8ltLHyNh8Ae0nHw3GBkC34V_co.cache +0 -0
  123. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9a/9abVi8XfoB8pGShaL5_-jzZGJIxKmedpFY0HQ5h24oE.cache +1 -0
  124. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9g/9gsAnrIrurboVInpkI-XlUZdUGmshgVKXpdRCtXUt6U.cache +2 -0
  125. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9l/9lUXwCLUk9jTC-3kZdXDSRo-klgJVL54qVOIQmKxlyo.cache +1 -0
  126. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9z/9zFndwRgSOtYlsafWZK_zfCvnqMF4Vv9IqkVxn0gUbM.cache +1 -0
  127. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/A2/A2LHSq1LhqpUvGzPhj15d7c1Sj2RkYyajxf8ipO1x0A.cache +1 -0
  128. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/AO/AOgGJjES3shgkGKKaEb6GMfcfUm18alfRVbYsMJKFyc.cache +0 -0
  129. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ag/AgIFaB92zNMX4-Gy1uYelrx1pnszMI9CxP0aO62ismQ.cache +1 -0
  130. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ag/agBYa9WG7ZT869eaOCVQ4mfpe9AWU8oNjU0g9foJZxk.cache +1 -0
  131. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/B4/B43LeT9Wba4fLvXw-C_kKq-x9HwYZxnBBiltbIufzzQ.cache +0 -0
  132. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/B4/b4w856SSmGPJvZoawjQ63nUN1himU_z41nfZQNGvdag.cache +0 -0
  133. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bg/BgLjB8mXnvRh9DrKcGI_KblFPuA84hjh4nJC50FDsWc.cache +2 -0
  134. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bw/Bwb0DDjQm45Eqy64G2YHrm2eOj1PkqG51Hh3MWG0V40.cache +1 -0
  135. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/C4/C4hGtajZFD6B_bt3ow2qxPGLb1ycjE_7G8Ssi2q5HuA.cache +1 -0
  136. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/CA/CAI82me2PN_gR-kiw8xQDx9FQBiLj_cyO4HVfZfiqf8.cache +0 -0
  137. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/CR/CR85EGUmeGMQQR96qjUurW5HSk4vr5JgWDLQEFxhnAY.cache +1 -0
  138. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Cn/CniRwlPjVCW9FLyHc9oNHIvE-TdlvyAP-lAOrkSBsQg.cache +1 -0
  139. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/D1/D1ZVypz4A_qF0cewMs2YiW5uWi7MKEdPOoOXeBQKeL0.cache +1 -0
  140. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/D4/D4osajB0M3Tk4bo3qAkcpkXlGHReFCOJxlo20Deiqk4.cache +0 -0
  141. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/D9/D9cZjx3n4E4qKXoR9rROjaYWpm1nnip45O0Ubyqyho8.cache +0 -0
  142. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DP/DPvPPYoq_7HYVvKapcWxWL0bSIyINU7Oc93He65SrAk.cache +1 -0
  143. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Df/Dfl0fgtV2z9SkiRUCnFBU6pD3TPmL0rI_lUqOVSglz8.cache +0 -0
  144. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Df/dfOhvqqzI4Yxr6VUUn6T5DARFk5SNeEasmpVaiBivxQ.cache +1 -0
  145. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Dl/DlaCy1X82C9F58mF2UUes54AZzBUIGyuFiZEc9PUW0U.cache +1 -0
  146. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Dy/DyHdMGh9NYCQ6KM4Cs6ySrmxIGQLcs3urJo2ni_GHeI.cache +0 -0
  147. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/E8/E84Qt1hM8br74RgXrkdGt8CGM8KnVROweUTPah6hpao.cache +0 -0
  148. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ea/Ea7ca7cxAj6u9A8UKN2ZVtAFE3GXgmTZtHiorPaUnTg.cache +1 -0
  149. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F8/F8MUNRzORGFgr329fNM0xLaoWCXdv3BIalT7dsvLfjs.cache +0 -0
  150. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FN/FNAoxlHjPOpzywpYUXo13-PLULLhE4lZ8jRmsdCpQ8s.cache +2 -0
  151. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FS/FS-IBIwKNJB6ey4YiEJy3WQxdihlzqhn27zuXCPW3I4.cache +0 -0
  152. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FS/fsx-7r5CnuEuuruO05WoCqUE7I7yHdsHFyufpAo9L_w.cache +2 -0
  153. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FU/FU7chcPDGpikN_If4SNgCUiwKbAtWa-dV0x644C-R8A.cache +0 -0
  154. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FZ/FZS5A8sTziH2yLSQsehYe2Lov6tTh7qddnYpUCOrSg8.cache +0 -0
  155. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/F_/F_wHSssqVgbtl2xnKiCAx8T1yXJcm6G6FFYyEQOM1vk.cache +1 -0
  156. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gx/GxO9oxH-DZ8Vk1eqP17OKFSocWisT4gGJtcGM1t5Fio.cache +2 -0
  157. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/H6/H6QLQGIr0MZMFEBwWkJpjKCoSmnCM1d1b7Z2bT1pchI.cache +0 -0
  158. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HC/HCDOUd7-S45aJ_PjVAC_Vmjyud3i1aQv4cE3t9_Z3Dw.cache +2 -0
  159. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HN/HNBghWjxKPnFYO5L6fJf8R4AeZ0rdAOL6sUFWovnBwU.cache +1 -0
  160. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Hb/HbX5bR5UYD1vbffHD_0rvCrL9QARJ6bCpD00MQdR1g4.cache +1 -0
  161. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Hm/HmOkSBI1TuhJ1te9t-y9GHxMWn2FVl-RnFS8oWi7V_w.cache +1 -0
  162. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/IN/INJypnigTMfqqPOcC-b9F0Iye_HbwItx-5XDHLUtWDc.cache +1 -0
  163. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ig/IgW_xNyC9axLdFbnQLpkLYqhAzSgmdACo0mT8ai455Y.cache +1 -0
  164. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JY/JYy-al-c4ButCglqQfY9a5PZV6XFNBjtHD9sWas7NbE.cache +1 -0
  165. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ja/Jah1OygWPoT6OkBv-5VE19u3b0vGJTHsGse68OBZmtQ.cache +2 -0
  166. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/K0/K0-nXg3QbjeMtvvRvPXZiL0kCh0YtyApX9XrJrj95Po.cache +0 -0
  167. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KB/KB07ZaKNC5uXJ7TjLi-WqnY6g7dq8wWp_8N3HNjBNxg.cache +0 -0
  168. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KI/KIVgv3yfi4fSugBTELntGMTgpB8JKD1c5_CxdEvkfaw.cache +1 -0
  169. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KO/KOgbmY0o5uemlVX1FmoTnTDK6QDnydWoRF2Ht9TtN2U.cache +1 -0
  170. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LI/LIHDRdjIBdKfW4tnKTESwsWFz4OeCV-sJZtEKUYaLiU.cache +1 -0
  171. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/La/LavB01ePIpCqyhy1AJu1V9piCEAYuTyS5bjdSEVqEoY.cache +1 -0
  172. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lx/Lx6tpPxpS0hrFKiVXiv37Q4bFJjhDJJak7WUoOemLC8.cache +0 -0
  173. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lx/LxRPPEO9CB_ckDd1jRPcKJjsm_Gc0CGMSmrdUXXpzjs.cache +2 -0
  174. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/M6/M6hnb_EIRICxNcrNSkV7ekfCpVo0O9U2XSSaLxDqONI.cache +1 -0
  175. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mq/MqwfYiRcCBhwwS_cH5IyKUMsvSreSqmpD_WV3AHeZcw.cache +0 -0
  176. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/N-/N-bT7IhQ1pVoh_gTwxXqeK3dVlmJkxatBZyFP43Si3I.cache +2 -0
  177. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/N1/N1EMMEzwuRyuF1gWtXmBNA8MMh4jYud3NP4IQ4_6APY.cache +1 -0
  178. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/NV/NVd17BdcRmpEVFGZDHcRFIgNC2usd2N50atmE6dfOiI.cache +1 -0
  179. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/NV/NvHlFPeFw2ONsOqGrVoMfZKZNz-6Hio21cxECqHgZd4.cache +0 -0
  180. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ON/ONTTDNMWFhjcmhKbOP3KqbRtGvxLORP9OH6wMiCk_Ys.cache +2 -0
  181. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ol/Olkqarn5mhfEd6uRArgjaOA-B1ZXvvcXpuIFVyoDAXc.cache +0 -0
  182. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/P-/P-STcrlrr_UHY2DAzJOcMU2FOt1STMToqoJ3hYaAEEE.cache +1 -0
  183. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PA/PAJgjBwkjHBCPPw8wWUsKsUR7TvgP4RK7PV8-Jdqluw.cache +2 -0
  184. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PA/paWxJFaOGYb5g3bPUex7k8lTzXqbJ4F0Uw_zBZI8XxU.cache +1 -0
  185. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PP/PPmjUfdcsG-U5YdKOGrvFGoDVweIuWHjIggt6U2rRIo.cache +0 -0
  186. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Pm/PmTiqVQJ4334Q0J-QCdlEdApesHyk8Lwuunb-_RivmU.cache +1 -0
  187. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QY/QYJsCmNADCk6tDZF57r1lz6gqD88LSPkQXtY3Vm-uUI.cache +1 -0
  188. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Q_/Q_J_xCMNzLrUyke5pUNpWmyoVj_lW8yCigUKNE9FyXs.cache +1 -0
  189. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/RB/RBv3Nnh3mIqYx7YWNYxr9uuJlQKt0sISacYDiDkOJ3w.cache +1 -0
  190. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/RE/REff4oUdSjRZwuhZkynEkMbvKkAnflI5V3ti3ZCXtO0.cache +2 -0
  191. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/S2/S2ulcWK2u8bC-jxhkG5P2oDyoR91wKtZkw6I5RfTz24.cache +0 -0
  192. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SD/SDQnsrLw-b0RFX481lQQF9x0HiZaefzuBAuOj3cwo9I.cache +1 -0
  193. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SD/sDGKBkb0LsWWFOmHNgz4ahOe6iLlCfJ8Zy8iInv4teI.cache +0 -0
  194. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SM/SMCVX47Gg93AptU_3a66VblIT3KLHqKrkHHuMhfPIxk.cache +1 -0
  195. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SQ/SQPrFInSYpfPUMfXYJXnph6q8eAFQsL_plvmqSwAVEM.cache +2 -0
  196. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SR/SRppQZkF9KwCpA8Ud3swxGKHJUSM5M75OTHlmfiTeAY.cache +1 -0
  197. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/TE/TEEzQHAX6KOPY3AIg2OPhwQPpIrKlcqGJnqKnvz9YDE.cache +1 -0
  198. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Tr/Tr5ExKD0jPytz0PJn0sVycLrI6t9y-4wGKO4MTwzi2U.cache +2 -0
  199. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Tr/TrY4Ml48luBYhVfMdvwlyB7zO-QQQaWIW7ORlLUnYRg.cache +1 -0
  200. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Tt/Tt0V7r8e-tdXVEGXDjN31D88EHb3z-Jo47tXWmAPCwA.cache +0 -0
  201. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Tx/TxxBMsRYAeLcndv5YuF1FkCV30qi1yhYI8AzTki0Zmo.cache +2 -0
  202. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/U9/U9dnnrqeoOE-mYHdH4XmicZAjMQbjhjXdiA8VlMGsHA.cache +0 -0
  203. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/UA/UA89Y066oW41G1gWoHWdEXcPU2JZ66j8dnXKwoc3yJc.cache +2 -0
  204. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/UK/UKklu-xV4ZGx7P5-zWqENrlHQUaedqEuUNTgezjc3g0.cache +2 -0
  205. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/US/USYEqEC54xCRgdxfID_BklmAl2jIXZAKJ9BhapbMqNg.cache +1 -0
  206. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/V5/V5dKKdHyA7y6N44igdqPBARmoV0tYdUsUrmf2lJkF6M.cache +1 -0
  207. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/VJ/VJ9Lp37PnSDzVOvhSVhKc2eG-KOuv3bRFxar6M8LLnA.cache +1 -0
  208. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/VP/VPf8mKPeiYU53d-M_P60d-YL6wdTka1rTVRa4F5dB_k.cache +0 -0
  209. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/VY/VYJV9KoRx38NfAvSvXouEYF_0k-Su_KdFuSSXPOoSOg.cache +1 -0
  210. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/W2/W2nmNoF054n5uT-S7jhvUpaJqxHYWiJnHNP8fbjwjj0.cache +1 -0
  211. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/WA/WA0OKbW1ShDLWAbN4voLShkG6JaNjvWeSNF3ZpLcUqY.cache +0 -0
  212. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wr/WriMHycrWjgHpmRpAo9N4nvDB5T0lBL5EOTTUQUHwn4.cache +1 -0
  213. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ws/WsHB1qkchRYVF4JV0Yqtr-QiyZ26DiLFtKTrCRVc5kI.cache +0 -0
  214. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/XD/XDRDiP6A_Qz7pCCfZHYO6Xfob7trS4JQQoX_ByuWnRI.cache +2 -0
  215. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Xr/XrGClLu5lOe_6gWU_Nm-tCAC6tUCFpoTPwyKLHmrnNw.cache +0 -0
  216. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Xu/XupuIipXyzmZQIRfy2SfGTCS21Y-sBxWWjFWmnxYllM.cache +1 -0
  217. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Xx/XxkX9e-7J9By7nLHpwyUoOdUJ78twXYUefvXKie2WkA.cache +1 -0
  218. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yf/YfGn3oqi1Sm1_rHBqpmph8QpfhWTITbEUWS9waD_HKg.cache +0 -0
  219. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yf/yfhQwhH-ul-osfCM7_EXtSEeujd0TqsbqPoVgj7ehi0.cache +0 -0
  220. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yl/YlIiT75oC_1vUeD7NoTHufIKf1Tdnjg82aJbfI79WGQ.cache +2 -0
  221. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Z-/Z--HP-BzybXzcZ6TPTFHonJqTM1B3B2g-5uUSi_EuSc.cache +0 -0
  222. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZT/ZTVpqYlcQg-w8iygSuUB7UBreT5bxLOPDNlKjzg5kMY.cache +0 -0
  223. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZT/ztYH9puOw0lwdIjwlH18IT68aY0KvTPEiAQTrxn4doQ.cache +2 -0
  224. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Za/ZaT_Lz8qe4rCd9sYS8dWxhl6MB_pWFUu7sqohGkRsAo.cache +0 -0
  225. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Zz/Zzsh2ASGqBSWLSWIU4fAyxS3iVuJDxdTCw8jOOsUNzA.cache +1 -0
  226. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_-/_-Y1fY6ejeTyiaDheuPSN_aPVwcvRdIlowBkfFxEY0c.cache +0 -0
  227. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_6/_61xcFfBTsk2JixNV1J-NP9FtW67n0Haapr-7H5toEU.cache +2 -0
  228. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_R/_RQaUmRUEEXsJ7wurDZfjh63xJqRWfkCTDSiA0pvOIg.cache +2 -0
  229. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_m/_mRvClvA9ew3lpKq5JBpjPY232J6bAj9K_XP3N2HFD8.cache +0 -0
  230. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_z/_zNZb_3SH_fXs-tDFm3LtWun9BlLzBVn3aDO9l6K-NQ.cache +1 -0
  231. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/a7/a7lacDViLUEaXFwV6UuZfTUood23K0X7_s2YYxP7dQw.cache +1 -0
  232. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/aV/aVdjJbgLyd5MLwvnXSaX_83wDD0zG8DQnKs4hlOXOJ0.cache +1 -0
  233. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/al/alJwyXpJHF8RaBpaslorYD4Et6PO_-7Jr1qQmR_Wtys.cache +0 -0
  234. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bC/bCSJnsDI4K9-Hwd7p_GC9M36gA2QbYgtfl-Guk1Ev80.cache +1 -0
  235. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bM/bMopwpsFeLUsi20J9L9mPnoi6ZMJMVHIzxbTHbWrBho.cache +2 -0
  236. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bd/bdikSDf26RlvOPFhOT9G-XHnMj8ptHrTYB3QUuABCUQ.cache +0 -0
  237. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bi/biczy7hoa1_tzXKc6t2QU3WdkhkfdBfwwq66GVVz914.cache +1 -0
  238. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bq/bqRZ6xUe_GzjdFbiyk0iMQoNHY4xk1gccuw3l8KUJz8.cache +2 -0
  239. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bv/bvfgzCTJxyiwgFWSXthcO14iFDl_K1NuT0vWVXcI-WU.cache +0 -0
  240. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cZ/cZw-zK9k1to5xz_hZ8FQB5wpR9Ks1-bhn7kJJVu9Ki0.cache +1 -0
  241. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ci/cipvvZ93wZHrDs_W1liu4PQTEJsKuPhbk6JG1DsMfxM.cache +1 -0
  242. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ck/ckLh5gBuqdrZ9fuxYz87cU_3hhZMI_7tcqNJ2EjtgpI.cache +0 -0
  243. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dG/dGyq85wVf9waxk23R1VlUQQMflMpPSsiMOTM9TtZ1f0.cache +0 -0
  244. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/d_/d_Ckuu1Nlhrqje-LDVqGwCu8pLiyAX31uSdo7QCELeI.cache +2 -0
  245. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/db/db0UgKlp2vcgigF3FfR0UlilfVgDEJuew9qxLsuR374.cache +0 -0
  246. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/db/dbXmPOhlH1AKN08KRg0ow8KOe-_XKeBNOg0HJvnqQCs.cache +0 -0
  247. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dr/drw7hbVGSDH0ujUo0r9Fmfbjvw8_eoOc6fCktj5IKak.cache +2 -0
  248. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/e7/e7SEwN9e5ctMuXdXSRM6IB2fFMiIP2UAmvXjDKktd5w.cache +1 -0
  249. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eW/eWG0d21oPZQGuYiCLej8OsRayN0--zxnvn7KHFqrQus.cache +1 -0
  250. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fA/fADdr9ULIrFxI-36hG3S8yfvCp2VHyR6WzSZNIPM3C0.cache +1 -0
  251. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fE/fEt1GN3H2qJiB0PwX6Cd43UrRkzLxTRIeUyyrydPe_A.cache +2 -0
  252. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ff/ffguBp3lFlcLuH9rWtl1JJxs9dDTIfm-FCMONYpUdww.cache +1 -0
  253. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/he/hepQXqLZteSsVIUXJaeKnrpVYKb53gbWe1xr6tuFN3Y.cache +1 -0
  254. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hy/hyMfoAGcpyTZYoedJT2E2u3X96FEwATK-lIPMFlN_bw.cache +0 -0
  255. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/i9/I9UL3IEpQ14Bi9EpF3TLd0P5Rabp6ulJbgz2f1o-neA.cache +1 -0
  256. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/i9/i9lFglNaFPcJgnmxvuMjrY_R8pXY0CN9SiUKFgVFPSM.cache +0 -0
  257. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iE/iEzDISmI13GuIeJehYePCIVyUe7XZ-_q9pvIv0UzneM.cache +1 -0
  258. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/i_/i_hzz-9VlGYj7yvx9yYWRKRw2UwxqFHQrRZw6vzXsWc.cache +0 -0
  259. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ij/ijLUBXXLleeHIaUQp-SQmpq0HpH94rYlbW5OJbKpnsg.cache +1 -0
  260. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iq/iqPK1x8VfJwa8KcViAxJc6WCCa1dqE_7ubcbyoyjecg.cache +1 -0
  261. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iw/iw-6QMCNXnMzL5koGPyFgnCllIbeX88-V7N5GRRqxLA.cache +0 -0
  262. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/j2/j2NpPyjDjX23FPlgIi_Hf4oc4HH6a74elyfPP9wF0jU.cache +2 -0
  263. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jK/jKof1JYBdCVS3OYs9Itw8Fbr1nIPR8DLSEB8WKSDLyw.cache +2 -0
  264. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jS/jSnpKdnMVeeGtUODVf-9I1I3xvGWQr4uOtIB8Oul4Zw.cache +1 -0
  265. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jn/jnwTDvpqs0w9VZpZ5GUZ60o6cpUhzgo69c_ooHHmNvM.cache +0 -0
  266. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kU/kUok4qdkoYsQOP59lJgy9rPyE-T3sh8l0dVDE6KzfeI.cache +1 -0
  267. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kv/KVJz4npl0nKN-Dp49qjcOml4Tpxq_AZ8RNO1Bi387Is.cache +2 -0
  268. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kv/kvTGOzOr1lqLnY61yqldR_vtHpoCKFYDFpl7_fnCtcE.cache +1 -0
  269. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kz/kz7lpLb0SoWDdaStz39DkoaQykVp0h3Jl4agZcEh6L4.cache +1 -0
  270. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/l8/l8UyUr0lncdtUUTZFwO0ulkW8Bl3z83viCwii7OewZk.cache +1 -0
  271. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lH/lHDGd3_dxi_xz9n5_wYFy7hKMxp78Q39u_XQKZWub_Y.cache +0 -0
  272. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lU/lUmP4mi3T8xmwS_odQgw8llzs35KCOMZCTv0DANy9dM.cache +1 -0
  273. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lY/lYdwx9C-FXcmiLA5bsEfQIBwpcg3twu1lz6rFXROyCI.cache +0 -0
  274. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lj/ljpGLuZae0hOTv1h7MGCiJ30O0qhPCuvEKLhD5zpV8Q.cache +0 -0
  275. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/m1/M1yW7a2h3VzoyhwmJIKGEXjCQN8GsQcnvcKaklurytE.cache +1 -0
  276. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/m1/m1jB-0OsQz_CCr-Q_KIlpfF7BsJBF8GXMfk9pZdJsdg.cache +0 -0
  277. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/m3/m3WJ72qtNo4wVe78N9YRArVH33D15hEwdVd67wJbvOQ.cache +0 -0
  278. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/m4/m4EE0-xa87oylMzux18a-d2pR0zDtF2GCbYzwdSvQH4.cache +0 -0
  279. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mS/mSWxg1xZbGaeYGDXMe8nsYZC_LfhiNdjSTL2J2ELE0s.cache +0 -0
  280. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mb/mb6HAyivnzHzDrkN35ifr4kL7MuksZYWamdJBUjhoHQ.cache +0 -0
  281. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/me/melFFxMi_bgtkEkztQhKusyFDqKEeVVzurk_1_TPt6A.cache +1 -0
  282. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mm/mms9rxcyPm09RjefBI321LIRPUAobgQ1X4A8Uu4w9Fc.cache +0 -0
  283. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nA/nA0Bu-48plSRK0cxt2gE2-TXvwcDsTjvHLFR7KshbPY.cache +0 -0
  284. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nA/nAGwhUtXjENu4Jl3uTJFFRnDhJAOlMAmuju7JcllSRM.cache +1 -0
  285. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nN/nN4lOF8mi-IWkm3zsqohaHbvJS4uG-_tiFsB6h1PsFc.cache +0 -0
  286. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ne/neLH-4_-lhKrkmcWjkrdYAoT5xDuc9EzJ5-81ZXeeXc.cache +2 -0
  287. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nj/njVJUsm_4wugUz9SwMbITIhSGErMWqSZ16AEUFn2RHo.cache +0 -0
  288. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nq/nqz2Ja53LHhXhFb6ChNpDKnBMWNdp17ZtNhrn-9wdR0.cache +0 -0
  289. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oY/oYHos9r6mwOX5jDyDTWjnpRR_SvWe4EX9gAl20Gqj8I.cache +1 -0
  290. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oj/ojlR_0dl68-YErHzTDzB8lO8nKxQzG6x_Axc5oWIeBg.cache +2 -0
  291. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pG/pGc_RfrP3RwCp5SBabj-nGnfyeSnUp1Ed1ajCG5Yx-A.cache +1 -0
  292. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pQ/PQZm6DUZqIXs_3Wo9ISeQRb0vYyB0XG7iGSHr9_TWlc.cache +0 -0
  293. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pQ/pQXlqH4DBItuAHNMXGnwQmnzYkwJ2m7kUgKQbdbZM1E.cache +0 -0
  294. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pj/pJtdFKizdxA_xBjuuXQWYnEvCcImUQtT5Rh-tGG6v48.cache +2 -0
  295. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pj/pjg7FTDRmEzqh8W3ijd1Y3GbffQuQwwSKEZ6ftoPnJE.cache +2 -0
  296. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ps/ps7w7RIcMoa1jxZu4r5mWxnZzl8qM4Bs9AietV5a9nU.cache +0 -0
  297. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qU/qUif8_vci3i4xpLoHjkoVXT-baN2Z_qabhqo2Wl1KU4.cache +2 -0
  298. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qf/qfMsgo__LLXJ_4thqBkUaDYPnaucsAJhMl6uN74w1GM.cache +1 -0
  299. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qj/qjbZ2Uz7G_0aKEQT3Nmuu0k2FkDTmVTemeoG3gw3oSw.cache +1 -0
  300. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qx/qxng7xwKb01YKazp0ij03cuEDbzSNSakHHwLx7XNEck.cache +1 -0
  301. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r5/r5EpktDep6rAU9paabInRkyyMPudlyFSWlHRFmSKXcI.cache +1 -0
  302. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rX/rX6desISJ78BGVzR2gPZKb2BiWY-N596DjfIgaTTkew.cache +1 -0
  303. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r_/r_57OZEW0SEEUS9tJZwHYMvqjkbw3-3qfgomLAKJzoE.cache +0 -0
  304. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rh/rhT44pxmkWo5fhkEb829kceOiGof5L5L55DT5Uv9LKQ.cache +0 -0
  305. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/s4/s4BZ5EXO5EOticOtqwWaw3qjnMod3t0AfgXahBpqSZA.cache +0 -0
  306. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tF/tFofktc3WRxmXDS1NTWdUstzycUbsShJBMHatxLvxqQ.cache +2 -0
  307. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tL/tLQy_cVJ8R8R35MKxmAuxHklAoaJTyXFO-eL8dXcMKY.cache +1 -0
  308. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vH/vHyq2njTP0fsOdOun0eFn07YnFCTmJJkD89-pJ9tKYA.cache +0 -0
  309. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vK/vKDpBE4UJEuJjeJqLtVQSQ7wHxJ1ywxrRt8Y1XQBxtk.cache +0 -0
  310. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vK/vk4eyljHSm11GcRNbA0QEqn13Y4bEfxOcBwiesL-XvQ.cache +1 -0
  311. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/w6/w6JBeSUs8dNJNtbRF-HVG3csGda2FlttAEBSpSHoqcE.cache +0 -0
  312. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wc/wcSdAX-yztEvzKx_xYHtqxT47ZyaLoLal_vKwPxEP08.cache +2 -0
  313. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wh/whuY0tTNf66sTcgILzLfelCAHIBpDZZIiOIuI12HNQw.cache +2 -0
  314. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wi/wiKqSHxw-MJpM466KPFAcPyzBHxbpGGYW578TqFEJeg.cache +1 -0
  315. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wi/wixK89IvA4Xk2MyJxkyLg-2xRs2vRPzY_OIs37bi8XA.cache +1 -0
  316. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wz/wzY0ol5RRJK1j-hK9nckKoTMWK5TJDii5QSZMGTu5hk.cache +0 -0
  317. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/x3/x3jUhlqTEK-rA6zTC8_MWGyKD8tZRhz2nPu0nCBgEGI.cache +1 -0
  318. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xL/xLZtF0WWBePfiVBWxxi6brXCLsEfcrj435b9xJupeeU.cache +0 -0
  319. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xL/xLktzniI5dkWKAifTMHzZvRHyRHOexsqV-ZRsdLXx0g.cache +2 -0
  320. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xv/xvoydM1zth53tauNTatJNfb-o44mAGDD9-85yRkpeqY.cache +0 -0
  321. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yH/yHfd9J_SJGssjygyWK8-uLlvE6IlN6DIda7947QWVsI.cache +1 -0
  322. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yQ/yQP_20gvJZ1MfkfWE7nU-EFpqbMzANYy8OWuQuaDyLM.cache +2 -0
  323. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yv/yvOcRnWhg9dCjr1_rScAH4M8-rUQVY9oHFqBGVoMniI.cache +0 -0
  324. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/z2/z2ro57FqSGT_X2jnC68fS-HrFmCh7Wbrnrm45BceZoM.cache +0 -0
  325. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zJ/zJfViroVCTZxyBh0pLP8_QiOxemqmKRkiU7BHAf5HxA.cache +0 -0
  326. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zP/zPBLf0GnkvCm86BY_8PtGJRyawPWy-JxWZp25_yNRfk.cache +2 -0
  327. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zm/zmEmiHcLam0fJ2odLUV8n4hg9GN2gBDrJo7JCkkg8f4.cache +1 -0
  328. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zy/zywotY5ANjNyE78CLDqC1eYRFwL1ZFzkT9J5LzNlI4M.cache +1 -0
  329. data/spec/dummy/tmp/restart.txt +0 -0
  330. data/spec/dummy/tmp/screenshots/failures_test_it_handles_subscriptions.png +0 -0
  331. data/spec/graphql/analysis/analyze_query_spec.rb +2 -1
  332. data/spec/graphql/backtrace_spec.rb +12 -16
  333. data/spec/graphql/execution/execute_spec.rb +1 -1
  334. data/spec/graphql/execution_error_spec.rb +19 -0
  335. data/spec/graphql/introspection/schema_type_spec.rb +1 -0
  336. data/spec/graphql/language/parser_spec.rb +3 -3
  337. data/spec/graphql/query/variables_spec.rb +1 -1
  338. data/spec/graphql/static_validation/rules/argument_literals_are_compatible_spec.rb +50 -0
  339. data/spec/graphql/static_validation/validator_spec.rb +1 -0
  340. data/spec/graphql/subscriptions_spec.rb +57 -1
  341. data/spec/graphql/tracing/active_support_notifications_tracing_spec.rb +6 -8
  342. data/spec/graphql/tracing/platform_tracing_spec.rb +56 -0
  343. data/spec/graphql/tracing_spec.rb +13 -8
  344. data/spec/spec_helper.rb +8 -12
  345. data/spec/support/dummy/data.rb +1 -1
  346. data/spec/support/dummy/schema.rb +7 -0
  347. data/spec/support/star_wars/schema.rb +1 -1
  348. metadata +610 -3
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"8file-digest://app/assets/javascripts/application.js;TTI"$file-digest://app/assets/config;TTI".file-digest://app/assets/config/rails-ujs;TTI")file-digest://app/assets/javascripts;TTI"3file-digest://app/assets/javascripts/rails-ujs;TTI")file-digest://app/assets/stylesheets;TTI"3file-digest://app/assets/stylesheets/rails-ujs;TTI"wfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled;TTI"|file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/rails-ujs;TTI"vfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled;TTI"{file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled/rails-ujs;TTI"~file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled/rails-ujs.js;TTI"1file-digest://app/assets/config/action_cable;TTI"6file-digest://app/assets/javascripts/action_cable;TTI"6file-digest://app/assets/stylesheets/action_cable;TTI"file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/action_cable;TTI"�file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/action_cable.js;TTF
@@ -0,0 +1 @@
1
+ I"�/Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled/rails-ujs.js?type=application/javascript&pipeline=self&id=22e6aab4046537fff84044d874e2c71f779b2ca390ec3a22eccd7613f26633b7:ET
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=1b05a45e1298fec0ff22490b83f41addd64c519f14fb065a24d7affea6cb08ed:ET
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"8file-digest://app/assets/javascripts/application.js;TTI"$file-digest://app/assets/config;TTI".file-digest://app/assets/config/rails-ujs;TTI")file-digest://app/assets/javascripts;TTI"3file-digest://app/assets/javascripts/rails-ujs;TTI"wfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled;TTI"|file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/rails-ujs;TTI"vfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled;TTI"{file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled/rails-ujs;TTI"~file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled/rails-ujs.js;TTI"1file-digest://app/assets/config/action_cable;TTI"6file-digest://app/assets/javascripts/action_cable;TTI"file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/action_cable;TTI"�file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/action_cable.js;TTF
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"8file-digest://app/assets/javascripts/application.js;TTI"$file-digest://app/assets/config;TTI".file-digest://app/assets/config/rails-ujs;TTI")file-digest://app/assets/javascripts;TTI"3file-digest://app/assets/javascripts/rails-ujs;TTI")file-digest://app/assets/stylesheets;TTI"3file-digest://app/assets/stylesheets/rails-ujs;TTI"wfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled;TTI"|file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/rails-ujs;TTI"vfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled;TTI"{file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled/rails-ujs;TTI"~file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled/rails-ujs.js;TTI"1file-digest://app/assets/config/action_cable;TTI"6file-digest://app/assets/javascripts/action_cable;TTI"6file-digest://app/assets/stylesheets/action_cable;TTI"file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/action_cable;TTI"�file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/action_cable.js;TTF
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/application.js?type=application/javascript&id=4183029bcd199a612ca3f502301dc634a4a5e420380cd9a771d7e2e33c849a73:ET
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/application.js?type=application/javascript&id=8f7125b8eabcf1163ca9ef4b7baf97a79f07bd48ec6f5948d5beae488fcdd736:ET
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"8file-digest://app/assets/javascripts/application.js;TTI"$file-digest://app/assets/config;TTI".file-digest://app/assets/config/rails-ujs;TTI")file-digest://app/assets/javascripts;TTI"3file-digest://app/assets/javascripts/rails-ujs;TTI")file-digest://app/assets/stylesheets;TTI"3file-digest://app/assets/stylesheets/rails-ujs;TTI"wfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled;TTI"|file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/rails-ujs;TTI"vfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled;TTI"{file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled/rails-ujs;TTI"~file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled/rails-ujs.js;TTI"1file-digest://app/assets/config/action_cable;TTI"6file-digest://app/assets/javascripts/action_cable;TTI"6file-digest://app/assets/stylesheets/action_cable;TTI"file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/action_cable;TTI"�file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/action_cable.js;TTF
@@ -0,0 +1 @@
1
+ "%�#��2A�R�*�G����7�ׯ،�g��
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"8file-digest://app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"~file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled/rails-ujs.js;TTI"�file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/action_cable.js;TTI"$file-digest://app/assets/config;TTI".file-digest://app/assets/config/rails-ujs;TTI")file-digest://app/assets/javascripts;TTI"3file-digest://app/assets/javascripts/rails-ujs;TTI")file-digest://app/assets/stylesheets;TTI"3file-digest://app/assets/stylesheets/rails-ujs;TTI"wfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled;TTI"|file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/rails-ujs;TTI"vfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled;TTI"{file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled/rails-ujs;TTI"1file-digest://app/assets/config/action_cable;TTI"6file-digest://app/assets/javascripts/action_cable;TTI"6file-digest://app/assets/stylesheets/action_cable;TTI"file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/action_cable;TTF
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash}I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"8file-digest://app/assets/javascripts/application.js;TTI"$file-digest://app/assets/config;TTI".file-digest://app/assets/config/rails-ujs;TTI")file-digest://app/assets/javascripts;TTI"3file-digest://app/assets/javascripts/rails-ujs;TTI")file-digest://app/assets/stylesheets;TTI"3file-digest://app/assets/stylesheets/rails-ujs;TTI"wfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled;TTI"|file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/rails-ujs;TTI"vfile-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled;TTI"{file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled/rails-ujs;TTI"~file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actionview-5.1.4/lib/assets/compiled/rails-ujs.js;TTI"1file-digest://app/assets/config/action_cable;TTI"6file-digest://app/assets/javascripts/action_cable;TTI"6file-digest://app/assets/stylesheets/action_cable;TTI"file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/action_cable;TTI"�file-digest:///Users/rmosolgo/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/actioncable-5.1.4/lib/assets/compiled/action_cable.js;TTF
@@ -0,0 +1 @@
1
+ I"�app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=28494fbc91fae7922fc20667e1b30258d8dfe018bc5136ce26e0fb000a2636b5:ET
@@ -0,0 +1 @@
1
+ "%z$�6�ΑV�� �J�e�A����@2?�
File without changes
@@ -54,7 +54,8 @@ describe GraphQL::Analysis do
54
54
 
55
55
  it "emits traces" do
56
56
  traces = TestTracing.with_trace do
57
- Dummy::Schema.execute(document: GraphQL.parse(query_string))
57
+ ctx = { tracers: [TestTracing] }
58
+ Dummy::Schema.execute(query_string, context: ctx)
58
59
  end
59
60
 
60
61
  # The query_trace is on the list _first_ because it finished first
@@ -2,14 +2,6 @@
2
2
  require "spec_helper"
3
3
 
4
4
  describe GraphQL::Backtrace do
5
- before {
6
- GraphQL::Backtrace.enable
7
- }
8
-
9
- after {
10
- GraphQL::Backtrace.disable
11
- }
12
-
13
5
  class LazyError
14
6
  def raise_err
15
7
  raise "Lazy Boom"
@@ -68,14 +60,16 @@ describe GraphQL::Backtrace do
68
60
  }
69
61
  }
70
62
 
63
+ let(:backtrace_schema) {
64
+ schema.redefine(use: GraphQL::Backtrace)
65
+ }
66
+
71
67
  describe "GraphQL backtrace helpers" do
72
68
  it "raises a TracedError when enabled" do
73
69
  assert_raises(GraphQL::Backtrace::TracedError) {
74
- schema.execute("query BrokenList { field1 { listField { strField } } }")
70
+ backtrace_schema.execute("query BrokenList { field1 { listField { strField } } }")
75
71
  }
76
72
 
77
- GraphQL::Backtrace.disable
78
-
79
73
  assert_raises(NoMethodError) {
80
74
  schema.execute("query BrokenList { field1 { listField { strField } } }")
81
75
  }
@@ -83,7 +77,7 @@ describe GraphQL::Backtrace do
83
77
 
84
78
  it "annotates crashes from user code" do
85
79
  err = assert_raises(GraphQL::Backtrace::TracedError) {
86
- schema.execute <<-GRAPHQL, root_value: "Root"
80
+ backtrace_schema.execute <<-GRAPHQL, root_value: "Root"
87
81
  query($msg: String = \"Boom\") {
88
82
  field1 {
89
83
  boomError: raiseField(message: $msg)
@@ -119,13 +113,14 @@ describe GraphQL::Backtrace do
119
113
  assert_includes err.message, rendered_table
120
114
  # The message includes the original error message
121
115
  assert_includes err.message, "This is broken: Boom"
122
- assert_includes err.message, "spec/graphql/backtrace_spec.rb:41", "It includes the original backtrace"
116
+ assert_includes err.message, "spec/graphql/backtrace_spec.rb:33", "It includes the original backtrace"
123
117
  assert_includes err.message, "more lines"
124
118
  end
125
119
 
126
120
  it "annotates errors inside lazy resolution" do
121
+ # Test context-based flag
127
122
  err = assert_raises(GraphQL::Backtrace::TracedError) {
128
- schema.execute("query StrField { field2 { strField } __typename }")
123
+ schema.execute("query StrField { field2 { strField } __typename }", context: { backtrace: true })
129
124
  }
130
125
  assert_instance_of RuntimeError, err.cause
131
126
  b = err.cause.backtrace
@@ -151,13 +146,14 @@ describe GraphQL::Backtrace do
151
146
  end
152
147
 
153
148
  it "returns analysis errors to the client" do
154
- res = schema.execute("query raiseError { __typename }")
149
+ res = backtrace_schema.execute("query raiseError { __typename }")
155
150
  assert_equal "this should not be wrapped by a backtrace, but instead, returned to the client", res["errors"].first["message"]
156
151
  end
157
152
 
158
153
  it "always stringifies the #inspect response" do
154
+ # test the schema plugin
159
155
  err = assert_raises(GraphQL::Backtrace::TracedError) {
160
- schema.execute("query { nilInspect { raiseField(message: \"pop!\") } }")
156
+ backtrace_schema.execute("query { nilInspect { raiseField(message: \"pop!\") } }")
161
157
  }
162
158
 
163
159
  rendered_table = [
@@ -154,7 +154,7 @@ describe GraphQL::Execution::Execute do
154
154
  star_wars_query(query_string, {
155
155
  "id1" => first_id,
156
156
  "id2" => last_id,
157
- })
157
+ }, context: {tracers: [TestTracing]})
158
158
  end
159
159
 
160
160
  exec_traces = traces[5..-1]
@@ -252,4 +252,23 @@ describe GraphQL::ExecutionError do
252
252
  assert_equal(expected_result, result)
253
253
  end
254
254
  end
255
+
256
+ describe "options in ExecutionError" do
257
+ let(:query_string) {%|
258
+ {
259
+ executionErrorWithOptions
260
+ }
261
+ |}
262
+ it "the error is inserted into the errors key and the rest of the query is fulfilled" do
263
+ expected_result = {
264
+ "data"=>{"executionErrorWithOptions"=>nil},
265
+ "errors"=>
266
+ [{"message"=>"Permission Denied!",
267
+ "locations"=>[{"line"=>3, "column"=>7}],
268
+ "path"=>["executionErrorWithOptions"],
269
+ "code"=>"permission_denied"}]
270
+ }
271
+ assert_equal(expected_result, result)
272
+ end
273
+ end
255
274
  end
@@ -30,6 +30,7 @@ describe GraphQL::Introspection::SchemaType do
30
30
  {"name"=>"deepNonNull"},
31
31
  {"name"=>"error"},
32
32
  {"name"=>"executionError"},
33
+ {"name"=>"executionErrorWithOptions"},
33
34
  {"name"=>"favoriteEdible"},
34
35
  {"name"=>"fromSource"},
35
36
  {"name"=>"maybeNull"},
@@ -73,9 +73,9 @@ describe GraphQL::Language::Parser do
73
73
  end
74
74
 
75
75
  it "serves traces" do
76
- traces = TestTracing.with_trace do
77
- GraphQL.parse("{ t: __typename }")
78
- end
76
+ TestTracing.clear
77
+ GraphQL.parse("{ t: __typename }", tracer: TestTracing)
78
+ traces = TestTracing.traces
79
79
  assert_equal 2, traces.length
80
80
  lex_trace, parse_trace = traces
81
81
 
@@ -73,7 +73,7 @@ describe GraphQL::Query::Variables do
73
73
 
74
74
  describe "nullable variables" do
75
75
  module ObjectWithThingsCount
76
- def self.thingsCount(args, ctx) # rubocop:disable Style/MethodName
76
+ def self.thingsCount(args, ctx) # rubocop:disable Naming/MethodName
77
77
  1
78
78
  end
79
79
  end
@@ -219,4 +219,54 @@ describe GraphQL::StaticValidation::ArgumentLiteralsAreCompatible do
219
219
  })
220
220
  end
221
221
  end
222
+
223
+ describe "custom error messages" do
224
+ let(:schema) {
225
+ TimeType = GraphQL::ScalarType.define do
226
+ name "Time"
227
+ description "Time since epoch in seconds"
228
+
229
+ coerce_input ->(value, ctx) do
230
+ begin
231
+ Time.at(Float(value))
232
+ rescue ArgumentError
233
+ raise GraphQL::CoercionError, 'cannot coerce to Float'
234
+ end
235
+ end
236
+
237
+ coerce_result ->(value, ctx) { value.to_f }
238
+ end
239
+
240
+ QueryType = GraphQL::ObjectType.define do
241
+ name "Query"
242
+ description "The query root of this schema"
243
+
244
+ field :time do
245
+ type TimeType
246
+ argument :value, !TimeType
247
+ resolve ->(obj, args, ctx) { args[:value] }
248
+ end
249
+ end
250
+
251
+ GraphQL::Schema.define do
252
+ query QueryType
253
+ end
254
+ }
255
+
256
+ let(:query_string) {%|
257
+ query {
258
+ time(value: "a")
259
+ }
260
+ |}
261
+
262
+ it "sets error message from a CoercionError if raised" do
263
+ assert_equal 1, errors.length
264
+
265
+ assert_includes errors, {
266
+ "message"=> "cannot coerce to Float",
267
+ "locations"=>[{"line"=>3, "column"=>9}],
268
+ "fields"=>["query", "time", "value"]
269
+ }
270
+ end
271
+ end
222
272
  end
@@ -9,6 +9,7 @@ describe GraphQL::StaticValidation::Validator do
9
9
 
10
10
  describe "tracing" do
11
11
  let(:query_string) { "{ t: __typename }"}
12
+ let(:query) { GraphQL::Query.new(Dummy::Schema, query_string, context: {tracers: [TestTracing]}) }
12
13
 
13
14
  it "emits a trace" do
14
15
  traces = TestTracing.with_trace do
@@ -133,6 +133,30 @@ class InMemoryBackend
133
133
  Schema.get_field("Subscription", "myEvent").subscription_scope = :me
134
134
  end
135
135
 
136
+ if rails_should_be_installed? && defined?(GlobalID)
137
+ GlobalID.app = "graphql-ruby-test"
138
+
139
+ class GlobalIDUser
140
+ include GlobalID::Identification
141
+
142
+ attr_reader :id
143
+
144
+ def initialize(id)
145
+ @id = id
146
+ end
147
+ end
148
+
149
+ class ToParamUser
150
+ def initialize(id)
151
+ @id = id
152
+ end
153
+
154
+ def to_param
155
+ @id
156
+ end
157
+ end
158
+ end
159
+
136
160
  describe GraphQL::Subscriptions do
137
161
  before do
138
162
  schema.subscriptions.reset
@@ -170,7 +194,8 @@ describe GraphQL::Subscriptions do
170
194
  # The application signals graphql via `subscriptions.trigger`:
171
195
  schema.subscriptions.trigger("payload", {"id" => "100"}, root_object.payload)
172
196
  schema.subscriptions.trigger("payload", {"id" => "200"}, root_object.payload)
173
- schema.subscriptions.trigger("payload", {"id" => "100"}, root_object.payload)
197
+ # Symobls are OK too
198
+ schema.subscriptions.trigger("payload", {:id => "100"}, root_object.payload)
174
199
  schema.subscriptions.trigger("payload", {"id" => "300"}, nil)
175
200
 
176
201
  # Let's see what GraphQL sent over the wire:
@@ -283,6 +308,37 @@ describe GraphQL::Subscriptions do
283
308
  assert_equal [3], deliveries["3"].map { |d| d["data"]["myEvent"]["int"] }
284
309
  end
285
310
 
311
+ if rails_should_be_installed? && defined?(GlobalID)
312
+ it "allows complex object subscription scopes" do
313
+ query_str = <<-GRAPHQL
314
+ subscription($type: PayloadType) {
315
+ myEvent(type: $type) { int }
316
+ }
317
+ GRAPHQL
318
+
319
+ # Global ID Backed User
320
+ schema.execute(query_str, context: { socket: "1", me: GlobalIDUser.new(1) }, variables: { "type" => "ONE" }, root_value: root_object)
321
+ schema.execute(query_str, context: { socket: "2", me: GlobalIDUser.new(1) }, variables: { "type" => "TWO" }, root_value: root_object)
322
+ # ToParam Backed User
323
+ schema.execute(query_str, context: { socket: "3", me: ToParamUser.new(2) }, variables: { "type" => "ONE" }, root_value: root_object)
324
+ # Array of Objects
325
+ schema.execute(query_str, context: { socket: "4", me: [GlobalIDUser.new(4), ToParamUser.new(5)] }, variables: { "type" => "ONE" }, root_value: root_object)
326
+
327
+ schema.subscriptions.trigger("myEvent", { "type" => "ONE" }, OpenStruct.new(str: "", int: 1), scope: GlobalIDUser.new(1))
328
+ schema.subscriptions.trigger("myEvent", { "type" => "TWO" }, OpenStruct.new(str: "", int: 2), scope: GlobalIDUser.new(1))
329
+ schema.subscriptions.trigger("myEvent", { "type" => "ONE" }, OpenStruct.new(str: "", int: 3), scope: ToParamUser.new(2))
330
+ schema.subscriptions.trigger("myEvent", { "type" => "ONE" }, OpenStruct.new(str: "", int: 4), scope: [GlobalIDUser.new(4), ToParamUser.new(5)])
331
+
332
+ # Delivered to GlobalIDUser
333
+ assert_equal [1], deliveries["1"].map { |d| d["data"]["myEvent"]["int"] }
334
+ assert_equal [2], deliveries["2"].map { |d| d["data"]["myEvent"]["int"] }
335
+ # Delivered to ToParamUser
336
+ assert_equal [3], deliveries["3"].map { |d| d["data"]["myEvent"]["int"] }
337
+ # Delivered to Array of GlobalIDUser and ToParamUser
338
+ assert_equal [4], deliveries["4"].map { |d| d["data"]["myEvent"]["int"] }
339
+ end
340
+ end
341
+
286
342
  describe "errors" do
287
343
  class ErrorPayload
288
344
  def int
@@ -2,13 +2,11 @@
2
2
  require "spec_helper"
3
3
 
4
4
  describe GraphQL::Tracing::ActiveSupportNotificationsTracing do
5
- before do
6
- GraphQL::Tracing.install(GraphQL::Tracing::ActiveSupportNotificationsTracing)
7
- end
8
-
9
- after do
10
- GraphQL::Tracing.uninstall(GraphQL::Tracing::ActiveSupportNotificationsTracing)
11
- end
5
+ let(:schema) {
6
+ StarWars::Schema.redefine {
7
+ tracer GraphQL::Tracing::ActiveSupportNotificationsTracing
8
+ }
9
+ }
12
10
 
13
11
  it "pushes through AS::N" do
14
12
  traces = []
@@ -27,7 +25,7 @@ describe GraphQL::Tracing::ActiveSupportNotificationsTracing do
27
25
  last_id = StarWars::Base.last.id
28
26
 
29
27
  ActiveSupport::Notifications.subscribed(callback, /^graphql/) do
30
- star_wars_query(query_string, {
28
+ schema.execute(query_string, variables: {
31
29
  "id1" => first_id,
32
30
  "id2" => last_id,
33
31
  })
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+ require "spec_helper"
3
+
4
+ describe GraphQL::Tracing::PlatformTracing do
5
+ class CustomPlatformTracer < GraphQL::Tracing::PlatformTracing
6
+ TRACE = []
7
+
8
+ self.platform_keys = {
9
+ "lex" => "l",
10
+ "parse" => "p",
11
+ "validate" => "v",
12
+ "analyze_query" => "aq",
13
+ "analyze_multiplex" => "am",
14
+ "execute_multiplex" => "em",
15
+ "execute_query" => "eq",
16
+ "execute_query_lazy" => "eql",
17
+ }
18
+
19
+ def platform_field_key(type, field)
20
+ "#{type.name[0]}.#{field.name[0]}"
21
+ end
22
+
23
+ def platform_trace(platform_key, key, data)
24
+ TRACE << platform_key
25
+ yield
26
+ end
27
+ end
28
+
29
+ describe "calling a platform tracer" do
30
+ let(:schema) {
31
+ Dummy::Schema.redefine {
32
+ use(CustomPlatformTracer)
33
+ }
34
+ }
35
+
36
+ before do
37
+ CustomPlatformTracer::TRACE.clear
38
+ end
39
+
40
+ it "calls the platform's own method with its own keys" do
41
+ schema.execute(" { cheese(id: 1) { flavor } }")
42
+ expected_trace = [
43
+ "em",
44
+ "am",
45
+ "l",
46
+ "p",
47
+ "v",
48
+ "aq",
49
+ "eq",
50
+ "Q.c", # notice that the flavor is skipped
51
+ "eql",
52
+ ]
53
+ assert_equal expected_trace, CustomPlatformTracer::TRACE
54
+ end
55
+ end
56
+ end