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,643 @@
1
+ module YieldHelpers
2
+ # these helpers are prefixed with an underscore to prevent
3
+ # collisions with the matchers (some of which have the same names)
4
+ def _dont_yield
5
+ end
6
+
7
+ def _yield_with_no_args
8
+ yield
9
+ end
10
+
11
+ def _yield_with_args(*args)
12
+ yield(*args)
13
+ end
14
+ end
15
+
16
+ class InstanceEvaler
17
+
18
+ def yield_with_no_args(&block)
19
+ instance_exec(&block)
20
+ end
21
+
22
+ def yield_with_args(*args, &block)
23
+ instance_exec(*args, &block)
24
+ end
25
+
26
+ def each_arg(*args, &block)
27
+ args.each do |arg|
28
+ instance_exec(arg, &block)
29
+ end
30
+ end
31
+ end
32
+
33
+ RSpec.describe "yield_control matcher" do
34
+ include YieldHelpers
35
+ extend YieldHelpers
36
+
37
+ it_behaves_like "an RSpec matcher",
38
+ :valid_value => lambda { |b| _yield_with_no_args(&b) },
39
+ :invalid_value => lambda { |b| _dont_yield(&b) } do
40
+ let(:matcher) { yield_control }
41
+ end
42
+
43
+ it 'has a description' do
44
+ expect(yield_control.description).to eq("yield control")
45
+ end
46
+
47
+ describe "expect {...}.to yield_control" do
48
+ it 'passes if the block yields, regardless of the number of yielded arguments' do
49
+ expect { |b| _yield_with_no_args(&b) }.to yield_control
50
+ expect { |b| _yield_with_args(1, 2, &b) }.to yield_control
51
+ end
52
+
53
+ it 'passes if the block yields using instance_exec' do
54
+ expect { |b| InstanceEvaler.new.yield_with_no_args(&b) }.to yield_control
55
+ end
56
+
57
+ it 'fails if the block does not yield' do
58
+ expect {
59
+ expect { |b| _dont_yield(&b) }.to yield_control
60
+ }.to fail_with(/expected given block to yield control/)
61
+ end
62
+
63
+ it 'does not return a meaningful value from the block' do
64
+ val = nil
65
+ expect { |b| val = _yield_with_args(&b) }.to yield_control
66
+ expect(val).to be_nil
67
+ end
68
+
69
+ context "with exact count" do
70
+ it 'fails if the block yields wrong number of times' do
71
+ expect {
72
+ expect { |b| [1, 2, 3].each(&b) }.to yield_control.twice
73
+ }.to fail_with(/expected given block to yield control twice/)
74
+
75
+ expect {
76
+ expect { |b| [1, 2].each(&b) }.to yield_control.thrice
77
+ }.to fail_with(/expected given block to yield control 3 times/)
78
+ end
79
+
80
+ it 'passes if the block yields the specified number of times' do
81
+ expect { |b| [1].each(&b) }.to yield_control.once
82
+ expect { |b| [1, 2].each(&b) }.to yield_control.twice
83
+ expect { |b| [1, 2, 3].each(&b) }.to yield_control.thrice
84
+ expect { |b| [1, 2, 3, 4].each(&b) }.to yield_control.exactly(4).times
85
+ end
86
+ end
87
+
88
+ context "with at_least count" do
89
+ it 'passes if the block yields the given number of times' do
90
+ expect { |b| [1, 2].each(&b) }.to yield_control.at_least(2).times
91
+ expect { |b| [1, 2, 3].each(&b) }.to yield_control.at_least(3).times
92
+ end
93
+
94
+ it 'passes if the block yields more times' do
95
+ expect { |b| [1, 2, 3].each(&b) }.to yield_control.at_least(2).times
96
+ expect { |b| [1, 2, 3, 4].each(&b) }.to yield_control.at_least(3).times
97
+ end
98
+
99
+ it 'allows :once, :twice, and :thrice to be passed as counts' do
100
+ expect { |b| [1].each(&b) }.to yield_control.at_least(:once)
101
+ expect { |b| [1, 2].each(&b) }.to yield_control.at_least(:once)
102
+
103
+ expect {
104
+ expect { |b| [].each(&b) }.to yield_control.at_least(:once)
105
+ }.to fail_with(/at least once/)
106
+
107
+ expect { |b| [1, 2].each(&b) }.to yield_control.at_least(:twice)
108
+ expect { |b| [1, 2, 3].each(&b) }.to yield_control.at_least(:twice)
109
+
110
+ expect {
111
+ expect { |b| [1].each(&b) }.to yield_control.at_least(:twice)
112
+ }.to fail_with(/at least twice/)
113
+
114
+ expect { |b| [1, 2, 3].each(&b) }.to yield_control.at_least(:thrice)
115
+ expect { |b| [1, 2, 3, 4].each(&b) }.to yield_control.at_least(:thrice)
116
+
117
+ expect {
118
+ expect { |b| [1, 2].each(&b) }.to yield_control.at_least(:thrice)
119
+ }.to fail_with(/at least 3 times/)
120
+ end
121
+
122
+ it 'fails if the block yields too few times' do
123
+ expect {
124
+ expect { |b| _yield_with_no_args(&b) }.to yield_control.at_least(2).times
125
+ }.to fail_with(/expected given block to yield control at least twice/)
126
+ end
127
+ end
128
+
129
+ context "with at_most count" do
130
+ it 'passes if the block yields the given number of times' do
131
+ expect { |b| [1, 2].each(&b) }.to yield_control.at_most(2).times
132
+ expect { |b| [1, 2, 3].each(&b) }.to yield_control.at_most(3).times
133
+ end
134
+
135
+ it 'passes if the block yields fewer times' do
136
+ expect { |b| [1, 2].each(&b) }.to yield_control.at_most(3).times
137
+ end
138
+
139
+ it 'allows :once, :twice, and :thrice to be passed as counts' do
140
+ expect { |b| [1].each(&b) }.to yield_control.at_most(:once)
141
+
142
+ expect {
143
+ expect { |b| [1, 2].each(&b) }.to yield_control.at_most(:once)
144
+ }.to fail_with(/expected given block to yield control at most once/)
145
+
146
+ expect { |b| [1, 2].each(&b) }.to yield_control.at_most(:twice)
147
+
148
+ expect {
149
+ expect { |b| [1, 2, 3].each(&b) }.to yield_control.at_most(:twice)
150
+ }.to fail_with(/expected given block to yield control at most twice/)
151
+
152
+ expect { |b| [1, 2, 3].each(&b) }.to yield_control.at_most(:thrice)
153
+
154
+ expect {
155
+ expect { |b| [1, 2, 3, 4].each(&b) }.to yield_control.at_most(:thrice)
156
+ }.to fail_with(/expected given block to yield control at most 3 times/)
157
+ end
158
+
159
+ it 'fails if the block yields too many times' do
160
+ expect {
161
+ expect { |b| [1, 2, 3].each(&b) }.to yield_control.at_most(2).times
162
+ }.to fail_with(/expected given block to yield control at most twice/)
163
+ end
164
+ end
165
+ end
166
+
167
+ describe "expect {...}.not_to yield_control" do
168
+ it 'passes if the block does not yield' do
169
+ expect { |b| _dont_yield(&b) }.not_to yield_control
170
+ end
171
+
172
+ it 'fails if the block does yield' do
173
+ expect {
174
+ expect { |b| _yield_with_no_args(&b) }.not_to yield_control
175
+ }.to fail_with(/expected given block not to yield control/)
176
+ end
177
+
178
+ it 'fails if the expect block does not accept an argument', :if => (RUBY_VERSION.to_f > 1.8) do
179
+ expect {
180
+ expect { }.not_to yield_control
181
+ }.to raise_error(/expect block must accept an argument/)
182
+ end
183
+
184
+ it 'still works when the block uses an arg splat' do
185
+ expect { |*args| _dont_yield(&args.first) }.not_to yield_control
186
+ end
187
+
188
+ it 'raises an error if the expect block arg is not passed to a method as a block' do
189
+ expect {
190
+ expect { |b| }.not_to yield_control
191
+ }.to raise_error(/must pass the argument.*as a block/)
192
+ end
193
+ end
194
+ end
195
+
196
+ RSpec.describe "yield_with_no_args matcher" do
197
+ include YieldHelpers
198
+ extend YieldHelpers
199
+
200
+ it_behaves_like "an RSpec matcher",
201
+ :valid_value => lambda { |b| _yield_with_no_args(&b) },
202
+ :invalid_value => lambda { |b| _dont_yield(&b) } do
203
+ let(:matcher) { yield_with_no_args }
204
+ end
205
+
206
+ it 'has a description' do
207
+ expect(yield_with_no_args.description).to eq("yield with no args")
208
+ end
209
+
210
+ it 'does not return a meaningful value from the block' do
211
+ val = nil
212
+ expect { |b| val = _yield_with_no_args(&b) }.to yield_with_no_args
213
+ expect(val).to be_nil
214
+ end
215
+
216
+ describe "expect {...}.to yield_with_no_args" do
217
+ it 'passes if the block yields with no args' do
218
+ expect { |b| _yield_with_no_args(&b) }.to yield_with_no_args
219
+ end
220
+
221
+ it 'passes if the block yields with no args using instance_exec' do
222
+ expect { |b| InstanceEvaler.new.yield_with_no_args(&b) }.to yield_with_no_args
223
+ end
224
+
225
+ it 'fails if the block does not yield' do
226
+ expect {
227
+ expect { |b| _dont_yield(&b) }.to yield_with_no_args
228
+ }.to fail_with(/expected given block to yield with no arguments, but did not yield/)
229
+ end
230
+
231
+ it 'fails if the block yields with args' do
232
+ expect {
233
+ expect { |b| _yield_with_args(1, &b) }.to yield_with_no_args
234
+ }.to fail_with(/expected given block to yield with no arguments, but yielded with arguments/)
235
+ end
236
+
237
+ it 'fails if the block yields with arg false' do
238
+ expect {
239
+ expect { |b| _yield_with_args(false, &b) }.to yield_with_no_args
240
+ }.to fail_with(/expected given block to yield with no arguments, but yielded with arguments/)
241
+ end
242
+
243
+ it 'raises an error if it yields multiple times' do
244
+ expect {
245
+ expect { |b| [1, 2].each(&b) }.to yield_with_no_args
246
+ }.to raise_error(/not designed.*yields multiple times/)
247
+ end
248
+ end
249
+
250
+ describe "expect {...}.not_to yield_with_no_args" do
251
+ it "passes if the block does not yield" do
252
+ expect { |b| _dont_yield(&b) }.not_to yield_with_no_args
253
+ end
254
+
255
+ it "passes if the block yields with args" do
256
+ expect { |b| _yield_with_args(1, &b) }.not_to yield_with_no_args
257
+ end
258
+
259
+ it "fails if the block yields with no args" do
260
+ expect {
261
+ expect { |b| _yield_with_no_args(&b) }.not_to yield_with_no_args
262
+ }.to fail_with(/expected given block not to yield with no arguments, but did/)
263
+ end
264
+
265
+ it 'fails if the expect block does not accept an argument', :if => (RUBY_VERSION.to_f > 1.8) do
266
+ expect {
267
+ expect { }.not_to yield_with_no_args
268
+ }.to raise_error(/expect block must accept an argument/)
269
+ end
270
+
271
+ it 'raises an error if the expect block arg is not passed to a method as a block' do
272
+ expect {
273
+ expect { |b| }.not_to yield_with_no_args
274
+ }.to raise_error(/must pass the argument.*as a block/)
275
+ end
276
+ end
277
+ end
278
+
279
+ RSpec.describe "yield_with_args matcher" do
280
+ include YieldHelpers
281
+ extend YieldHelpers
282
+
283
+ it_behaves_like "an RSpec matcher",
284
+ :valid_value => lambda { |b| _yield_with_args(1, &b) },
285
+ :invalid_value => lambda { |b| _dont_yield(&b) } do
286
+ let(:matcher) { yield_with_args }
287
+ end
288
+
289
+ it 'has a description' do
290
+ expect(yield_with_args.description).to eq("yield with args")
291
+ expect(yield_with_args(1, 3).description).to eq("yield with args(1, 3)")
292
+ expect(yield_with_args(false).description).to eq("yield with args(false)")
293
+ end
294
+
295
+ it 'does not return a meaningful value from the block' do
296
+ val = nil
297
+ expect { |b| val = _yield_with_args(1, &b) }.to yield_with_args(1)
298
+ expect(val).to be_nil
299
+ end
300
+
301
+ describe "expect {...}.to yield_with_args" do
302
+ it 'passes if the block yields with arguments' do
303
+ expect { |b| _yield_with_args(1, &b) }.to yield_with_args
304
+ end
305
+
306
+ it 'fails if the block does not yield' do
307
+ expect {
308
+ expect { |b| _dont_yield(&b) }.to yield_with_args
309
+ }.to fail_with(/expected given block to yield with arguments, but did not yield/)
310
+ end
311
+
312
+ it 'fails if the block yields with no arguments' do
313
+ expect {
314
+ expect { |b| _yield_with_no_args(&b) }.to yield_with_args
315
+ }.to fail_with(/expected given block to yield with arguments, but yielded with no arguments/)
316
+ end
317
+
318
+ it 'raises an error if it yields multiple times' do
319
+ expect {
320
+ expect { |b| [1, 2].each(&b) }.to yield_with_args
321
+ }.to raise_error(/not designed.*yields multiple times/)
322
+ end
323
+ end
324
+
325
+ describe "expect {...}.not_to yield_with_args" do
326
+ it 'fails if the block yields with arguments' do
327
+ expect {
328
+ expect { |b| _yield_with_args(1, &b) }.not_to yield_with_args
329
+ }.to fail_with(/expected given block not to yield with arguments, but did/)
330
+ end
331
+
332
+ it 'passes if the block does not yield' do
333
+ expect { |b| _dont_yield(&b) }.not_to yield_with_args
334
+ end
335
+
336
+ it 'passes if the block yields with no arguments' do
337
+ expect { |b| _yield_with_no_args(&b) }.not_to yield_with_args
338
+ end
339
+
340
+ it 'fails if the expect block does not accept an argument', :if => (RUBY_VERSION.to_f > 1.8) do
341
+ expect {
342
+ expect { }.not_to yield_with_args
343
+ }.to raise_error(/expect block must accept an argument/)
344
+ end
345
+
346
+ it 'raises an error if the expect block arg is not passed to a method as a block' do
347
+ expect {
348
+ expect { |b| }.not_to yield_with_args
349
+ }.to raise_error(/must pass the argument.*as a block/)
350
+ end
351
+ end
352
+
353
+ describe "expect {...}.to yield_with_args(3, 17)" do
354
+ it 'passes if the block yields with the given arguments' do
355
+ expect { |b| _yield_with_args(3, 17, &b) }.to yield_with_args(3, 17)
356
+ end
357
+
358
+ it 'passes if the block yields with the given arguments using instance_exec' do
359
+ expect { |b| InstanceEvaler.new.yield_with_args(3, 17, &b) }.to yield_with_args(3, 17)
360
+ end
361
+
362
+ it 'fails if the block does not yield' do
363
+ expect {
364
+ expect { |b| _dont_yield(&b) }.to yield_with_args(3, 17)
365
+ }.to fail_with(/expected given block to yield with arguments, but did not yield/)
366
+ end
367
+
368
+ it 'fails if the block yields with no arguments' do
369
+ expect {
370
+ expect { |b| _yield_with_no_args(&b) }.to yield_with_args(3, 17)
371
+ }.to fail_with(/expected given block to yield with arguments, but yielded with unexpected arguments/)
372
+ end
373
+
374
+ it 'fails if the block yields with different arguments' do
375
+ expect {
376
+ expect { |b| _yield_with_args("a", "b", &b) }.to yield_with_args("a", "c")
377
+ }.to fail_with(/expected given block to yield with arguments, but yielded with unexpected arguments/)
378
+ end
379
+ end
380
+
381
+ describe "expect {...}.to yield_with_args(matcher, matcher)" do
382
+ it 'passes when the matchers match the args' do
383
+ expect { |b|
384
+ _yield_with_args(1.1, "food", &b)
385
+ }.to yield_with_args(a_value_within(0.2).of(1), a_string_matching(/foo/))
386
+ end
387
+
388
+ it 'provides a description' do
389
+ description = yield_with_args(a_value_within(0.2).of(1), a_string_matching(/foo/)).description
390
+ expect(description).to eq("yield with args(a value within 0.2 of 1, a string matching /foo/)")
391
+ end
392
+
393
+ it 'fails with a useful error message when the matchers do not match the args' do
394
+ expect {
395
+ expect { |b|
396
+ _yield_with_args(2.1, "food", &b)
397
+ }.to yield_with_args(a_value_within(0.2).of(1), a_string_matching(/foo/))
398
+ }.to fail_with(dedent <<-EOS)
399
+ |expected given block to yield with arguments, but yielded with unexpected arguments
400
+ |expected: [(a value within 0.2 of 1), (a string matching /foo/)]
401
+ | got: [2.1, "food"]
402
+ EOS
403
+ end
404
+ end
405
+
406
+ describe "expect {...}.not_to yield_with_args(3, 17)" do
407
+ it 'passes if the block yields with different arguments' do
408
+ expect { |b| _yield_with_args("a", "b", &b) }.not_to yield_with_args("a", "c")
409
+ end
410
+
411
+ it 'fails if the block yields with the given arguments' do
412
+ expect {
413
+ expect { |b| _yield_with_args("a", "b", &b) }.not_to yield_with_args("a", "b")
414
+ }.to fail_with(/expected given block not to yield with arguments, but yielded with expected arguments/)
415
+ end
416
+ end
417
+
418
+ describe "expect {...}.not_to yield_with_args(matcher, matcher)" do
419
+ it 'passes when the matchers do not match the args' do
420
+ expect { |b|
421
+ _yield_with_args(2.1, "food", &b)
422
+ }.not_to yield_with_args(a_value_within(0.2).of(1), a_string_matching(/foo/))
423
+ end
424
+
425
+ it 'fails with a useful error message when the matchers do not match the args' do
426
+ expect {
427
+ expect { |b|
428
+ _yield_with_args(1.1, "food", &b)
429
+ }.not_to yield_with_args(a_value_within(0.2).of(1), a_string_matching(/foo/))
430
+ }.to fail_with(dedent <<-EOS)
431
+ |expected given block not to yield with arguments, but yielded with expected arguments
432
+ |expected not: [(a value within 0.2 of 1), (a string matching /foo/)]
433
+ | got: [1.1, "food"]
434
+ EOS
435
+ end
436
+ end
437
+
438
+ describe "expect {...}.to yield_with_args( false )" do
439
+ it 'passes if the block yields with the given arguments' do
440
+ expect { |b| _yield_with_args(false, &b) }.to yield_with_args(false)
441
+ end
442
+
443
+ it 'passes if the block yields with the given arguments using instance_exec' do
444
+ expect { |b| InstanceEvaler.new.yield_with_args(false, &b) }.to yield_with_args(false)
445
+ end
446
+
447
+ it 'fails if the block does not yield' do
448
+ expect {
449
+ expect { |b| _dont_yield(&b) }.to yield_with_args(false)
450
+ }.to fail_with(/expected given block to yield with arguments, but did not yield/)
451
+ end
452
+
453
+ it 'fails if the block yields with no arguments' do
454
+ expect {
455
+ expect { |b| _yield_with_no_args(&b) }.to yield_with_args(false)
456
+ }.to fail_with(/expected given block to yield with arguments, but yielded with unexpected arguments/)
457
+ end
458
+
459
+ it 'fails if the block yields with different arguments' do
460
+ expect {
461
+ expect { |b| _yield_with_args(false, &b) }.to yield_with_args(true)
462
+ }.to fail_with(/expected given block to yield with arguments, but yielded with unexpected arguments/)
463
+ end
464
+ end
465
+
466
+ describe "expect {...}.to yield_with_args(/reg/, /ex/)" do
467
+ it "passes if the block yields strings matching the regexes" do
468
+ expect { |b| _yield_with_args("regular", "expression", &b) }.to yield_with_args(/reg/, /ex/)
469
+ end
470
+
471
+ it "fails if the block yields strings that do not match the regexes" do
472
+ expect {
473
+ expect { |b| _yield_with_args("no", "match", &b) }.to yield_with_args(/reg/, /ex/)
474
+ }.to fail_with(/expected given block to yield with arguments, but yielded with unexpected arguments/)
475
+ end
476
+ end
477
+
478
+ describe "expect {...}.to yield_with_args(String, Fixnum)" do
479
+ it "passes if the block yields objects of the given types" do
480
+ expect { |b| _yield_with_args("string", 15, &b) }.to yield_with_args(String, Fixnum)
481
+ end
482
+
483
+ it "passes if the block yields the given types" do
484
+ expect { |b| _yield_with_args(String, Fixnum, &b) }.to yield_with_args(String, Fixnum)
485
+ end
486
+
487
+ it "fails if the block yields objects of different types" do
488
+ expect {
489
+ expect { |b| _yield_with_args(15, "string", &b) }.to yield_with_args(String, Fixnum)
490
+ }.to fail_with(/expected given block to yield with arguments, but yielded with unexpected arguments/)
491
+ end
492
+ end
493
+ end
494
+
495
+ RSpec.describe "yield_successive_args matcher" do
496
+ include YieldHelpers
497
+ extend YieldHelpers
498
+
499
+ it_behaves_like "an RSpec matcher",
500
+ :valid_value => lambda { |b| [1, 2].each(&b) },
501
+ :invalid_value => lambda { |b| _dont_yield(&b) } do
502
+ let(:matcher) { yield_successive_args(1, 2) }
503
+ end
504
+
505
+ it 'has a description' do
506
+ expect(yield_successive_args(1, 3).description).to eq("yield successive args(1, 3)")
507
+ expect(yield_successive_args([:a, 1], [:b, 2]).description).to eq("yield successive args([:a, 1], [:b, 2])")
508
+ end
509
+
510
+ it 'does not return a meaningful value from the block' do
511
+ val = nil
512
+ expect { |b| val = _yield_with_args(1, &b) }.to yield_successive_args(1)
513
+ expect(val).to be_nil
514
+ end
515
+
516
+ describe "expect {...}.to yield_successive_args([:a, 1], [:b, 2])" do
517
+ it 'passes when the block successively yields the given args' do
518
+ expect { |b| [ [:a, 1], [:b, 2] ].each(&b) }.to yield_successive_args([:a, 1], [:b, 2])
519
+ end
520
+
521
+ it 'fails when the block does not yield that many times' do
522
+ expect {
523
+ expect { |b| [[:a, 1]].each(&b) }.to yield_successive_args([:a, 1], [:b, 2])
524
+ }.to fail_with(/but yielded with unexpected arguments/)
525
+ end
526
+
527
+ it 'fails when the block yields the right number of times but with different arguments' do
528
+ expect {
529
+ expect { |b| [ [:a, 1], [:b, 3] ].each(&b) }.to yield_successive_args([:a, 1], [:b, 2])
530
+ }.to fail_with(/but yielded with unexpected arguments/)
531
+ end
532
+ end
533
+
534
+ describe "expect {...}.to yield_successive_args(1, 2, 3)" do
535
+ it 'passes when the block successively yields the given args' do
536
+ expect { |b| [1, 2, 3].each(&b) }.to yield_successive_args(1, 2, 3)
537
+ end
538
+
539
+ it 'passes when the block successively yields the given args using instance_exec' do
540
+ expect { |b| InstanceEvaler.new.each_arg(1, 2, 3, &b) }.to yield_successive_args(1, 2, 3)
541
+ end
542
+
543
+ it 'fails when the block does not yield the expected args' do
544
+ expect {
545
+ expect { |b| [1, 2, 4].each(&b) }.to yield_successive_args([:a, 1], [:b, 2])
546
+ }.to fail_with(/but yielded with unexpected arguments/)
547
+ end
548
+ end
549
+
550
+ describe "expect {...}.to yield_successive_args(matcher, matcher)" do
551
+ it 'passes when the successively yielded args match the matchers' do
552
+ expect { |b|
553
+ %w[ food barn ].each(&b)
554
+ }.to yield_successive_args(a_string_matching(/foo/), a_string_matching(/bar/))
555
+ end
556
+
557
+ it 'fails when the successively yielded args do not match the matchers' do
558
+ expect {
559
+ expect { |b|
560
+ %w[ barn food ].each(&b)
561
+ }.to yield_successive_args(a_string_matching(/foo/), a_string_matching(/bar/))
562
+ }.to fail_with(dedent <<-EOS)
563
+ |expected given block to yield successively with arguments, but yielded with unexpected arguments
564
+ |expected: [(a string matching /foo/), (a string matching /bar/)]
565
+ | got: ["barn", "food"]
566
+ EOS
567
+ end
568
+
569
+ it 'provides a description' do
570
+ description = yield_successive_args(a_string_matching(/foo/), a_string_matching(/bar/)).description
571
+ expect(description).to eq("yield successive args(a string matching /foo/, a string matching /bar/)")
572
+ end
573
+ end
574
+
575
+ describe "expect {...}.not_to yield_successive_args(1, 2, 3)" do
576
+ it 'passes when the block does not yield' do
577
+ expect { |b| _dont_yield(&b) }.not_to yield_successive_args(1, 2, 3)
578
+ end
579
+
580
+ it 'passes when the block yields the wrong number of times' do
581
+ expect { |b| [1, 2].each(&b) }.not_to yield_successive_args(1, 2, 3)
582
+ end
583
+
584
+ it 'passes when the block yields the wrong arguments' do
585
+ expect { |b| [1, 2, 4].each(&b) }.not_to yield_successive_args(1, 2, 3)
586
+ end
587
+
588
+ it 'fails when the block yields the given arguments' do
589
+ expect {
590
+ expect { |b| [1, 2, 3].each(&b) }.not_to yield_successive_args(1, 2, 3)
591
+ }.to fail_with(/expected given block not to yield successively/)
592
+ end
593
+
594
+ it 'fails if the expect block does not accept an argument', :if => (RUBY_VERSION.to_f > 1.8) do
595
+ expect {
596
+ expect { }.not_to yield_successive_args(1, 2, 3)
597
+ }.to raise_error(/expect block must accept an argument/)
598
+ end
599
+
600
+ it 'raises an error if the expect block arg is not passed to a method as a block' do
601
+ expect {
602
+ expect { |b| }.not_to yield_successive_args(1, 2, 3)
603
+ }.to raise_error(/must pass the argument.*as a block/)
604
+ end
605
+ end
606
+
607
+ describe "expect {...}.not_to yield_successive_args(matcher, matcher)" do
608
+ it 'passes when the successively yielded args match the matchers' do
609
+ expect { |b|
610
+ %w[ barn food ].each(&b)
611
+ }.not_to yield_successive_args(a_string_matching(/foo/), a_string_matching(/bar/))
612
+ end
613
+
614
+ it 'fails when the successively yielded args do not match the matchers' do
615
+ expect {
616
+ expect { |b|
617
+ %w[ food barn ].each(&b)
618
+ }.not_to yield_successive_args(a_string_matching(/foo/), a_string_matching(/bar/))
619
+ }.to fail_with(dedent <<-EOS)
620
+ |expected given block not to yield successively with arguments, but yielded with expected arguments
621
+ |expected not: [(a string matching /foo/), (a string matching /bar/)]
622
+ | got: ["food", "barn"]
623
+ EOS
624
+ end
625
+ end
626
+
627
+ describe "expect {...}.to yield_successive_args(String, Fixnum)" do
628
+ it "passes if the block successively yields objects of the given types" do
629
+ expect { |b| ["string", 15].each(&b) }.to yield_successive_args(String, Fixnum)
630
+ end
631
+
632
+ it "passes if the block yields the given types" do
633
+ expect { |b| [String, Fixnum].each(&b) }.to yield_successive_args(String, Fixnum)
634
+ end
635
+
636
+ it "fails if the block yields objects of different types" do
637
+ expect {
638
+ expect { |b| [15, "string"].each(&b) }.to yield_successive_args(String, Fixnum)
639
+ }.to fail_with(/expected given block to yield successively with arguments/)
640
+ end
641
+ end
642
+ end
643
+