opal-connect-rspec 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (685) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +5 -0
  3. data/.gitmodules +15 -0
  4. data/.travis.yml +51 -0
  5. data/.yardopts +5 -0
  6. data/CHANGELOG.md +54 -0
  7. data/Gemfile +19 -0
  8. data/README.md +325 -0
  9. data/Rakefile +169 -0
  10. data/config.ru +15 -0
  11. data/example/Gemfile +4 -0
  12. data/example/README.md +13 -0
  13. data/example/Rakefile +8 -0
  14. data/example/opal/user.rb +11 -0
  15. data/example/spec/user_spec.rb +15 -0
  16. data/gemfiles/opal_master.gemfile +18 -0
  17. data/lib/opal-rspec.rb +2 -0
  18. data/lib/opal/rspec.rb +39 -0
  19. data/lib/opal/rspec/cached_environment.rb +25 -0
  20. data/lib/opal/rspec/post_rack_locator.rb +20 -0
  21. data/lib/opal/rspec/pre_rack_locator.rb +32 -0
  22. data/lib/opal/rspec/rake_task.rb +132 -0
  23. data/lib/opal/rspec/sprockets_environment.rb +37 -0
  24. data/lib/opal/rspec/version.rb +5 -0
  25. data/opal-rspec.gemspec +21 -0
  26. data/opal/opal-rspec.rb +1 -0
  27. data/opal/opal/rspec.rb +23 -0
  28. data/opal/opal/rspec/async.rb +5 -0
  29. data/opal/opal/rspec/async/async_example.rb +96 -0
  30. data/opal/opal/rspec/async/example_group.rb +96 -0
  31. data/opal/opal/rspec/async/hooks.rb +10 -0
  32. data/opal/opal/rspec/async/legacy.rb +50 -0
  33. data/opal/opal/rspec/async/reporter.rb +9 -0
  34. data/opal/opal/rspec/fixes.rb +5 -0
  35. data/opal/opal/rspec/fixes/opal.rb +5 -0
  36. data/opal/opal/rspec/fixes/opal/class.rb +8 -0
  37. data/opal/opal/rspec/fixes/opal/compatibility.rb +228 -0
  38. data/opal/opal/rspec/fixes/opal/corelib.rb +3 -0
  39. data/opal/opal/rspec/fixes/opal/corelib/error.rb +61 -0
  40. data/opal/opal/rspec/fixes/opal/corelib/regexp.rb +92 -0
  41. data/opal/opal/rspec/fixes/opal/corelib/struct.rb +260 -0
  42. data/opal/opal/rspec/fixes/opal/kernel.rb +80 -0
  43. data/opal/opal/rspec/fixes/opal/stdlib.rb +2 -0
  44. data/opal/opal/rspec/fixes/opal/stdlib/pp.rb +23 -0
  45. data/opal/opal/rspec/fixes/opal/stdlib/set.rb +36 -0
  46. data/opal/opal/rspec/fixes/rspec.rb +7 -0
  47. data/opal/opal/rspec/fixes/rspec/caller_filter.rb +6 -0
  48. data/opal/opal/rspec/fixes/rspec/core.rb +9 -0
  49. data/opal/opal/rspec/fixes/rspec/core/configuration.rb +11 -0
  50. data/opal/opal/rspec/fixes/rspec/core/example.rb +20 -0
  51. data/opal/opal/rspec/fixes/rspec/core/example_group.rb +9 -0
  52. data/opal/opal/rspec/fixes/rspec/core/formatters.rb +6 -0
  53. data/opal/opal/rspec/fixes/rspec/core/formatters/backtrace_formatter.rb +20 -0
  54. data/opal/opal/rspec/fixes/rspec/core/formatters/console_codes.rb +11 -0
  55. data/opal/opal/rspec/fixes/rspec/core/formatters/deprecation_formatter.rb +20 -0
  56. data/opal/opal/rspec/fixes/rspec/core/formatters/generated_deprecation_message.rb +15 -0
  57. data/opal/opal/rspec/fixes/rspec/core/formatters/json_formatter.rb +10 -0
  58. data/opal/opal/rspec/fixes/rspec/core/formatters/loader.rb +38 -0
  59. data/opal/opal/rspec/fixes/rspec/core/metadata.rb +39 -0
  60. data/opal/opal/rspec/fixes/rspec/core/notifications.rb +3 -0
  61. data/opal/opal/rspec/fixes/rspec/core/notifications/examples_notification.rb +30 -0
  62. data/opal/opal/rspec/fixes/rspec/core/notifications/failed_example_notification.rb +20 -0
  63. data/opal/opal/rspec/fixes/rspec/core/notifications/summary_notification.rb +26 -0
  64. data/opal/opal/rspec/fixes/rspec/core/ordering.rb +1 -0
  65. data/opal/opal/rspec/fixes/rspec/core/ordering/random.rb +13 -0
  66. data/opal/opal/rspec/fixes/rspec/core/reporter.rb +14 -0
  67. data/opal/opal/rspec/fixes/rspec/core/warnings.rb +18 -0
  68. data/opal/opal/rspec/fixes/rspec/example_groups.rb +49 -0
  69. data/opal/opal/rspec/fixes/rspec/expectations.rb +2 -0
  70. data/opal/opal/rspec/fixes/rspec/expectations/fail_with.rb +21 -0
  71. data/opal/opal/rspec/fixes/rspec/expectations/syntax.rb +25 -0
  72. data/opal/opal/rspec/fixes/rspec/matchers.rb +2 -0
  73. data/opal/opal/rspec/fixes/rspec/matchers/built_in.rb +4 -0
  74. data/opal/opal/rspec/fixes/rspec/matchers/built_in/all.rb +10 -0
  75. data/opal/opal/rspec/fixes/rspec/matchers/built_in/compound.rb +15 -0
  76. data/opal/opal/rspec/fixes/rspec/matchers/built_in/start_and_end_with.rb +42 -0
  77. data/opal/opal/rspec/fixes/rspec/matchers/built_in/yield.rb +21 -0
  78. data/opal/opal/rspec/fixes/rspec/matchers/pretty.rb +15 -0
  79. data/opal/opal/rspec/fixes/rspec/mocks.rb +4 -0
  80. data/opal/opal/rspec/fixes/rspec/mocks/error_generator.rb +40 -0
  81. data/opal/opal/rspec/fixes/rspec/mocks/space.rb +37 -0
  82. data/opal/opal/rspec/fixes/rspec/mocks/test_double.rb +39 -0
  83. data/opal/opal/rspec/fixes/rspec/mocks/verifying_double.rb +29 -0
  84. data/opal/opal/rspec/fixes/rspec/support.rb +4 -0
  85. data/opal/opal/rspec/fixes/rspec/support/encoded_string.rb +10 -0
  86. data/opal/opal/rspec/fixes/rspec/support/fuzzy_matcher.rb +23 -0
  87. data/opal/opal/rspec/fixes/rspec/support/recursive_const_methods.rb +7 -0
  88. data/opal/opal/rspec/fixes/rspec/support/ruby_features.rb +8 -0
  89. data/opal/opal/rspec/fixes/rspec/support/warnings.rb +18 -0
  90. data/opal/opal/rspec/formatter/browser_formatter.rb +38 -0
  91. data/opal/opal/rspec/formatter/document_io.rb +27 -0
  92. data/opal/opal/rspec/formatter/element.rb +100 -0
  93. data/opal/opal/rspec/formatter/html_printer.rb +121 -0
  94. data/opal/opal/rspec/formatter/noop_flush_string_io.rb +9 -0
  95. data/opal/opal/rspec/formatter/opal_closed_tty_io.rb +27 -0
  96. data/opal/opal/rspec/pre_require_fixes.rb +11 -0
  97. data/opal/opal/rspec/requires.rb +145 -0
  98. data/opal/opal/rspec/runner.rb +91 -0
  99. data/opal/opal/rspec/spec_opts.rb.erb +28 -0
  100. data/opal/opal/rspec/sprockets_runner.rb.erb +13 -0
  101. data/rspec-core/benchmarks/call_v_yield.rb +81 -0
  102. data/rspec-core/benchmarks/check_inclusion.rb +125 -0
  103. data/rspec-core/benchmarks/define_method_v_attr_reader_v_def.rb +81 -0
  104. data/rspec-core/benchmarks/eager_vs_lazy_metadata.rb +126 -0
  105. data/rspec-core/benchmarks/eager_vs_lazy_metadata/define_examples.rb +22 -0
  106. data/rspec-core/benchmarks/filter_object.rb +35 -0
  107. data/rspec-core/benchmarks/index_v_take_while.rb +47 -0
  108. data/rspec-core/benchmarks/map_then_flatten_vs_flat_map_benchmarks.rb +94 -0
  109. data/rspec-core/benchmarks/require_relative_v_require.rb +75 -0
  110. data/rspec-core/benchmarks/respond_to_v_defined.rb +72 -0
  111. data/rspec-core/benchmarks/several_regexps_v_one_big_one.rb +86 -0
  112. data/rspec-core/benchmarks/sort_by_v_shuffle.rb +83 -0
  113. data/rspec-core/benchmarks/to_proc_v_not_to_proc.rb +539 -0
  114. data/rspec-core/features/step_definitions/additional_cli_steps.rb +126 -0
  115. data/rspec-core/features/step_definitions/core_standalone_steps.rb +12 -0
  116. data/rspec-core/features/support/env.rb +21 -0
  117. data/rspec-core/features/support/require_expect_syntax_in_aruba_specs.rb +29 -0
  118. data/rspec-core/features/support/rubinius.rb +6 -0
  119. data/rspec-core/lib/rspec/autorun.rb +2 -0
  120. data/rspec-core/lib/rspec/core.rb +169 -0
  121. data/rspec-core/lib/rspec/core/backport_random.rb +336 -0
  122. data/rspec-core/lib/rspec/core/backtrace_formatter.rb +66 -0
  123. data/rspec-core/lib/rspec/core/configuration.rb +1440 -0
  124. data/rspec-core/lib/rspec/core/configuration_options.rb +173 -0
  125. data/rspec-core/lib/rspec/core/drb.rb +111 -0
  126. data/rspec-core/lib/rspec/core/dsl.rb +93 -0
  127. data/rspec-core/lib/rspec/core/example.rb +502 -0
  128. data/rspec-core/lib/rspec/core/example_group.rb +606 -0
  129. data/rspec-core/lib/rspec/core/filter_manager.rb +259 -0
  130. data/rspec-core/lib/rspec/core/flat_map.rb +18 -0
  131. data/rspec-core/lib/rspec/core/formatters.rb +240 -0
  132. data/rspec-core/lib/rspec/core/formatters/base_formatter.rb +67 -0
  133. data/rspec-core/lib/rspec/core/formatters/base_text_formatter.rb +76 -0
  134. data/rspec-core/lib/rspec/core/formatters/console_codes.rb +64 -0
  135. data/rspec-core/lib/rspec/core/formatters/deprecation_formatter.rb +222 -0
  136. data/rspec-core/lib/rspec/core/formatters/documentation_formatter.rb +68 -0
  137. data/rspec-core/lib/rspec/core/formatters/helpers.rb +87 -0
  138. data/rspec-core/lib/rspec/core/formatters/html_formatter.rb +149 -0
  139. data/rspec-core/lib/rspec/core/formatters/html_printer.rb +403 -0
  140. data/rspec-core/lib/rspec/core/formatters/json_formatter.rb +94 -0
  141. data/rspec-core/lib/rspec/core/formatters/profile_formatter.rb +65 -0
  142. data/rspec-core/lib/rspec/core/formatters/progress_formatter.rb +28 -0
  143. data/rspec-core/lib/rspec/core/formatters/protocol.rb +163 -0
  144. data/rspec-core/lib/rspec/core/formatters/snippet_extractor.rb +104 -0
  145. data/rspec-core/lib/rspec/core/hooks.rb +591 -0
  146. data/rspec-core/lib/rspec/core/memoized_helpers.rb +472 -0
  147. data/rspec-core/lib/rspec/core/metadata.rb +437 -0
  148. data/rspec-core/lib/rspec/core/metadata_filter.rb +95 -0
  149. data/rspec-core/lib/rspec/core/minitest_assertions_adapter.rb +28 -0
  150. data/rspec-core/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
  151. data/rspec-core/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
  152. data/rspec-core/lib/rspec/core/mocking_adapters/null.rb +14 -0
  153. data/rspec-core/lib/rspec/core/mocking_adapters/rr.rb +31 -0
  154. data/rspec-core/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
  155. data/rspec-core/lib/rspec/core/notifications.rb +542 -0
  156. data/rspec-core/lib/rspec/core/option_parser.rb +222 -0
  157. data/rspec-core/lib/rspec/core/ordering.rb +155 -0
  158. data/rspec-core/lib/rspec/core/pending.rb +163 -0
  159. data/rspec-core/lib/rspec/core/project_initializer.rb +48 -0
  160. data/rspec-core/lib/rspec/core/project_initializer/spec/spec_helper.rb +89 -0
  161. data/rspec-core/lib/rspec/core/rake_task.rb +187 -0
  162. data/rspec-core/lib/rspec/core/reporter.rb +149 -0
  163. data/rspec-core/lib/rspec/core/ruby_project.rb +45 -0
  164. data/rspec-core/lib/rspec/core/runner.rb +158 -0
  165. data/rspec-core/lib/rspec/core/shared_context.rb +55 -0
  166. data/rspec-core/lib/rspec/core/shared_example_group.rb +182 -0
  167. data/rspec-core/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
  168. data/rspec-core/lib/rspec/core/version.rb +9 -0
  169. data/rspec-core/lib/rspec/core/warnings.rb +40 -0
  170. data/rspec-core/lib/rspec/core/world.rb +183 -0
  171. data/rspec-core/spec/command_line/order_spec.rb +213 -0
  172. data/rspec-core/spec/rspec/core/backtrace_formatter_spec.rb +306 -0
  173. data/rspec-core/spec/rspec/core/configuration_options_spec.rb +425 -0
  174. data/rspec-core/spec/rspec/core/configuration_spec.rb +1963 -0
  175. data/rspec-core/spec/rspec/core/drb_spec.rb +278 -0
  176. data/rspec-core/spec/rspec/core/dsl_spec.rb +85 -0
  177. data/rspec-core/spec/rspec/core/example_execution_result_spec.rb +142 -0
  178. data/rspec-core/spec/rspec/core/example_group_constants_spec.rb +16 -0
  179. data/rspec-core/spec/rspec/core/example_group_spec.rb +1621 -0
  180. data/rspec-core/spec/rspec/core/example_spec.rb +662 -0
  181. data/rspec-core/spec/rspec/core/failed_example_notification_spec.rb +25 -0
  182. data/rspec-core/spec/rspec/core/filter_manager_spec.rb +299 -0
  183. data/rspec-core/spec/rspec/core/formatters/base_text_formatter_spec.rb +182 -0
  184. data/rspec-core/spec/rspec/core/formatters/console_codes_spec.rb +65 -0
  185. data/rspec-core/spec/rspec/core/formatters/deprecation_formatter_spec.rb +225 -0
  186. data/rspec-core/spec/rspec/core/formatters/documentation_formatter_spec.rb +111 -0
  187. data/rspec-core/spec/rspec/core/formatters/helpers_spec.rb +104 -0
  188. data/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb +111 -0
  189. data/rspec-core/spec/rspec/core/formatters/json_formatter_spec.rb +183 -0
  190. data/rspec-core/spec/rspec/core/formatters/profile_formatter_spec.rb +99 -0
  191. data/rspec-core/spec/rspec/core/formatters/progress_formatter_spec.rb +55 -0
  192. data/rspec-core/spec/rspec/core/formatters/snippet_extractor_spec.rb +26 -0
  193. data/rspec-core/spec/rspec/core/formatters_spec.rb +160 -0
  194. data/rspec-core/spec/rspec/core/hooks_filtering_spec.rb +227 -0
  195. data/rspec-core/spec/rspec/core/hooks_spec.rb +447 -0
  196. data/rspec-core/spec/rspec/core/memoized_helpers_spec.rb +537 -0
  197. data/rspec-core/spec/rspec/core/metadata_filter_spec.rb +181 -0
  198. data/rspec-core/spec/rspec/core/metadata_spec.rb +642 -0
  199. data/rspec-core/spec/rspec/core/notifications_spec.rb +92 -0
  200. data/rspec-core/spec/rspec/core/option_parser_spec.rb +270 -0
  201. data/rspec-core/spec/rspec/core/ordering_spec.rb +102 -0
  202. data/rspec-core/spec/rspec/core/pending_example_spec.rb +221 -0
  203. data/rspec-core/spec/rspec/core/pending_spec.rb +8 -0
  204. data/rspec-core/spec/rspec/core/project_initializer_spec.rb +123 -0
  205. data/rspec-core/spec/rspec/core/rake_task_spec.rb +351 -0
  206. data/rspec-core/spec/rspec/core/random_spec.rb +47 -0
  207. data/rspec-core/spec/rspec/core/reporter_spec.rb +198 -0
  208. data/rspec-core/spec/rspec/core/resources/a_bar.rb +0 -0
  209. data/rspec-core/spec/rspec/core/resources/a_foo.rb +0 -0
  210. data/rspec-core/spec/rspec/core/resources/a_spec.rb +1 -0
  211. data/rspec-core/spec/rspec/core/resources/acceptance/bar.rb +0 -0
  212. data/rspec-core/spec/rspec/core/resources/acceptance/foo_spec.rb +0 -0
  213. data/rspec-core/spec/rspec/core/resources/custom_example_group_runner.rb +14 -0
  214. data/rspec-core/spec/rspec/core/resources/formatter_specs.rb +58 -0
  215. data/rspec-core/spec/rspec/core/resources/utf8_encoded.rb +9 -0
  216. data/rspec-core/spec/rspec/core/rspec_matchers_spec.rb +45 -0
  217. data/rspec-core/spec/rspec/core/ruby_project_spec.rb +26 -0
  218. data/rspec-core/spec/rspec/core/runner_spec.rb +309 -0
  219. data/rspec-core/spec/rspec/core/shared_context_spec.rb +102 -0
  220. data/rspec-core/spec/rspec/core/shared_example_group_spec.rb +268 -0
  221. data/rspec-core/spec/rspec/core/warnings_spec.rb +72 -0
  222. data/rspec-core/spec/rspec/core/world_spec.rb +142 -0
  223. data/rspec-core/spec/rspec/core_spec.rb +103 -0
  224. data/rspec-core/spec/spec_helper.rb +89 -0
  225. data/rspec-core/spec/support/config_options_helper.rb +13 -0
  226. data/rspec-core/spec/support/fake_minitest/minitest.rb +0 -0
  227. data/rspec-core/spec/support/fake_minitest/minitest/minitest_assertions.rb +4 -0
  228. data/rspec-core/spec/support/fake_minitest/test/unit/assertions.rb +6 -0
  229. data/rspec-core/spec/support/formatter_support.rb +263 -0
  230. data/rspec-core/spec/support/helper_methods.rb +26 -0
  231. data/rspec-core/spec/support/isolated_home_directory.rb +16 -0
  232. data/rspec-core/spec/support/matchers.rb +103 -0
  233. data/rspec-core/spec/support/mathn_integration_support.rb +12 -0
  234. data/rspec-core/spec/support/sandboxing.rb +50 -0
  235. data/rspec-core/spec/support/shared_example_groups.rb +43 -0
  236. data/rspec-core/spec/support/spec_files.rb +44 -0
  237. data/rspec-expectations/benchmarks/2.x_vs_3.x_matcher_dsl_implementation.rb +253 -0
  238. data/rspec-expectations/benchmarks/autoload_v_require.rb +25 -0
  239. data/rspec-expectations/benchmarks/cloning_matchers.rb +19 -0
  240. data/rspec-expectations/benchmarks/default_messages_as_methods_v_blocks.rb +27 -0
  241. data/rspec-expectations/benchmarks/example_spec.rb +9 -0
  242. data/rspec-expectations/benchmarks/include_v_superclass.rb +39 -0
  243. data/rspec-expectations/benchmarks/match_array/failing_with_distinct_items.rb +147 -0
  244. data/rspec-expectations/benchmarks/match_array/failing_with_duplicate_items.rb +122 -0
  245. data/rspec-expectations/benchmarks/match_array/passing_with_distinct_items.rb +154 -0
  246. data/rspec-expectations/benchmarks/match_array/passing_with_duplicate_items.rb +132 -0
  247. data/rspec-expectations/benchmarks/match_array/rubyprof/passing_with_distinct_items.rb +9 -0
  248. data/rspec-expectations/benchmarks/matcher_dsl_vs_classes.rb +180 -0
  249. data/rspec-expectations/benchmarks/method_to_proc.rb +72 -0
  250. data/rspec-expectations/benchmarks/set_vs_array_include.rb +68 -0
  251. data/rspec-expectations/features/step_definitions/additional_cli_steps.rb +22 -0
  252. data/rspec-expectations/features/support/disallow_certain_apis.rb +34 -0
  253. data/rspec-expectations/features/support/env.rb +21 -0
  254. data/rspec-expectations/features/support/rubinius.rb +6 -0
  255. data/rspec-expectations/lib/rspec/expectations.rb +68 -0
  256. data/rspec-expectations/lib/rspec/expectations/configuration.rb +147 -0
  257. data/rspec-expectations/lib/rspec/expectations/expectation_target.rb +119 -0
  258. data/rspec-expectations/lib/rspec/expectations/fail_with.rb +34 -0
  259. data/rspec-expectations/lib/rspec/expectations/handler.rb +167 -0
  260. data/rspec-expectations/lib/rspec/expectations/minitest_integration.rb +17 -0
  261. data/rspec-expectations/lib/rspec/expectations/syntax.rb +132 -0
  262. data/rspec-expectations/lib/rspec/expectations/version.rb +8 -0
  263. data/rspec-expectations/lib/rspec/matchers.rb +967 -0
  264. data/rspec-expectations/lib/rspec/matchers/aliased_matcher.rb +116 -0
  265. data/rspec-expectations/lib/rspec/matchers/built_in.rb +52 -0
  266. data/rspec-expectations/lib/rspec/matchers/built_in/all.rb +85 -0
  267. data/rspec-expectations/lib/rspec/matchers/built_in/base_matcher.rb +132 -0
  268. data/rspec-expectations/lib/rspec/matchers/built_in/be.rb +277 -0
  269. data/rspec-expectations/lib/rspec/matchers/built_in/be_between.rb +77 -0
  270. data/rspec-expectations/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
  271. data/rspec-expectations/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
  272. data/rspec-expectations/lib/rspec/matchers/built_in/be_within.rb +72 -0
  273. data/rspec-expectations/lib/rspec/matchers/built_in/change.rb +337 -0
  274. data/rspec-expectations/lib/rspec/matchers/built_in/compound.rb +258 -0
  275. data/rspec-expectations/lib/rspec/matchers/built_in/contain_exactly.rb +249 -0
  276. data/rspec-expectations/lib/rspec/matchers/built_in/cover.rb +24 -0
  277. data/rspec-expectations/lib/rspec/matchers/built_in/eq.rb +75 -0
  278. data/rspec-expectations/lib/rspec/matchers/built_in/eql.rb +34 -0
  279. data/rspec-expectations/lib/rspec/matchers/built_in/equal.rb +81 -0
  280. data/rspec-expectations/lib/rspec/matchers/built_in/exist.rb +86 -0
  281. data/rspec-expectations/lib/rspec/matchers/built_in/has.rb +101 -0
  282. data/rspec-expectations/lib/rspec/matchers/built_in/have_attributes.rb +84 -0
  283. data/rspec-expectations/lib/rspec/matchers/built_in/include.rb +105 -0
  284. data/rspec-expectations/lib/rspec/matchers/built_in/match.rb +29 -0
  285. data/rspec-expectations/lib/rspec/matchers/built_in/operators.rb +119 -0
  286. data/rspec-expectations/lib/rspec/matchers/built_in/output.rb +152 -0
  287. data/rspec-expectations/lib/rspec/matchers/built_in/raise_error.rb +174 -0
  288. data/rspec-expectations/lib/rspec/matchers/built_in/respond_to.rb +91 -0
  289. data/rspec-expectations/lib/rspec/matchers/built_in/satisfy.rb +39 -0
  290. data/rspec-expectations/lib/rspec/matchers/built_in/start_and_end_with.rb +82 -0
  291. data/rspec-expectations/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
  292. data/rspec-expectations/lib/rspec/matchers/built_in/yield.rb +420 -0
  293. data/rspec-expectations/lib/rspec/matchers/composable.rb +183 -0
  294. data/rspec-expectations/lib/rspec/matchers/dsl.rb +391 -0
  295. data/rspec-expectations/lib/rspec/matchers/generated_descriptions.rb +42 -0
  296. data/rspec-expectations/lib/rspec/matchers/matcher_delegator.rb +33 -0
  297. data/rspec-expectations/lib/rspec/matchers/matcher_protocol.rb +99 -0
  298. data/rspec-expectations/lib/rspec/matchers/pretty.rb +77 -0
  299. data/rspec-expectations/spec/rspec/expectations/configuration_spec.rb +226 -0
  300. data/rspec-expectations/spec/rspec/expectations/expectation_target_spec.rb +147 -0
  301. data/rspec-expectations/spec/rspec/expectations/extensions/kernel_spec.rb +69 -0
  302. data/rspec-expectations/spec/rspec/expectations/fail_with_spec.rb +73 -0
  303. data/rspec-expectations/spec/rspec/expectations/handler_spec.rb +200 -0
  304. data/rspec-expectations/spec/rspec/expectations/minitest_integration_spec.rb +25 -0
  305. data/rspec-expectations/spec/rspec/expectations/syntax_spec.rb +93 -0
  306. data/rspec-expectations/spec/rspec/expectations_spec.rb +15 -0
  307. data/rspec-expectations/spec/rspec/matchers/aliased_matcher_spec.rb +113 -0
  308. data/rspec-expectations/spec/rspec/matchers/aliases_spec.rb +455 -0
  309. data/rspec-expectations/spec/rspec/matchers/built_in/all_spec.rb +212 -0
  310. data/rspec-expectations/spec/rspec/matchers/built_in/base_matcher_spec.rb +140 -0
  311. data/rspec-expectations/spec/rspec/matchers/built_in/be_between_spec.rb +157 -0
  312. data/rspec-expectations/spec/rspec/matchers/built_in/be_instance_of_spec.rb +61 -0
  313. data/rspec-expectations/spec/rspec/matchers/built_in/be_kind_of_spec.rb +39 -0
  314. data/rspec-expectations/spec/rspec/matchers/built_in/be_spec.rb +685 -0
  315. data/rspec-expectations/spec/rspec/matchers/built_in/be_within_spec.rb +139 -0
  316. data/rspec-expectations/spec/rspec/matchers/built_in/change_spec.rb +829 -0
  317. data/rspec-expectations/spec/rspec/matchers/built_in/compound_spec.rb +537 -0
  318. data/rspec-expectations/spec/rspec/matchers/built_in/contain_exactly_spec.rb +556 -0
  319. data/rspec-expectations/spec/rspec/matchers/built_in/cover_spec.rb +67 -0
  320. data/rspec-expectations/spec/rspec/matchers/built_in/eq_spec.rb +176 -0
  321. data/rspec-expectations/spec/rspec/matchers/built_in/eql_spec.rb +39 -0
  322. data/rspec-expectations/spec/rspec/matchers/built_in/equal_spec.rb +130 -0
  323. data/rspec-expectations/spec/rspec/matchers/built_in/exist_spec.rb +139 -0
  324. data/rspec-expectations/spec/rspec/matchers/built_in/has_spec.rb +179 -0
  325. data/rspec-expectations/spec/rspec/matchers/built_in/have_attributes_spec.rb +177 -0
  326. data/rspec-expectations/spec/rspec/matchers/built_in/include_spec.rb +587 -0
  327. data/rspec-expectations/spec/rspec/matchers/built_in/match_spec.rb +100 -0
  328. data/rspec-expectations/spec/rspec/matchers/built_in/operators_spec.rb +250 -0
  329. data/rspec-expectations/spec/rspec/matchers/built_in/output_spec.rb +168 -0
  330. data/rspec-expectations/spec/rspec/matchers/built_in/raise_error_spec.rb +446 -0
  331. data/rspec-expectations/spec/rspec/matchers/built_in/respond_to_spec.rb +290 -0
  332. data/rspec-expectations/spec/rspec/matchers/built_in/satisfy_spec.rb +42 -0
  333. data/rspec-expectations/spec/rspec/matchers/built_in/start_and_end_with_spec.rb +347 -0
  334. data/rspec-expectations/spec/rspec/matchers/built_in/throw_symbol_spec.rb +133 -0
  335. data/rspec-expectations/spec/rspec/matchers/built_in/yield_spec.rb +643 -0
  336. data/rspec-expectations/spec/rspec/matchers/composable_spec.rb +77 -0
  337. data/rspec-expectations/spec/rspec/matchers/define_negated_matcher_spec.rb +199 -0
  338. data/rspec-expectations/spec/rspec/matchers/description_generation_spec.rb +189 -0
  339. data/rspec-expectations/spec/rspec/matchers/dsl_spec.rb +1036 -0
  340. data/rspec-expectations/spec/rspec/matchers/legacy_spec.rb +104 -0
  341. data/rspec-expectations/spec/rspec/matchers_spec.rb +108 -0
  342. data/rspec-expectations/spec/spec_helper.rb +94 -0
  343. data/rspec-expectations/spec/support/matchers.rb +54 -0
  344. data/rspec-expectations/spec/support/shared_examples.rb +101 -0
  345. data/rspec-mocks/benchmarks/double_creation.rb +66 -0
  346. data/rspec-mocks/benchmarks/each_value_v_values_each.rb +58 -0
  347. data/rspec-mocks/benchmarks/find_original_method_early.rb +64 -0
  348. data/rspec-mocks/benchmarks/method_defined_at_any_visibility.rb +101 -0
  349. data/rspec-mocks/benchmarks/thread_safety.rb +24 -0
  350. data/rspec-mocks/benchmarks/transfer_nested_constants.rb +77 -0
  351. data/rspec-mocks/features/step_definitions/additional_cli_steps.rb +21 -0
  352. data/rspec-mocks/features/support/disallow_certain_apis.rb +24 -0
  353. data/rspec-mocks/features/support/env.rb +22 -0
  354. data/rspec-mocks/features/support/rubinius.rb +6 -0
  355. data/rspec-mocks/lib/rspec/mocks.rb +126 -0
  356. data/rspec-mocks/lib/rspec/mocks/any_instance.rb +10 -0
  357. data/rspec-mocks/lib/rspec/mocks/any_instance/chain.rb +109 -0
  358. data/rspec-mocks/lib/rspec/mocks/any_instance/expect_chain_chain.rb +35 -0
  359. data/rspec-mocks/lib/rspec/mocks/any_instance/expectation_chain.rb +48 -0
  360. data/rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb +85 -0
  361. data/rspec-mocks/lib/rspec/mocks/any_instance/proxy.rb +116 -0
  362. data/rspec-mocks/lib/rspec/mocks/any_instance/recorder.rb +267 -0
  363. data/rspec-mocks/lib/rspec/mocks/any_instance/stub_chain.rb +45 -0
  364. data/rspec-mocks/lib/rspec/mocks/any_instance/stub_chain_chain.rb +27 -0
  365. data/rspec-mocks/lib/rspec/mocks/argument_list_matcher.rb +72 -0
  366. data/rspec-mocks/lib/rspec/mocks/argument_matchers.rb +282 -0
  367. data/rspec-mocks/lib/rspec/mocks/configuration.rb +157 -0
  368. data/rspec-mocks/lib/rspec/mocks/error_generator.rb +253 -0
  369. data/rspec-mocks/lib/rspec/mocks/example_methods.rb +379 -0
  370. data/rspec-mocks/lib/rspec/mocks/instance_method_stasher.rb +135 -0
  371. data/rspec-mocks/lib/rspec/mocks/marshal_extension.rb +41 -0
  372. data/rspec-mocks/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
  373. data/rspec-mocks/lib/rspec/mocks/matchers/have_received.rb +121 -0
  374. data/rspec-mocks/lib/rspec/mocks/matchers/receive.rb +106 -0
  375. data/rspec-mocks/lib/rspec/mocks/matchers/receive_message_chain.rb +66 -0
  376. data/rspec-mocks/lib/rspec/mocks/matchers/receive_messages.rb +71 -0
  377. data/rspec-mocks/lib/rspec/mocks/message_chain.rb +91 -0
  378. data/rspec-mocks/lib/rspec/mocks/message_expectation.rb +694 -0
  379. data/rspec-mocks/lib/rspec/mocks/method_double.rb +260 -0
  380. data/rspec-mocks/lib/rspec/mocks/method_reference.rb +155 -0
  381. data/rspec-mocks/lib/rspec/mocks/mutate_const.rb +324 -0
  382. data/rspec-mocks/lib/rspec/mocks/object_reference.rb +91 -0
  383. data/rspec-mocks/lib/rspec/mocks/order_group.rb +81 -0
  384. data/rspec-mocks/lib/rspec/mocks/proxy.rb +431 -0
  385. data/rspec-mocks/lib/rspec/mocks/space.rb +221 -0
  386. data/rspec-mocks/lib/rspec/mocks/standalone.rb +3 -0
  387. data/rspec-mocks/lib/rspec/mocks/syntax.rb +329 -0
  388. data/rspec-mocks/lib/rspec/mocks/targets.rb +97 -0
  389. data/rspec-mocks/lib/rspec/mocks/test_double.rb +135 -0
  390. data/rspec-mocks/lib/rspec/mocks/verifying_double.rb +127 -0
  391. data/rspec-mocks/lib/rspec/mocks/verifying_message_expecation.rb +62 -0
  392. data/rspec-mocks/lib/rspec/mocks/verifying_proxy.rb +171 -0
  393. data/rspec-mocks/lib/rspec/mocks/version.rb +9 -0
  394. data/rspec-mocks/spec/rspec/mocks/and_call_original_spec.rb +267 -0
  395. data/rspec-mocks/spec/rspec/mocks/and_return_spec.rb +21 -0
  396. data/rspec-mocks/spec/rspec/mocks/and_wrap_original_spec.rb +63 -0
  397. data/rspec-mocks/spec/rspec/mocks/and_yield_spec.rb +161 -0
  398. data/rspec-mocks/spec/rspec/mocks/any_instance/message_chains_spec.rb +39 -0
  399. data/rspec-mocks/spec/rspec/mocks/any_instance_spec.rb +1242 -0
  400. data/rspec-mocks/spec/rspec/mocks/argument_matchers_spec.rb +336 -0
  401. data/rspec-mocks/spec/rspec/mocks/array_including_matcher_spec.rb +39 -0
  402. data/rspec-mocks/spec/rspec/mocks/at_least_spec.rb +147 -0
  403. data/rspec-mocks/spec/rspec/mocks/at_most_spec.rb +113 -0
  404. data/rspec-mocks/spec/rspec/mocks/before_all_spec.rb +75 -0
  405. data/rspec-mocks/spec/rspec/mocks/block_return_value_spec.rb +68 -0
  406. data/rspec-mocks/spec/rspec/mocks/combining_implementation_instructions_spec.rb +196 -0
  407. data/rspec-mocks/spec/rspec/mocks/configuration_spec.rb +175 -0
  408. data/rspec-mocks/spec/rspec/mocks/double_spec.rb +830 -0
  409. data/rspec-mocks/spec/rspec/mocks/example_methods_spec.rb +11 -0
  410. data/rspec-mocks/spec/rspec/mocks/expiration_spec.rb +90 -0
  411. data/rspec-mocks/spec/rspec/mocks/hash_excluding_matcher_spec.rb +65 -0
  412. data/rspec-mocks/spec/rspec/mocks/hash_including_matcher_spec.rb +92 -0
  413. data/rspec-mocks/spec/rspec/mocks/instance_method_stasher_spec.rb +72 -0
  414. data/rspec-mocks/spec/rspec/mocks/marshal_extension_spec.rb +67 -0
  415. data/rspec-mocks/spec/rspec/mocks/matchers/have_received_spec.rb +513 -0
  416. data/rspec-mocks/spec/rspec/mocks/matchers/receive_message_chain_spec.rb +227 -0
  417. data/rspec-mocks/spec/rspec/mocks/matchers/receive_messages_spec.rb +148 -0
  418. data/rspec-mocks/spec/rspec/mocks/matchers/receive_spec.rb +525 -0
  419. data/rspec-mocks/spec/rspec/mocks/methods_spec.rb +24 -0
  420. data/rspec-mocks/spec/rspec/mocks/mock_expectation_error_spec.rb +20 -0
  421. data/rspec-mocks/spec/rspec/mocks/mock_ordering_spec.rb +112 -0
  422. data/rspec-mocks/spec/rspec/mocks/multiple_return_value_spec.rb +130 -0
  423. data/rspec-mocks/spec/rspec/mocks/mutate_const_spec.rb +561 -0
  424. data/rspec-mocks/spec/rspec/mocks/nil_expectation_warning_spec.rb +52 -0
  425. data/rspec-mocks/spec/rspec/mocks/null_object_double_spec.rb +135 -0
  426. data/rspec-mocks/spec/rspec/mocks/once_counts_spec.rb +50 -0
  427. data/rspec-mocks/spec/rspec/mocks/order_group_spec.rb +26 -0
  428. data/rspec-mocks/spec/rspec/mocks/partial_double_spec.rb +379 -0
  429. data/rspec-mocks/spec/rspec/mocks/partial_double_using_mocks_directly_spec.rb +83 -0
  430. data/rspec-mocks/spec/rspec/mocks/precise_counts_spec.rb +66 -0
  431. data/rspec-mocks/spec/rspec/mocks/serialization_spec.rb +89 -0
  432. data/rspec-mocks/spec/rspec/mocks/should_syntax_spec.rb +539 -0
  433. data/rspec-mocks/spec/rspec/mocks/space_spec.rb +242 -0
  434. data/rspec-mocks/spec/rspec/mocks/spy_spec.rb +127 -0
  435. data/rspec-mocks/spec/rspec/mocks/stash_spec.rb +43 -0
  436. data/rspec-mocks/spec/rspec/mocks/stub_chain_spec.rb +166 -0
  437. data/rspec-mocks/spec/rspec/mocks/stub_implementation_spec.rb +98 -0
  438. data/rspec-mocks/spec/rspec/mocks/stub_spec.rb +520 -0
  439. data/rspec-mocks/spec/rspec/mocks/stubbed_message_expectations_spec.rb +56 -0
  440. data/rspec-mocks/spec/rspec/mocks/syntax_agnostic_message_matchers_spec.rb +99 -0
  441. data/rspec-mocks/spec/rspec/mocks/syntax_spec.rb +7 -0
  442. data/rspec-mocks/spec/rspec/mocks/test_double_spec.rb +53 -0
  443. data/rspec-mocks/spec/rspec/mocks/thrice_counts_spec.rb +72 -0
  444. data/rspec-mocks/spec/rspec/mocks/to_ary_spec.rb +52 -0
  445. data/rspec-mocks/spec/rspec/mocks/twice_counts_spec.rb +64 -0
  446. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/class_double_with_class_loaded_spec.rb +118 -0
  447. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/class_double_with_class_not_loaded_spec.rb +58 -0
  448. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb +54 -0
  449. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/expected_arg_verification_spec.rb +81 -0
  450. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/instance_double_with_class_loaded_spec.rb +195 -0
  451. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/instance_double_with_class_not_loaded_spec.rb +57 -0
  452. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/method_visibility_spec.rb +129 -0
  453. data/rspec-mocks/spec/rspec/mocks/verifying_doubles/object_double_spec.rb +68 -0
  454. data/rspec-mocks/spec/rspec/mocks_spec.rb +199 -0
  455. data/rspec-mocks/spec/spec_helper.rb +131 -0
  456. data/rspec-mocks/spec/support/before_all_shared_example_group.rb +16 -0
  457. data/rspec-mocks/spec/support/doubled_classes.rb +74 -0
  458. data/rspec-mocks/spec/support/matchers.rb +15 -0
  459. data/rspec-support/benchmarks/caller.rb +81 -0
  460. data/rspec-support/lib/rspec/support.rb +76 -0
  461. data/rspec-support/lib/rspec/support/caller_filter.rb +63 -0
  462. data/rspec-support/lib/rspec/support/differ.rb +214 -0
  463. data/rspec-support/lib/rspec/support/directory_maker.rb +61 -0
  464. data/rspec-support/lib/rspec/support/encoded_string.rb +69 -0
  465. data/rspec-support/lib/rspec/support/fuzzy_matcher.rb +48 -0
  466. data/rspec-support/lib/rspec/support/hunk_generator.rb +47 -0
  467. data/rspec-support/lib/rspec/support/matcher_definition.rb +31 -0
  468. data/rspec-support/lib/rspec/support/method_signature_verifier.rb +272 -0
  469. data/rspec-support/lib/rspec/support/os.rb +18 -0
  470. data/rspec-support/lib/rspec/support/recursive_const_methods.rb +76 -0
  471. data/rspec-support/lib/rspec/support/ruby_features.rb +45 -0
  472. data/rspec-support/lib/rspec/support/spec.rb +72 -0
  473. data/rspec-support/lib/rspec/support/spec/deprecation_helpers.rb +60 -0
  474. data/rspec-support/lib/rspec/support/spec/formatting_support.rb +9 -0
  475. data/rspec-support/lib/rspec/support/spec/in_sub_process.rb +43 -0
  476. data/rspec-support/lib/rspec/support/spec/prevent_load_time_warnings.rb +44 -0
  477. data/rspec-support/lib/rspec/support/spec/shell_out.rb +69 -0
  478. data/rspec-support/lib/rspec/support/spec/stderr_splitter.rb +52 -0
  479. data/rspec-support/lib/rspec/support/spec/with_isolated_directory.rb +9 -0
  480. data/rspec-support/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
  481. data/rspec-support/lib/rspec/support/version.rb +7 -0
  482. data/rspec-support/lib/rspec/support/version_checker.rb +53 -0
  483. data/rspec-support/lib/rspec/support/warnings.rb +39 -0
  484. data/rspec-support/spec/rspec/support/caller_filter_spec.rb +66 -0
  485. data/rspec-support/spec/rspec/support/differ_spec.rb +322 -0
  486. data/rspec-support/spec/rspec/support/directory_maker_spec.rb +58 -0
  487. data/rspec-support/spec/rspec/support/encoded_string_spec.rb +86 -0
  488. data/rspec-support/spec/rspec/support/fuzzy_matcher_spec.rb +179 -0
  489. data/rspec-support/spec/rspec/support/method_signature_verifier_spec.rb +357 -0
  490. data/rspec-support/spec/rspec/support/os_spec.rb +36 -0
  491. data/rspec-support/spec/rspec/support/recursive_const_methods_spec.rb +49 -0
  492. data/rspec-support/spec/rspec/support/spec/in_sub_process_spec.rb +36 -0
  493. data/rspec-support/spec/rspec/support/spec/prevent_load_time_warnings_spec.rb +10 -0
  494. data/rspec-support/spec/rspec/support/spec/shell_out_spec.rb +44 -0
  495. data/rspec-support/spec/rspec/support/spec/stderr_splitter_spec.rb +60 -0
  496. data/rspec-support/spec/rspec/support/spec/with_isolated_std_err_spec.rb +21 -0
  497. data/rspec-support/spec/rspec/support/version_checker_spec.rb +29 -0
  498. data/rspec-support/spec/rspec/support/warnings_spec.rb +66 -0
  499. data/rspec-support/spec/rspec/support_spec.rb +119 -0
  500. data/rspec-support/spec/spec_helper.rb +2 -0
  501. data/rspec/lib/rspec.rb +3 -0
  502. data/rspec/lib/rspec/version.rb +5 -0
  503. data/spec/mri/integration/browser_spec.rb +31 -0
  504. data/spec/mri/integration/rack/sprockets_runner_js_errors.rb.erb +20 -0
  505. data/spec/mri/integration/spec_opts_spec.rb +81 -0
  506. data/spec/mri/unit/opal/rspec/browser_formatter_spec.rb +35 -0
  507. data/spec/mri/unit/opal/rspec/cached_environment_spec.rb +85 -0
  508. data/spec/mri/unit/opal/rspec/opal/browser_formatter_spec.rb +14 -0
  509. data/spec/mri/unit/opal/rspec/rack/config.ru +12 -0
  510. data/spec/mri/unit/opal/rspec/rake_task_spec.rb +261 -0
  511. data/spec/mri/unit/opal/rspec/sprockets_environment_spec.rb +55 -0
  512. data/spec/mri/unit/opal/rspec/temp_dir_helper.rb +19 -0
  513. data/spec/opal/after_hooks_spec.rb +140 -0
  514. data/spec/opal/around_hooks_spec.rb +164 -0
  515. data/spec/opal/async_spec.rb +184 -0
  516. data/spec/opal/before_hooks_spec.rb +183 -0
  517. data/spec/opal/example_spec.rb +174 -0
  518. data/spec/opal/expected_failures.txt +40 -0
  519. data/spec/opal/matchers_spec.rb +205 -0
  520. data/spec/opal/mock_spec.rb +63 -0
  521. data/spec/opal/should_syntax_spec.rb +17 -0
  522. data/spec/opal/skip_pending_spec.rb +43 -0
  523. data/spec/opal/subject_spec.rb +87 -0
  524. data/spec/other/color_on_by_default_spec.rb +9 -0
  525. data/spec/other/dummy_spec.rb +5 -0
  526. data/spec/other/formatter_dependency.rb +3 -0
  527. data/spec/other/ignored_spec.opal +5 -0
  528. data/spec/other/test_formatter.rb +9 -0
  529. data/spec/rspec/core/config.rb +5 -0
  530. data/spec/rspec/core/config.ru +4 -0
  531. data/spec/rspec/core/core_spec_loader.rb +46 -0
  532. data/spec/rspec/core/filter/core/async/example_group.txt +13 -0
  533. data/spec/rspec/core/filter/core/async/hooks.rb +12 -0
  534. data/spec/rspec/core/filter/core/async/memoized_helpers.txt +3 -0
  535. data/spec/rspec/core/filter/core/async/metadata.txt +2 -0
  536. data/spec/rspec/core/filter/core/bugs/filter_manager.txt +4 -0
  537. data/spec/rspec/core/filter/core/bugs/formatters.txt +4 -0
  538. data/spec/rspec/core/filter/core/bugs/memoized_helpers.rb +11 -0
  539. data/spec/rspec/core/filter/core/bugs/metadata.txt +5 -0
  540. data/spec/rspec/core/filter/core/bugs/sandbox/subject_issue_test.rb +328 -0
  541. data/spec/rspec/core/filter/core/bugs/warnings_deprecations.txt +3 -0
  542. data/spec/rspec/core/filter/core/unsupported/core.txt +5 -0
  543. data/spec/rspec/core/filter/core/unsupported/example.txt +7 -0
  544. data/spec/rspec/core/filter/core/unsupported/example_group.txt +13 -0
  545. data/spec/rspec/core/filter/core/unsupported/filter_manager.txt +7 -0
  546. data/spec/rspec/core/filter/core/unsupported/formatters.txt +27 -0
  547. data/spec/rspec/core/filter/core/unsupported/hooks.txt +2 -0
  548. data/spec/rspec/core/filter/core/unsupported/memoized_helpers.txt +6 -0
  549. data/spec/rspec/core/filter/core/unsupported/metadata.txt +14 -0
  550. data/spec/rspec/core/filter/core/unsupported/metadata_filter.txt +2 -0
  551. data/spec/rspec/core/filter/core/unsupported/notifications.txt +8 -0
  552. data/spec/rspec/core/filter/core/unsupported/world.txt +3 -0
  553. data/spec/rspec/core/fixes/missing_constants.rb +20 -0
  554. data/spec/rspec/core/fixes/opal_itself.rb +38 -0
  555. data/spec/rspec/core/fixes/shared_examples.rb +3 -0
  556. data/spec/rspec/core/opal_alternates/rspec/core/example_group_spec.rb +145 -0
  557. data/spec/rspec/core/opal_alternates/rspec/core/failed_example_notification_spec.rb +31 -0
  558. data/spec/rspec/core/opal_alternates/rspec/core/hooks_spec.rb +113 -0
  559. data/spec/rspec/core/opal_alternates/rspec/core/memoized_helpers_spec.rb +36 -0
  560. data/spec/rspec/core/opal_alternates/rspec/core/metadata_spec.rb +48 -0
  561. data/spec/rspec/core/require_specs.rb +25 -0
  562. data/spec/rspec/core/sandboxing.rb +72 -0
  563. data/spec/rspec/core/spec_files_exclude.txt +41 -0
  564. data/spec/rspec/expectations/config.rb +16 -0
  565. data/spec/rspec/expectations/config.ru +4 -0
  566. data/spec/rspec/expectations/expectation_spec_loader.rb +110 -0
  567. data/spec/rspec/expectations/filter/bugs/aliased_matcher.txt +2 -0
  568. data/spec/rspec/expectations/filter/bugs/aliases.rb +13 -0
  569. data/spec/rspec/expectations/filter/bugs/base_matcher.txt +2 -0
  570. data/spec/rspec/expectations/filter/bugs/be.rb +4 -0
  571. data/spec/rspec/expectations/filter/bugs/be_instance_of.rb +7 -0
  572. data/spec/rspec/expectations/filter/bugs/be_spec.txt +2 -0
  573. data/spec/rspec/expectations/filter/bugs/configuration.txt +8 -0
  574. data/spec/rspec/expectations/filter/bugs/contain_exactly.rb +13 -0
  575. data/spec/rspec/expectations/filter/bugs/define_negated_matcher.rb +9 -0
  576. data/spec/rspec/expectations/filter/bugs/description_generation.rb +4 -0
  577. data/spec/rspec/expectations/filter/bugs/dsl.txt +14 -0
  578. data/spec/rspec/expectations/filter/bugs/equal.txt +3 -0
  579. data/spec/rspec/expectations/filter/bugs/expectation_target.txt +2 -0
  580. data/spec/rspec/expectations/filter/bugs/expectations.txt +2 -0
  581. data/spec/rspec/expectations/filter/bugs/have_attributes.rb +8 -0
  582. data/spec/rspec/expectations/filter/bugs/include.rb +4 -0
  583. data/spec/rspec/expectations/filter/bugs/operators.txt +2 -0
  584. data/spec/rspec/expectations/filter/bugs/raise_error.txt +2 -0
  585. data/spec/rspec/expectations/filter/bugs/respond_to.rb +13 -0
  586. data/spec/rspec/expectations/filter/bugs/sandbox/undef.rb +20 -0
  587. data/spec/rspec/expectations/filter/unsupported/aliases.txt +5 -0
  588. data/spec/rspec/expectations/filter/unsupported/be.txt +2 -0
  589. data/spec/rspec/expectations/filter/unsupported/be_instance_of.txt +3 -0
  590. data/spec/rspec/expectations/filter/unsupported/change.txt +2 -0
  591. data/spec/rspec/expectations/filter/unsupported/configuration.txt +2 -0
  592. data/spec/rspec/expectations/filter/unsupported/contain_exactly.txt +2 -0
  593. data/spec/rspec/expectations/filter/unsupported/description_generation.txt +6 -0
  594. data/spec/rspec/expectations/filter/unsupported/dsl.txt +8 -0
  595. data/spec/rspec/expectations/filter/unsupported/eq.txt +10 -0
  596. data/spec/rspec/expectations/filter/unsupported/equal.txt +3 -0
  597. data/spec/rspec/expectations/filter/unsupported/expectation_target.txt +2 -0
  598. data/spec/rspec/expectations/filter/unsupported/expectations.txt +8 -0
  599. data/spec/rspec/expectations/filter/unsupported/has.txt +2 -0
  600. data/spec/rspec/expectations/filter/unsupported/include.txt +3 -0
  601. data/spec/rspec/expectations/filter/unsupported/match.txt +2 -0
  602. data/spec/rspec/expectations/filter/unsupported/matchers.txt +11 -0
  603. data/spec/rspec/expectations/filter/unsupported/output.txt +14 -0
  604. data/spec/rspec/expectations/filter/unsupported/raise_error.txt +3 -0
  605. data/spec/rspec/expectations/filter/unsupported/respond_to.rb +5 -0
  606. data/spec/rspec/expectations/filter/unsupported/syntax.txt +3 -0
  607. data/spec/rspec/expectations/filter/unsupported/yield.txt +2 -0
  608. data/spec/rspec/expectations/fixes/example_patches.rb +32 -0
  609. data/spec/rspec/expectations/fixes/missing_constants.rb +12 -0
  610. data/spec/rspec/expectations/fixes/not_compatible.rb +6 -0
  611. data/spec/rspec/expectations/fixes/opal_itself.rb +140 -0
  612. data/spec/rspec/expectations/opal_alternates/be_instance_of_spec.rb +11 -0
  613. data/spec/rspec/expectations/opal_alternates/dsl_spec.rb +66 -0
  614. data/spec/rspec/expectations/opal_alternates/expectation_target_spec.rb +21 -0
  615. data/spec/rspec/expectations/opal_alternates/yield_spec.rb +11 -0
  616. data/spec/rspec/expectations/require_specs.rb +16 -0
  617. data/spec/rspec/expectations/shared_examples.rb +47 -0
  618. data/spec/rspec/expectations/spec_files_exclude.txt +2 -0
  619. data/spec/rspec/expectations/spec_helper_opal.rb +13 -0
  620. data/spec/rspec/filter_processor.rb +77 -0
  621. data/spec/rspec/mocks/config.ru +4 -0
  622. data/spec/rspec/mocks/filter/bugs/and_call_original.txt +9 -0
  623. data/spec/rspec/mocks/filter/bugs/and_wrap_original.txt +2 -0
  624. data/spec/rspec/mocks/filter/bugs/any_instance.rb +24 -0
  625. data/spec/rspec/mocks/filter/bugs/argument_matchers.rb +3 -0
  626. data/spec/rspec/mocks/filter/bugs/configuration.txt +2 -0
  627. data/spec/rspec/mocks/filter/bugs/double.txt +3 -0
  628. data/spec/rspec/mocks/filter/bugs/expiration.txt +2 -0
  629. data/spec/rspec/mocks/filter/bugs/instance_method_stasher.txt +2 -0
  630. data/spec/rspec/mocks/filter/bugs/methods.rb +5 -0
  631. data/spec/rspec/mocks/filter/bugs/mocks.txt +6 -0
  632. data/spec/rspec/mocks/filter/bugs/mutate_const.txt +2 -0
  633. data/spec/rspec/mocks/filter/bugs/partial_double.rb +8 -0
  634. data/spec/rspec/mocks/filter/bugs/receive.txt +5 -0
  635. data/spec/rspec/mocks/filter/bugs/should_syntax.txt +5 -0
  636. data/spec/rspec/mocks/filter/bugs/space.txt +2 -0
  637. data/spec/rspec/mocks/filter/bugs/spy.txt +5 -0
  638. data/spec/rspec/mocks/filter/bugs/stub_implementation.rb +9 -0
  639. data/spec/rspec/mocks/filter/unsupported/and_call_original.txt +5 -0
  640. data/spec/rspec/mocks/filter/unsupported/and_return.txt +2 -0
  641. data/spec/rspec/mocks/filter/unsupported/any_instance.rb +6 -0
  642. data/spec/rspec/mocks/filter/unsupported/argument_matchers.rb +10 -0
  643. data/spec/rspec/mocks/filter/unsupported/combining_implementation_instructions.rb +9 -0
  644. data/spec/rspec/mocks/filter/unsupported/double.rb +16 -0
  645. data/spec/rspec/mocks/filter/unsupported/expected_arg_verification.txt +2 -0
  646. data/spec/rspec/mocks/filter/unsupported/have_received.txt +2 -0
  647. data/spec/rspec/mocks/filter/unsupported/instance_double_with_class_loaded.txt +8 -0
  648. data/spec/rspec/mocks/filter/unsupported/mocks.rb +8 -0
  649. data/spec/rspec/mocks/filter/unsupported/nil_expectation_warning.rb +8 -0
  650. data/spec/rspec/mocks/filter/unsupported/partial_double.rb +6 -0
  651. data/spec/rspec/mocks/filter/unsupported/receive.txt +13 -0
  652. data/spec/rspec/mocks/filter/unsupported/receive_message_chain.rb +4 -0
  653. data/spec/rspec/mocks/filter/unsupported/receive_messages.txt +2 -0
  654. data/spec/rspec/mocks/filter/unsupported/should_syntax.txt +1 -0
  655. data/spec/rspec/mocks/filter/unsupported/space.rb +7 -0
  656. data/spec/rspec/mocks/filter/unsupported/stub.rb +7 -0
  657. data/spec/rspec/mocks/fixes/doubled_classes.rb +76 -0
  658. data/spec/rspec/mocks/fixes/missing_constants.rb +3 -0
  659. data/spec/rspec/mocks/fixes/opal_itself.rb +59 -0
  660. data/spec/rspec/mocks/mocks_spec_loader.rb +91 -0
  661. data/spec/rspec/mocks/require_specs.rb +15 -0
  662. data/spec/rspec/mocks/spec_files_exclude.txt +11 -0
  663. data/spec/rspec/mocks/spec_helper_opal.rb +129 -0
  664. data/spec/rspec/opal_rspec_spec_loader.rb +359 -0
  665. data/spec/rspec/shared/opal/fixes/deprecation_helpers.rb +31 -0
  666. data/spec/rspec/shared/opal/fixes/rspec_helpers.rb +6 -0
  667. data/spec/rspec/shared/opal/progress_json_formatter.rb +29 -0
  668. data/spec/rspec/support/config.rb +5 -0
  669. data/spec/rspec/support/config.ru +4 -0
  670. data/spec/rspec/support/filter/bugs/recursive_const_methods.txt +3 -0
  671. data/spec/rspec/support/filter/bugs/sandbox/basic_object.rb +30 -0
  672. data/spec/rspec/support/filter/bugs/stderr_splitter_spec.txt +2 -0
  673. data/spec/rspec/support/filter/bugs/support.txt +2 -0
  674. data/spec/rspec/support/filter/unsupported/fuzzy_matcher.txt +2 -0
  675. data/spec/rspec/support/filter/unsupported/support.rb +7 -0
  676. data/spec/rspec/support/filter/unsupported/warnings.txt +6 -0
  677. data/spec/rspec/support/fixes/missing_constants.rb +3 -0
  678. data/spec/rspec/support/fixes/opal_itself.rb +13 -0
  679. data/spec/rspec/support/require_specs.rb +15 -0
  680. data/spec/rspec/support/spec_files_exclude.txt +26 -0
  681. data/spec/rspec/support/spec_helper.rb +27 -0
  682. data/spec/rspec/support/support_spec_loader.rb +38 -0
  683. data/util/create_requires.rb +49 -0
  684. data/vendor/spec_runner.js +64 -0
  685. metadata +774 -0
@@ -0,0 +1,446 @@
1
+ RSpec.describe "expect { ... }.to raise_error" do
2
+ it_behaves_like("an RSpec matcher", :valid_value => lambda { raise "boom" },
3
+ :invalid_value => lambda { }) do
4
+ let(:matcher) { raise_error }
5
+ end
6
+
7
+ it "passes if anything is raised" do
8
+ expect {raise}.to raise_error
9
+ end
10
+
11
+ it "passes if an error instance is expected" do
12
+ s = StandardError.new
13
+ expect {raise s}.to raise_error(s)
14
+ end
15
+
16
+ it "fails if a different error instance is thrown from the one that is expected" do
17
+ s = StandardError.new("Error 1")
18
+ to_raise = StandardError.new("Error 2")
19
+ expect do
20
+ expect {raise to_raise}.to raise_error(s)
21
+ end.to fail_with(Regexp.new("expected #{s.inspect}, got #{to_raise.inspect} with backtrace"))
22
+ end
23
+
24
+ it "passes if an error class is expected and an instance of that class is thrown" do
25
+ s = StandardError.new :bees
26
+
27
+ expect { raise s }.to raise_error(StandardError)
28
+ end
29
+
30
+ it "fails if nothing is raised" do
31
+ expect {
32
+ expect {}.to raise_error
33
+ }.to fail_with("expected Exception but nothing was raised")
34
+ end
35
+ end
36
+
37
+ RSpec.describe "raise_exception aliased to raise_error" do
38
+ it "passes if anything is raised" do
39
+ expect {raise}.to raise_exception
40
+ end
41
+ end
42
+
43
+ RSpec.describe "expect { ... }.to raise_error {|err| ... }" do
44
+ it "passes if there is an error" do
45
+ ran = false
46
+ expect { non_existent_method }.to raise_error {|e|
47
+ ran = true
48
+ }
49
+ expect(ran).to be_truthy
50
+ end
51
+
52
+ it "passes the error to the block" do
53
+ error = nil
54
+ expect { non_existent_method }.to raise_error {|e|
55
+ error = e
56
+ }
57
+ expect(error).to be_kind_of(NameError)
58
+ end
59
+ end
60
+
61
+ RSpec.describe "expect { ... }.to raise_error do |err| ... end" do
62
+ it "passes the error to the block" do
63
+ error = nil
64
+ expect { non_existent_method }.to raise_error do |e|
65
+ error = e
66
+ end
67
+ expect(error).to be_kind_of(NameError)
68
+ end
69
+ end
70
+
71
+ RSpec.describe "expect { ... }.to(raise_error { |err| ... }) do |err| ... end" do
72
+ it "passes the error only to the block taken directly by #raise_error" do
73
+ error_passed_to_curly = nil
74
+ error_passed_to_do_end = nil
75
+
76
+ expect { non_existent_method }.to(raise_error { |e| error_passed_to_curly = e }) do |e|
77
+ error_passed_to_do_end = e
78
+ end
79
+
80
+ expect(error_passed_to_curly).to be_kind_of(NameError)
81
+ expect(error_passed_to_do_end).to be_nil
82
+ end
83
+ end
84
+
85
+ RSpec.describe "expect { ... }.not_to raise_error" do
86
+
87
+ context "with a specific error class" do
88
+ it "is invalid" do
89
+ expect {
90
+ expect {"bees"}.not_to raise_error(RuntimeError)
91
+ }.to raise_error(/`expect \{ \}\.not_to raise_error\(SpecificErrorClass\)` is not valid/)
92
+ end
93
+ end
94
+
95
+ context "with no specific error class" do
96
+ it "passes if nothing is raised" do
97
+ expect {}.not_to raise_error
98
+ end
99
+
100
+ it "fails if anything is raised" do
101
+ expect {
102
+ expect { raise RuntimeError, "example message" }.not_to raise_error
103
+ }.to fail_with(/expected no Exception, got #<RuntimeError: example message>/)
104
+ end
105
+
106
+ it 'includes the backtrace of the error that was raised in the error message' do
107
+ expect {
108
+ expect { raise "boom" }.not_to raise_error
109
+ }.to raise_error { |e|
110
+ backtrace_line = "#{File.basename(__FILE__)}:#{__LINE__ - 2}"
111
+ expect(e.message).to include("with backtrace", backtrace_line)
112
+ }
113
+ end
114
+
115
+ it 'formats the backtrace using the configured backtrace formatter' do
116
+ allow(RSpec::Matchers.configuration.backtrace_formatter).
117
+ to receive(:format_backtrace).
118
+ and_return("formatted-backtrace")
119
+
120
+ expect {
121
+ expect { raise "boom" }.not_to raise_error
122
+ }.to raise_error { |e|
123
+ expect(e.message).to include("with backtrace", "formatted-backtrace")
124
+ }
125
+ end
126
+ end
127
+ end
128
+
129
+ RSpec.describe "expect { ... }.to raise_error(message)" do
130
+ it "passes if RuntimeError is raised with the right message" do
131
+ expect {raise 'blah'}.to raise_error('blah')
132
+ end
133
+
134
+ it "passes if RuntimeError is raised with a matching message" do
135
+ expect {raise 'blah'}.to raise_error(/blah/)
136
+ end
137
+
138
+ it "passes if any other error is raised with the right message" do
139
+ expect {raise NameError.new('blah')}.to raise_error('blah')
140
+ end
141
+
142
+ it "fails if RuntimeError error is raised with the wrong message" do
143
+ expect do
144
+ expect {raise 'blarg'}.to raise_error('blah')
145
+ end.to fail_with(/expected Exception with \"blah\", got #<RuntimeError: blarg>/)
146
+ end
147
+
148
+ it "fails if any other error is raised with the wrong message" do
149
+ expect do
150
+ expect {raise NameError.new('blarg')}.to raise_error('blah')
151
+ end.to fail_with(/expected Exception with \"blah\", got #<NameError: blarg>/)
152
+ end
153
+
154
+ it 'includes the backtrace of any other error in the failure message' do
155
+ expect {
156
+ expect { raise "boom" }.to raise_error(ArgumentError)
157
+ }.to raise_error { |e|
158
+ backtrace_line = "#{File.basename(__FILE__)}:#{__LINE__ - 2}"
159
+ expect(e.message).to include("with backtrace", backtrace_line)
160
+ }
161
+ end
162
+ end
163
+
164
+ RSpec.describe "expect { ... }.to raise_error.with_message(message)" do
165
+ it "raises an argument error if raise_error itself expects a message" do
166
+ expect {
167
+ expect { }.to raise_error("bees").with_message("sup")
168
+ }.to raise_error.with_message(/`expect \{ \}\.to raise_error\(message\)\.with_message\(message\)` is not valid/)
169
+ end
170
+
171
+ it "passes if RuntimeError is raised with the right message" do
172
+ expect {raise 'blah'}.to raise_error.with_message('blah')
173
+ end
174
+
175
+ it "passes if RuntimeError is raised with a matching message" do
176
+ expect {raise 'blah'}.to raise_error.with_message(/blah/)
177
+ end
178
+
179
+ it "passes if any other error is raised with the right message" do
180
+ expect {raise NameError.new('blah')}.to raise_error.with_message('blah')
181
+ end
182
+
183
+ it "fails if RuntimeError error is raised with the wrong message" do
184
+ expect do
185
+ expect {raise 'blarg'}.to raise_error.with_message('blah')
186
+ end.to fail_with(/expected Exception with \"blah\", got #<RuntimeError: blarg>/)
187
+ end
188
+
189
+ it "fails if any other error is raised with the wrong message" do
190
+ expect do
191
+ expect {raise NameError.new('blarg')}.to raise_error.with_message('blah')
192
+ end.to fail_with(/expected Exception with \"blah\", got #<NameError: blarg>/)
193
+ end
194
+ end
195
+
196
+ RSpec.describe "expect { ... }.not_to raise_error(message)" do
197
+ it "is invalid" do
198
+ expect {
199
+ expect {raise 'blarg'}.not_to raise_error(/blah/)
200
+ }.to raise_error(/`expect \{ \}\.not_to raise_error\(message\)` is not valid/)
201
+ end
202
+ end
203
+
204
+ RSpec.describe "expect { ... }.to raise_error(NamedError)" do
205
+ it "passes if named error is raised" do
206
+ expect { non_existent_method }.to raise_error(NameError)
207
+ end
208
+
209
+ it "fails if nothing is raised" do
210
+ expect {
211
+ expect { }.to raise_error(NameError)
212
+ }.to fail_with(/expected NameError but nothing was raised/)
213
+ end
214
+
215
+ it "fails if another error is raised (NameError)" do
216
+ expect {
217
+ expect { raise RuntimeError, "example message" }.to raise_error(NameError)
218
+ }.to fail_with(/expected NameError, got #<RuntimeError: example message>/)
219
+ end
220
+
221
+ it "fails if another error is raised (NameError)" do
222
+ expect {
223
+ expect { load "non/existent/file" }.to raise_error(NameError)
224
+ }.to fail_with(/expected NameError, got #<LoadError/)
225
+ end
226
+ end
227
+
228
+ RSpec.describe "expect { ... }.not_to raise_error(NamedError)" do
229
+ it "is invalid" do
230
+ expect {
231
+ expect { }.not_to raise_error(NameError)
232
+ }.to raise_error(/`expect \{ \}\.not_to raise_error\(SpecificErrorClass\)` is not valid/)
233
+ end
234
+ end
235
+
236
+ RSpec.describe "expect { ... }.to raise_error(NamedError, error_message) with String" do
237
+ it "passes if named error is raised with same message" do
238
+ expect { raise "example message" }.to raise_error(RuntimeError, "example message")
239
+ end
240
+
241
+ it "fails if nothing is raised" do
242
+ expect {
243
+ expect {}.to raise_error(RuntimeError, "example message")
244
+ }.to fail_with(/expected RuntimeError with \"example message\" but nothing was raised/)
245
+ end
246
+
247
+ it "fails if incorrect error is raised" do
248
+ expect {
249
+ expect { raise RuntimeError, "example message" }.to raise_error(NameError, "example message")
250
+ }.to fail_with(/expected NameError with \"example message\", got #<RuntimeError: example message>/)
251
+ end
252
+
253
+ it "fails if correct error is raised with incorrect message" do
254
+ expect {
255
+ expect { raise RuntimeError.new("not the example message") }.to raise_error(RuntimeError, "example message")
256
+ }.to fail_with(/expected RuntimeError with \"example message\", got #<RuntimeError: not the example message/)
257
+ end
258
+ end
259
+
260
+ RSpec.describe "expect { ... }.not_to raise_error(NamedError, error_message) with String" do
261
+ it "is invalid" do
262
+ expect {
263
+ expect {}.not_to raise_error(RuntimeError, "example message")
264
+ }.to raise_error(/`expect \{ \}\.not_to raise_error\(SpecificErrorClass, message\)` is not valid/)
265
+ end
266
+ end
267
+
268
+ RSpec.describe "expect { ... }.to raise_error(NamedError, error_message) with Regexp" do
269
+ it "passes if named error is raised with matching message" do
270
+ expect { raise "example message" }.to raise_error(RuntimeError, /ample mess/)
271
+ end
272
+
273
+ it "fails if nothing is raised" do
274
+ expect {
275
+ expect {}.to raise_error(RuntimeError, /ample mess/)
276
+ }.to fail_with(/expected RuntimeError with message matching \/ample mess\/ but nothing was raised/)
277
+ end
278
+
279
+ it "fails if incorrect error is raised" do
280
+ expect {
281
+ expect { raise RuntimeError, "example message" }.to raise_error(NameError, /ample mess/)
282
+ }.to fail_with(/expected NameError with message matching \/ample mess\/, got #<RuntimeError: example message>/)
283
+ end
284
+
285
+ it "fails if correct error is raised with incorrect message" do
286
+ expect {
287
+ expect { raise RuntimeError.new("not the example message") }.to raise_error(RuntimeError, /less than ample mess/)
288
+ }.to fail_with(/expected RuntimeError with message matching \/less than ample mess\/, got #<RuntimeError: not the example message>/)
289
+ end
290
+ end
291
+
292
+ RSpec.describe "expect { ... }.not_to raise_error(NamedError, error_message) with Regexp" do
293
+ it "is invalid" do
294
+ expect {
295
+ expect {}.not_to raise_error(RuntimeError, /ample mess/)
296
+ }.to raise_error(/`expect \{ \}\.not_to raise_error\(SpecificErrorClass, message\)` is not valid/)
297
+ end
298
+ end
299
+
300
+ RSpec.describe "expect { ... }.to raise_error(NamedError, error_message) { |err| ... }" do
301
+ it "yields exception if named error is raised with same message" do
302
+ ran = false
303
+
304
+ expect {
305
+ raise "example message"
306
+ }.to raise_error(RuntimeError, "example message") { |err|
307
+ ran = true
308
+ expect(err.class).to eq RuntimeError
309
+ expect(err.message).to eq "example message"
310
+ }
311
+
312
+ expect(ran).to be(true)
313
+ end
314
+
315
+ it "yielded block fails on it's own right" do
316
+ ran, passed = false, false
317
+
318
+ expect {
319
+ expect {
320
+ raise "example message"
321
+ }.to raise_error(RuntimeError, "example message") { |err|
322
+ ran = true
323
+ expect(5).to eq 4
324
+ passed = true
325
+ }
326
+ }.to fail_with(/expected: 4/m)
327
+
328
+ expect(ran).to be_truthy
329
+ expect(passed).to be_falsey
330
+ end
331
+
332
+ it "does NOT yield exception if no error was thrown" do
333
+ ran = false
334
+
335
+ expect {
336
+ expect {}.to raise_error(RuntimeError, "example message") { |err|
337
+ ran = true
338
+ }
339
+ }.to fail_with(/expected RuntimeError with \"example message\" but nothing was raised/)
340
+
341
+ expect(ran).to eq false
342
+ end
343
+
344
+ it "does not yield exception if error class is not matched" do
345
+ ran = false
346
+
347
+ expect {
348
+ expect {
349
+ raise "example message"
350
+ }.to raise_error(SyntaxError, "example message") { |err|
351
+ ran = true
352
+ }
353
+ }.to fail_with(/expected SyntaxError with \"example message\", got #<RuntimeError: example message>/)
354
+
355
+ expect(ran).to eq false
356
+ end
357
+
358
+ it "does NOT yield exception if error message is not matched" do
359
+ ran = false
360
+
361
+ expect {
362
+ expect {
363
+ raise "example message"
364
+ }.to raise_error(RuntimeError, "different message") { |err|
365
+ ran = true
366
+ }
367
+ }.to fail_with(/expected RuntimeError with \"different message\", got #<RuntimeError: example message>/)
368
+
369
+ expect(ran).to eq false
370
+ end
371
+ end
372
+
373
+ RSpec.describe "expect { ... }.not_to raise_error(NamedError, error_message) { |err| ... }" do
374
+ it "is invalid" do
375
+ expect {
376
+ expect {}.not_to raise_error(RuntimeError, "example message") { |err| }
377
+ }.to raise_error(/`expect \{ \}\.not_to raise_error\(SpecificErrorClass, message\)` is not valid/)
378
+ end
379
+ end
380
+
381
+ RSpec.describe "Composing matchers with `raise_error`" do
382
+ matcher :an_error_with_attribute do |attr|
383
+ chain :equal_to do |value|
384
+ @expected_value = value
385
+ end
386
+
387
+ match do |error|
388
+ error.__send__(attr) == @expected_value
389
+ end
390
+ end
391
+
392
+ class FooError < StandardError
393
+ def foo; :bar; end
394
+ end
395
+
396
+ describe "expect { }.to raise_error(matcher)" do
397
+ it 'passes when the matcher matches the raised error' do
398
+ expect { raise FooError }.to raise_error(an_error_with_attribute(:foo).equal_to(:bar))
399
+ end
400
+
401
+ it 'fails with a clear message when the matcher does not match the raised error' do
402
+ expect {
403
+ expect { raise FooError }.to raise_error(an_error_with_attribute(:foo).equal_to(3))
404
+ }.to fail_matching("expected an error with attribute :foo equal to 3, got #<FooError: FooError>")
405
+ end
406
+
407
+ it 'provides a description' do
408
+ description = raise_error(an_error_with_attribute(:foo).equal_to(3)).description
409
+ expect(description).to eq("raise an error with attribute :foo equal to 3")
410
+ end
411
+ end
412
+
413
+ describe "expect { }.to raise_error(ErrorClass, matcher)" do
414
+ it 'passes when the class and matcher match the raised error' do
415
+ expect { raise FooError, "food" }.to raise_error(FooError, a_string_including("foo"))
416
+ end
417
+
418
+ it 'fails with a clear message when the matcher does not match the raised error' do
419
+ expect {
420
+ expect { raise FooError, "food" }.to raise_error(FooError, a_string_including("bar"))
421
+ }.to fail_matching('expected FooError with a string including "bar", got #<FooError: food')
422
+ end
423
+
424
+ it 'provides a description' do
425
+ description = raise_error(FooError, a_string_including("foo")).description
426
+ expect(description).to eq('raise FooError with a string including "foo"')
427
+ end
428
+ end
429
+
430
+ describe "expect { }.to raise_error(ErrorClass).with_message(matcher)" do
431
+ it 'passes when the class and matcher match the raised error' do
432
+ expect { raise FooError, "food" }.to raise_error(FooError).with_message(a_string_including("foo"))
433
+ end
434
+
435
+ it 'fails with a clear message when the matcher does not match the raised error' do
436
+ expect {
437
+ expect { raise FooError, "food" }.to raise_error(FooError).with_message(a_string_including("bar"))
438
+ }.to fail_matching('expected FooError with a string including "bar", got #<FooError: food')
439
+ end
440
+
441
+ it 'provides a description' do
442
+ description = raise_error(FooError).with_message(a_string_including("foo")).description
443
+ expect(description).to eq('raise FooError with a string including "foo"')
444
+ end
445
+ end
446
+ end
@@ -0,0 +1,290 @@
1
+ RSpec.describe "expect(...).to respond_to(:sym)" do
2
+ it_behaves_like "an RSpec matcher", :valid_value => "s", :invalid_value => 5 do
3
+ let(:matcher) { respond_to(:upcase) }
4
+ end
5
+
6
+ it "passes if target responds to :sym" do
7
+ expect(Object.new).to respond_to(:methods)
8
+ end
9
+
10
+ it "fails if target does not respond to :sym" do
11
+ expect {
12
+ expect("this string").to respond_to(:some_method)
13
+ }.to fail_with(%q|expected "this string" to respond to :some_method|)
14
+ end
15
+ end
16
+
17
+ RSpec.describe "expect(...).to respond_to(:sym).with(1).argument" do
18
+ it "passes if target responds to :sym with 1 arg" do
19
+ obj = Object.new
20
+ def obj.foo(arg); end
21
+ expect(obj).to respond_to(:foo).with(1).argument
22
+ end
23
+
24
+ it "passes if target responds to any number of arguments" do
25
+ obj = Object.new
26
+ def obj.foo(*args); end
27
+ expect(obj).to respond_to(:foo).with(1).argument
28
+ end
29
+
30
+ it "passes if target responds to one or more arguments" do
31
+ obj = Object.new
32
+ def obj.foo(a, *args); end
33
+ expect(obj).to respond_to(:foo).with(1).argument
34
+ end
35
+
36
+ it "fails if target does not respond to :sym" do
37
+ obj = Object.new
38
+ expect {
39
+ expect(obj).to respond_to(:some_method).with(1).argument
40
+ }.to fail_with(/expected .* to respond to :some_method/)
41
+ end
42
+
43
+ it "fails if :sym expects 0 args" do
44
+ obj = Object.new
45
+ def obj.foo; end
46
+ expect {
47
+ expect(obj).to respond_to(:foo).with(1).argument
48
+ }.to fail_with(/expected #<Object.*> to respond to :foo with 1 argument/)
49
+ end
50
+
51
+ it "fails if :sym expects 2 args" do
52
+ obj = Object.new
53
+ def obj.foo(arg, arg2); end
54
+ expect {
55
+ expect(obj).to respond_to(:foo).with(1).argument
56
+ }.to fail_with(/expected #<Object.*> to respond to :foo with 1 argument/)
57
+ end
58
+
59
+ it "fails if :sym expects 2 or more args" do
60
+ obj = Object.new
61
+ def obj.foo(arg, arg2, *args); end
62
+ expect {
63
+ expect(obj).to respond_to(:foo).with(1).argument
64
+ }.to fail_with(/expected #<Object.*> to respond to :foo with 1 argument/)
65
+ end
66
+ end
67
+
68
+ RSpec.describe "expect(...).to respond_to(message1, message2)" do
69
+ it "passes if target responds to both messages" do
70
+ expect(Object.new).to respond_to('methods', 'inspect')
71
+ end
72
+
73
+ it "fails if target does not respond to first message" do
74
+ expect {
75
+ expect(Object.new).to respond_to('method_one', 'inspect')
76
+ }.to fail_with(/expected #<Object:.*> to respond to "method_one"/)
77
+ end
78
+
79
+ it "fails if target does not respond to second message" do
80
+ expect {
81
+ expect(Object.new).to respond_to('inspect', 'method_one')
82
+ }.to fail_with(/expected #<Object:.*> to respond to "method_one"/)
83
+ end
84
+
85
+ it "fails if target does not respond to either message" do
86
+ expect {
87
+ expect(Object.new).to respond_to('method_one', 'method_two')
88
+ }.to fail_with(/expected #<Object:.*> to respond to "method_one", "method_two"/)
89
+ end
90
+ end
91
+
92
+ RSpec.describe "expect(...).to respond_to(:sym).with(2).arguments" do
93
+ it "passes if target responds to :sym with 2 args" do
94
+ obj = Object.new
95
+ def obj.foo(a1, a2); end
96
+ expect(obj).to respond_to(:foo).with(2).arguments
97
+ end
98
+
99
+ it "passes if target responds to any number of arguments" do
100
+ obj = Object.new
101
+ def obj.foo(*args); end
102
+ expect(obj).to respond_to(:foo).with(2).arguments
103
+ end
104
+
105
+ it "passes if target responds to one or more arguments" do
106
+ obj = Object.new
107
+ def obj.foo(a, *args); end
108
+ expect(obj).to respond_to(:foo).with(2).arguments
109
+ end
110
+
111
+ it "passes if target responds to two or more arguments" do
112
+ obj = Object.new
113
+ def obj.foo(a, b, *args); end
114
+ expect(obj).to respond_to(:foo).with(2).arguments
115
+ end
116
+
117
+ it "fails if target does not respond to :sym" do
118
+ obj = Object.new
119
+ expect {
120
+ expect(obj).to respond_to(:some_method).with(2).arguments
121
+ }.to fail_with(/expected .* to respond to :some_method/)
122
+ end
123
+
124
+ it "fails if :sym expects 0 args" do
125
+ obj = Object.new
126
+ def obj.foo; end
127
+ expect {
128
+ expect(obj).to respond_to(:foo).with(2).arguments
129
+ }.to fail_with(/expected #<Object.*> to respond to :foo with 2 arguments/)
130
+ end
131
+
132
+ it "fails if :sym expects 1 args" do
133
+ obj = Object.new
134
+ def obj.foo(arg); end
135
+ expect {
136
+ expect(obj).to respond_to(:foo).with(2).arguments
137
+ }.to fail_with(/expected #<Object.*> to respond to :foo with 2 arguments/)
138
+ end
139
+
140
+ it "fails if :sym expects 3 or more args" do
141
+ obj = Object.new
142
+ def obj.foo(arg, arg2, arg3, *args); end
143
+ expect {
144
+ expect(obj).to respond_to(:foo).with(2).arguments
145
+ }.to fail_with(/expected #<Object.*> to respond to :foo with 2 arguments/)
146
+ end
147
+ end
148
+
149
+ RSpec.describe "expect(...).not_to respond_to(:sym)" do
150
+ it "passes if target does not respond to :sym" do
151
+ expect(Object.new).not_to respond_to(:some_method)
152
+ end
153
+
154
+ it "fails if target responds to :sym" do
155
+ expect {
156
+ expect(Object.new).not_to respond_to(:methods)
157
+ }.to fail_with(/expected #<Object:.*> not to respond to :methods/)
158
+ end
159
+ end
160
+
161
+ RSpec.describe "expect(...).not_to respond_to(:sym).with(1).argument" do
162
+ it "fails if target responds to :sym with 1 arg" do
163
+ obj = Object.new
164
+ def obj.foo(arg); end
165
+ expect {
166
+ expect(obj).not_to respond_to(:foo).with(1).argument
167
+ }.to fail_with(/expected #<Object:.*> not to respond to :foo with 1 argument/)
168
+ end
169
+
170
+ it "fails if target responds to :sym with any number of args" do
171
+ obj = Object.new
172
+ def obj.foo(*args); end
173
+ expect {
174
+ expect(obj).not_to respond_to(:foo).with(1).argument
175
+ }.to fail_with(/expected #<Object:.*> not to respond to :foo with 1 argument/)
176
+ end
177
+
178
+ it "fails if target responds to :sym with one or more args" do
179
+ obj = Object.new
180
+ def obj.foo(a, *args); end
181
+ expect {
182
+ expect(obj).not_to respond_to(:foo).with(1).argument
183
+ }.to fail_with(/expected #<Object:.*> not to respond to :foo with 1 argument/)
184
+ end
185
+
186
+ it "passes if target does not respond to :sym" do
187
+ obj = Object.new
188
+ expect(obj).not_to respond_to(:some_method).with(1).argument
189
+ end
190
+
191
+ it "passes if :sym expects 0 args" do
192
+ obj = Object.new
193
+ def obj.foo; end
194
+ expect(obj).not_to respond_to(:foo).with(1).argument
195
+ end
196
+
197
+ it "passes if :sym expects 2 args" do
198
+ obj = Object.new
199
+ def obj.foo(arg, arg2); end
200
+ expect(obj).not_to respond_to(:foo).with(1).argument
201
+ end
202
+
203
+ it "passes if :sym expects 2 or more args" do
204
+ obj = Object.new
205
+ def obj.foo(arg, arg2, *args); end
206
+ expect(obj).not_to respond_to(:foo).with(1).argument
207
+ end
208
+ end
209
+
210
+ RSpec.describe "expect(...).not_to respond_to(message1, message2)" do
211
+ it "passes if target does not respond to either message1 or message2" do
212
+ expect(Object.new).not_to respond_to(:some_method, :some_other_method)
213
+ end
214
+
215
+ it "fails if target responds to message1 but not message2" do
216
+ expect {
217
+ expect(Object.new).not_to respond_to(:object_id, :some_method)
218
+ }.to fail_with(/expected #<Object:.*> not to respond to :object_id/)
219
+ end
220
+
221
+ it "fails if target responds to message2 but not message1" do
222
+ expect {
223
+ expect(Object.new).not_to respond_to(:some_method, :object_id)
224
+ }.to fail_with(/expected #<Object:.*> not to respond to :object_id/)
225
+ end
226
+
227
+ it "fails if target responds to both message1 and message2" do
228
+ expect {
229
+ expect(Object.new).not_to respond_to(:class, :object_id)
230
+ }.to fail_with(/expected #<Object:.*> not to respond to :class, :object_id/)
231
+ end
232
+ end
233
+
234
+ RSpec.describe "expect(...).not_to respond_to(:sym).with(2).arguments" do
235
+ it "fails if target responds to :sym with 2 args" do
236
+ obj = Object.new
237
+ def obj.foo(a1, a2); end
238
+ expect {
239
+ expect(obj).not_to respond_to(:foo).with(2).arguments
240
+ }.to fail_with(/expected .* not to respond to :foo with 2 arguments/)
241
+ end
242
+
243
+ it "fails if target responds to :sym with any number args" do
244
+ obj = Object.new
245
+ def obj.foo(*args); end
246
+ expect {
247
+ expect(obj).not_to respond_to(:foo).with(2).arguments
248
+ }.to fail_with(/expected .* not to respond to :foo with 2 arguments/)
249
+ end
250
+
251
+ it "fails if target responds to :sym with one or more args" do
252
+ obj = Object.new
253
+ def obj.foo(a, *args); end
254
+ expect {
255
+ expect(obj).not_to respond_to(:foo).with(2).arguments
256
+ }.to fail_with(/expected .* not to respond to :foo with 2 arguments/)
257
+ end
258
+
259
+ it "fails if target responds to :sym with two or more args" do
260
+ obj = Object.new
261
+ def obj.foo(a, b, *args); end
262
+ expect {
263
+ expect(obj).not_to respond_to(:foo).with(2).arguments
264
+ }.to fail_with(/expected .* not to respond to :foo with 2 arguments/)
265
+ end
266
+
267
+ it "passes if target does not respond to :sym" do
268
+ obj = Object.new
269
+ expect(obj).not_to respond_to(:some_method).with(2).arguments
270
+ end
271
+
272
+ it "passes if :sym expects 0 args" do
273
+ obj = Object.new
274
+ def obj.foo; end
275
+ expect(obj).not_to respond_to(:foo).with(2).arguments
276
+ end
277
+
278
+ it "passes if :sym expects 2 args" do
279
+ obj = Object.new
280
+ def obj.foo(arg); end
281
+ expect(obj).not_to respond_to(:foo).with(2).arguments
282
+ end
283
+
284
+ it "passes if :sym expects 3 or more args" do
285
+ obj = Object.new
286
+ def obj.foo(a, b, c, *arg); end
287
+ expect(obj).not_to respond_to(:foo).with(2).arguments
288
+ end
289
+ end
290
+