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,61 @@
1
+ module RSpec
2
+ module Matchers
3
+ [:be_an_instance_of, :be_instance_of].each do |method|
4
+ RSpec.describe "expect(actual).to #{method}(expected)" do
5
+ it_behaves_like "an RSpec matcher", :valid_value => 5, :invalid_value => "a" do
6
+ let(:matcher) { send(method, Fixnum) }
7
+ end
8
+
9
+ it "passes if actual is instance of expected class" do
10
+ expect(5).to send(method, Fixnum)
11
+ end
12
+
13
+ it "fails if actual is instance of subclass of expected class" do
14
+ expect {
15
+ expect(5).to send(method, Numeric)
16
+ }.to fail_with(%Q{expected 5 to be an instance of Numeric})
17
+ end
18
+
19
+ it "fails with failure message for should unless actual is instance of expected class" do
20
+ expect {
21
+ expect("foo").to send(method, Array)
22
+ }.to fail_with(%Q{expected "foo" to be an instance of Array})
23
+ end
24
+
25
+ it "provides a description" do
26
+ matcher = be_an_instance_of(Fixnum)
27
+ matcher.matches?(Numeric)
28
+ expect(matcher.description).to eq "be an instance of Fixnum"
29
+ end
30
+
31
+ context "when expected provides an expanded inspect, e.g. AR::Base" do
32
+ let(:user_klass) do
33
+ Class.new do
34
+ def self.inspect
35
+ "User(id: integer, name: string)"
36
+ end
37
+ end
38
+ end
39
+
40
+ before { stub_const("User", user_klass) }
41
+
42
+ it "provides a description including only the class name" do
43
+ matcher = be_an_instance_of(User)
44
+ expect(matcher.description).to eq "be an instance of User"
45
+ end
46
+ end
47
+ end
48
+
49
+ RSpec.describe "expect(actual).not_to #{method}(expected)" do
50
+
51
+ it "fails with failure message for should_not if actual is instance of expected class" do
52
+ expect {
53
+ expect("foo").not_to send(method, String)
54
+ }.to fail_with(%Q{expected "foo" not to be an instance of String})
55
+ end
56
+
57
+ end
58
+
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,39 @@
1
+ module RSpec
2
+ module Matchers
3
+ [:be_a_kind_of, :be_kind_of].each do |method|
4
+ RSpec.describe "expect(actual).to #{method}(expected)" do
5
+ it_behaves_like "an RSpec matcher", :valid_value => 5, :invalid_value => "a" do
6
+ let(:matcher) { send(method, Fixnum) }
7
+ end
8
+
9
+ it "passes if actual is instance of expected class" do
10
+ expect(5).to send(method, Fixnum)
11
+ end
12
+
13
+ it "passes if actual is instance of subclass of expected class" do
14
+ expect(5).to send(method, Numeric)
15
+ end
16
+
17
+ it "fails with failure message for should unless actual is kind of expected class" do
18
+ expect {
19
+ expect("foo").to send(method, Array)
20
+ }.to fail_with(%Q{expected "foo" to be a kind of Array})
21
+ end
22
+
23
+ it "provides a description" do
24
+ matcher = be_a_kind_of(String)
25
+ matcher.matches?("this")
26
+ expect(matcher.description).to eq "be a kind of String"
27
+ end
28
+ end
29
+
30
+ RSpec.describe "expect(actual).not_to #{method}(expected)" do
31
+ it "fails with failure message for should_not if actual is kind of expected class" do
32
+ expect {
33
+ expect("foo").not_to send(method, String)
34
+ }.to fail_with(%Q{expected "foo" not to be a kind of String})
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,685 @@
1
+ RSpec.describe "expect(...).to be_predicate" do
2
+ it "passes when actual returns true for :predicate?" do
3
+ actual = double("actual", :happy? => true)
4
+ expect(actual).to be_happy
5
+ end
6
+
7
+ it 'allows composable aliases to be defined' do
8
+ RSpec::Matchers.alias_matcher :a_user_who_is_happy, :be_happy
9
+ actual = double("actual", :happy? => true)
10
+ expect(actual).to a_user_who_is_happy
11
+ expect(a_user_who_is_happy.description).to eq("a user who is happy")
12
+
13
+ RSpec::Matchers.alias_matcher :a_user_who_is_an_admin, :be_an_admin
14
+ actual = double("actual", :admin? => true)
15
+ expect(actual).to a_user_who_is_an_admin
16
+ expect(a_user_who_is_an_admin.description).to eq("a user who is an admin")
17
+
18
+ RSpec::Matchers.alias_matcher :an_animal_that_is_a_canine, :be_a_canine
19
+ actual = double("actual", :canine? => true)
20
+ expect(actual).to an_animal_that_is_a_canine
21
+ expect(an_animal_that_is_a_canine.description).to eq("an animal that is a canine")
22
+ end
23
+
24
+ it 'composes gracefully' do
25
+ RSpec::Matchers.alias_matcher :a_happy_object, :be_happy
26
+ expect([
27
+ double,
28
+ double(:happy? => false),
29
+ double(:happy? => true),
30
+ ]).to include a_happy_object
31
+ end
32
+
33
+ it "passes when actual returns true for :predicates? (present tense)" do
34
+ actual = double("actual", :exists? => true, :exist? => true)
35
+ expect(actual).to be_exist
36
+ end
37
+
38
+ context "when actual returns false for :predicate?" do
39
+ let(:actual) { double "actual", :happy? => false }
40
+ let(:expectation) { expect(actual).to be_happy }
41
+
42
+ it "fails when actual returns false for :predicate?" do
43
+ actual = double("actual", :happy? => false)
44
+ expect {
45
+ expect(actual).to be_happy
46
+ }.to fail_with(/expected `#<RSpec::Mocks::Double:0x[0-9a-f]+ @name=\"actual\">\.happy\?` to return true, got false/)
47
+ end
48
+
49
+ it "only calls :predicate? once" do
50
+ expect(actual).to receive(:happy?).once
51
+ expect { expectation }.to fail
52
+ end
53
+ end
54
+
55
+ it "fails when actual returns nil for :predicate?" do
56
+ actual = double("actual", :happy? => nil)
57
+ expect {
58
+ expect(actual).to be_happy
59
+ }.to fail_with(/expected `#<RSpec::Mocks::Double:0x[0-9a-f]+ @name=\"actual\">\.happy\?` to return true, got nil/)
60
+ end
61
+
62
+ it "fails when actual does not respond to :predicate?" do
63
+ expect {
64
+ expect(Object.new).to be_happy
65
+ }.to fail_matching("to respond to `happy?`")
66
+ end
67
+
68
+ it 'falls back to a present-tense form of the predicate when needed' do
69
+ mouth = Object.new
70
+ def mouth.frowns?(return_val); return_val; end
71
+
72
+ expect(mouth).to be_frown(true)
73
+ expect(mouth).not_to be_frown(false)
74
+
75
+ expect { expect(mouth).to be_frown(false) }.to fail
76
+ expect { expect(mouth).not_to be_frown(true) }.to fail
77
+ end
78
+
79
+ it 'fails when :predicate? is private' do
80
+ privately_happy = Class.new do
81
+ private
82
+ def happy?
83
+ true
84
+ end
85
+ end
86
+ expect { expect(privately_happy.new).to be_happy }.to fail_with(/private/)
87
+ end
88
+
89
+ it "fails on error other than NameError" do
90
+ actual = double("actual")
91
+ expect(actual).to receive(:foo?).and_raise("aaaah")
92
+ expect {
93
+ expect(actual).to be_foo
94
+ }.to raise_error(/aaaah/)
95
+ end
96
+
97
+ it 'raises an error when :predicate? exists but raises NameError' do
98
+ actual_class = Class.new do
99
+ def foo?
100
+ raise NameError, "aaaah"
101
+ end
102
+ end
103
+ expect {
104
+ expect(actual_class.new).to be_foo
105
+ }.to raise_error(NameError, /aaaah/)
106
+ end
107
+
108
+ it "fails on error other than NameError (with the present tense predicate)" do
109
+ actual = Object.new
110
+ expect(actual).to receive(:foos?).and_raise("aaaah")
111
+ expect {
112
+ expect(actual).to be_foo
113
+ }.to raise_error(/aaaah/)
114
+ end
115
+
116
+ it "does not support operator chaining like a basic `be` matcher does" do
117
+ matcher = be_happy
118
+ value = double(:happy? => false)
119
+ expect(matcher == value).to be false
120
+ end
121
+ end
122
+
123
+ RSpec.describe "expect(...).not_to be_predicate" do
124
+ it "passes when actual returns false for :sym?" do
125
+ actual = double("actual", :happy? => false)
126
+ expect(actual).not_to be_happy
127
+ end
128
+
129
+ it "passes when actual returns nil for :sym?" do
130
+ actual = double("actual", :happy? => nil)
131
+ expect(actual).not_to be_happy
132
+ end
133
+
134
+ it "fails when actual returns true for :sym?" do
135
+ actual = double("actual", :happy? => true)
136
+ expect {
137
+ expect(actual).not_to be_happy
138
+ }.to fail_with(/expected `#<RSpec::Mocks::Double:0x[0-9a-f]+ @name=\"actual\">\.happy\?` to return false, got true/)
139
+ end
140
+
141
+ it "fails when actual does not respond to :sym?" do
142
+ expect {
143
+ expect(Object.new).not_to be_happy
144
+ }.to fail_matching("to respond to `happy?`")
145
+ end
146
+ end
147
+
148
+ RSpec.describe "expect(...).to be_predicate(*args)" do
149
+ it "passes when actual returns true for :predicate?(*args)" do
150
+ actual = double("actual")
151
+ expect(actual).to receive(:older_than?).with(3).and_return(true)
152
+ expect(actual).to be_older_than(3)
153
+ end
154
+
155
+ it "fails when actual returns false for :predicate?(*args)" do
156
+ actual = double("actual")
157
+ expect(actual).to receive(:older_than?).with(3).and_return(false)
158
+ expect {
159
+ expect(actual).to be_older_than(3)
160
+ }.to fail_with(/expected `#<RSpec::Mocks::Double:0x[0-9a-f]+ @name="actual">.older_than\?\(3\)` to return true, got false/)
161
+ end
162
+
163
+ it "fails when actual does not respond to :predicate?" do
164
+ expect {
165
+ expect(Object.new).to be_older_than(3)
166
+ }.to fail_matching("to respond to `older_than?`")
167
+ end
168
+ end
169
+
170
+ RSpec.describe "expect(...).not_to be_predicate(*args)" do
171
+ it "passes when actual returns false for :predicate?(*args)" do
172
+ actual = double("actual")
173
+ expect(actual).to receive(:older_than?).with(3).and_return(false)
174
+ expect(actual).not_to be_older_than(3)
175
+ end
176
+
177
+ it "fails when actual returns true for :predicate?(*args)" do
178
+ actual = double("actual")
179
+ expect(actual).to receive(:older_than?).with(3).and_return(true)
180
+ expect {
181
+ expect(actual).not_to be_older_than(3)
182
+ }.to fail_with(/expected `#<RSpec::Mocks::Double:0x[0-9a-f]+ @name="actual">.older_than\?\(3\)` to return false, got true/)
183
+ end
184
+
185
+ it "fails when actual does not respond to :predicate?" do
186
+ expect {
187
+ expect(Object.new).not_to be_older_than(3)
188
+ }.to fail_matching("to respond to `older_than?`")
189
+ end
190
+ end
191
+
192
+ RSpec.describe "expect(...).to be_predicate(&block)" do
193
+ it "passes when actual returns true for :predicate?(&block)" do
194
+ actual = double("actual")
195
+ delegate = double("delegate")
196
+ expect(actual).to receive(:happy?).and_yield
197
+ expect(delegate).to receive(:check_happy).and_return(true)
198
+ expect(actual).to be_happy { delegate.check_happy }
199
+ end
200
+
201
+ it "fails when actual returns false for :predicate?(&block)" do
202
+ actual = double("actual")
203
+ delegate = double("delegate")
204
+ expect(actual).to receive(:happy?).and_yield
205
+ expect(delegate).to receive(:check_happy).and_return(false)
206
+ expect {
207
+ expect(actual).to be_happy { delegate.check_happy }
208
+ }.to fail_with(/expected `#<RSpec::Mocks::Double:0x[0-9a-f]+ @name=\"actual\">\.happy\?` to return true, got false/)
209
+ end
210
+
211
+ it "fails when actual does not respond to :predicate?" do
212
+ delegate = double("delegate", :check_happy => true)
213
+ expect {
214
+ expect(Object.new).to be_happy { delegate.check_happy }
215
+ }.to fail_matching("to respond to `happy?`")
216
+ end
217
+
218
+ it 'passes the block on to the present-tense predicate form' do
219
+ mouth = Object.new
220
+ def mouth.frowns?; yield; end
221
+
222
+ expect(mouth).to be_frown { true }
223
+ expect(mouth).not_to be_frown { false }
224
+ end
225
+
226
+ it 'works with a do..end block for either predicate form' do
227
+ mouth1 = Object.new
228
+ def mouth1.frown?; yield; end
229
+ mouth2 = Object.new
230
+ def mouth2.frowns?; yield; end
231
+
232
+ expect(mouth1).to be_frown do
233
+ true
234
+ end
235
+
236
+ expect(mouth1).not_to be_frown do
237
+ false
238
+ end
239
+
240
+ expect(mouth2).to be_frown do
241
+ true
242
+ end
243
+
244
+ expect(mouth2).not_to be_frown do
245
+ false
246
+ end
247
+ end
248
+
249
+ it 'prefers a { ... } block to a do/end block because it binds more tightly' do
250
+ mouth1 = Object.new
251
+ def mouth1.frown?; yield; end
252
+ mouth2 = Object.new
253
+ def mouth2.frowns?; yield; end
254
+
255
+ expect(mouth1).to be_frown { true } do
256
+ false
257
+ end
258
+
259
+ expect(mouth1).not_to be_frown { false } do
260
+ true
261
+ end
262
+
263
+ expect(mouth2).to be_frown { true } do
264
+ false
265
+ end
266
+
267
+ expect(mouth2).not_to be_frown { false } do
268
+ true
269
+ end
270
+ end
271
+ end
272
+
273
+ RSpec.describe "expect(...).not_to be_predicate(&block)" do
274
+ it "passes when actual returns false for :predicate?(&block)" do
275
+ actual = double("actual")
276
+ delegate = double("delegate")
277
+ expect(actual).to receive(:happy?).and_yield
278
+ expect(delegate).to receive(:check_happy).and_return(false)
279
+ expect(actual).not_to be_happy { delegate.check_happy }
280
+ end
281
+
282
+ it "fails when actual returns true for :predicate?(&block)" do
283
+ actual = double("actual")
284
+ delegate = double("delegate")
285
+ expect(actual).to receive(:happy?).and_yield
286
+ expect(delegate).to receive(:check_happy).and_return(true)
287
+ expect {
288
+ expect(actual).not_to be_happy { delegate.check_happy }
289
+ }.to fail_with(/expected `#<RSpec::Mocks::Double:0x[0-9a-f]+ @name=\"actual\">\.happy\?` to return false, got true/)
290
+ end
291
+
292
+ it "fails when actual does not respond to :predicate?" do
293
+ delegate = double("delegate", :check_happy => true)
294
+ expect {
295
+ expect(Object.new).not_to be_happy { delegate.check_happy }
296
+ }.to fail_matching("to respond to `happy?`")
297
+ end
298
+ end
299
+
300
+ RSpec.describe "expect(...).to be_predicate(*args, &block)" do
301
+ it "passes when actual returns true for :predicate?(*args, &block)" do
302
+ actual = double("actual")
303
+ delegate = double("delegate")
304
+ expect(actual).to receive(:older_than?).with(3).and_yield(3)
305
+ expect(delegate).to receive(:check_older_than).with(3).and_return(true)
306
+ expect(actual).to be_older_than(3) { |age| delegate.check_older_than(age) }
307
+ end
308
+
309
+ it "fails when actual returns false for :predicate?(*args, &block)" do
310
+ actual = double("actual")
311
+ delegate = double("delegate")
312
+ expect(actual).to receive(:older_than?).with(3).and_yield(3)
313
+ expect(delegate).to receive(:check_older_than).with(3).and_return(false)
314
+ expect {
315
+ expect(actual).to be_older_than(3) { |age| delegate.check_older_than(age) }
316
+ }.to fail_with(/expected `#<RSpec::Mocks::Double:0x[0-9a-f]+ @name=\"actual\">\.older_than\?\(3\)` to return true, got false/)
317
+ end
318
+
319
+ it "fails when actual does not respond to :predicate?" do
320
+ delegate = double("delegate", :check_older_than => true)
321
+ expect {
322
+ expect(Object.new).to be_older_than(3) { |age| delegate.check_older_than(age) }
323
+ }.to fail_matching("to respond to `older_than?`")
324
+ end
325
+ end
326
+
327
+ RSpec.describe "expect(...).not_to be_predicate(*args, &block)" do
328
+ it "passes when actual returns false for :predicate?(*args, &block)" do
329
+ actual = double("actual")
330
+ delegate = double("delegate")
331
+ expect(actual).to receive(:older_than?).with(3).and_yield(3)
332
+ expect(delegate).to receive(:check_older_than).with(3).and_return(false)
333
+ expect(actual).not_to be_older_than(3) { |age| delegate.check_older_than(age) }
334
+ end
335
+
336
+ it "fails when actual returns true for :predicate?(*args, &block)" do
337
+ actual = double("actual")
338
+ delegate = double("delegate")
339
+ expect(actual).to receive(:older_than?).with(3).and_yield(3)
340
+ expect(delegate).to receive(:check_older_than).with(3).and_return(true)
341
+ expect {
342
+ expect(actual).not_to be_older_than(3) { |age| delegate.check_older_than(age) }
343
+ }.to fail_with(/expected `#<RSpec::Mocks::Double:0x[0-9a-f]+ @name="actual">.older_than\?\(3\)` to return false, got true/)
344
+ end
345
+
346
+ it "fails when actual does not respond to :predicate?" do
347
+ delegate = double("delegate", :check_older_than => true)
348
+ expect {
349
+ expect(Object.new).not_to be_older_than(3) { |age| delegate.check_older_than(age) }
350
+ }.to fail_matching("to respond to `older_than?`")
351
+ end
352
+ end
353
+
354
+ RSpec.describe "expect(...).to be_truthy" do
355
+ it "passes when actual equal?(true)" do
356
+ expect(true).to be_truthy
357
+ end
358
+
359
+ it "passes when actual is 1" do
360
+ expect(1).to be_truthy
361
+ end
362
+
363
+ it "fails when actual equal?(false)" do
364
+ expect {
365
+ expect(false).to be_truthy
366
+ }.to fail_with("expected: truthy value\n got: false")
367
+ end
368
+ end
369
+
370
+ RSpec.describe "expect(...).to be_falsey" do
371
+ it "passes when actual equal?(false)" do
372
+ expect(false).to be_falsey
373
+ end
374
+
375
+ it "passes when actual equal?(nil)" do
376
+ expect(nil).to be_falsey
377
+ end
378
+
379
+ it "fails when actual equal?(true)" do
380
+ expect {
381
+ expect(true).to be_falsey
382
+ }.to fail_with("expected: falsey value\n got: true")
383
+ end
384
+ end
385
+
386
+ RSpec.describe "expect(...).to be_falsy" do
387
+ it "passes when actual equal?(false)" do
388
+ expect(false).to be_falsy
389
+ end
390
+
391
+ it "passes when actual equal?(nil)" do
392
+ expect(nil).to be_falsy
393
+ end
394
+
395
+ it "fails when actual equal?(true)" do
396
+ expect {
397
+ expect(true).to be_falsy
398
+ }.to fail_with("expected: falsey value\n got: true")
399
+ end
400
+ end
401
+
402
+ RSpec.describe "expect(...).to be_nil" do
403
+ it "passes when actual is nil" do
404
+ expect(nil).to be_nil
405
+ end
406
+
407
+ it "fails when actual is not nil" do
408
+ expect {
409
+ expect(:not_nil).to be_nil
410
+ }.to fail_with(/^expected: nil/)
411
+ end
412
+ end
413
+
414
+ RSpec.describe "expect(...).not_to be_nil" do
415
+ it "passes when actual is not nil" do
416
+ expect(:not_nil).not_to be_nil
417
+ end
418
+
419
+ it "fails when actual is nil" do
420
+ expect {
421
+ expect(nil).not_to be_nil
422
+ }.to fail_with(/^expected: not nil/)
423
+ end
424
+ end
425
+
426
+ RSpec.describe "expect(...).to be <" do
427
+ it "passes when < operator returns true" do
428
+ expect(3).to be < 4
429
+ end
430
+
431
+ it "fails when < operator returns false" do
432
+ expect {
433
+ expect(3).to be < 3
434
+ }.to fail_with("expected: < 3\n got: 3")
435
+ end
436
+
437
+ it "describes itself" do
438
+ expect(be.<(4).description).to eq "be < 4"
439
+ end
440
+
441
+ it 'does not lie and say that it is equal to a number' do
442
+ matcher = (be < 3)
443
+ expect(5 == matcher).to be false
444
+ end
445
+ end
446
+
447
+ RSpec.describe "expect(...).to be <=" do
448
+ it "passes when <= operator returns true" do
449
+ expect(3).to be <= 4
450
+ expect(4).to be <= 4
451
+ end
452
+
453
+ it "fails when <= operator returns false" do
454
+ expect {
455
+ expect(3).to be <= 2
456
+ }.to fail_with("expected: <= 2\n got: 3")
457
+ end
458
+ end
459
+
460
+ RSpec.describe "expect(...).to be >=" do
461
+ it "passes when >= operator returns true" do
462
+ expect(4).to be >= 4
463
+ expect(5).to be >= 4
464
+ end
465
+
466
+ it "fails when >= operator returns false" do
467
+ expect {
468
+ expect(3).to be >= 4
469
+ }.to fail_with("expected: >= 4\n got: 3")
470
+ end
471
+ end
472
+
473
+ RSpec.describe "expect(...).to be >" do
474
+ it "passes when > operator returns true" do
475
+ expect(5).to be > 4
476
+ end
477
+
478
+ it "fails when > operator returns false" do
479
+ expect {
480
+ expect(3).to be > 4
481
+ }.to fail_with("expected: > 4\n got: 3")
482
+ end
483
+ end
484
+
485
+ RSpec.describe "expect(...).to be ==" do
486
+ it "passes when == operator returns true" do
487
+ expect(5).to be == 5
488
+ end
489
+
490
+ it "fails when == operator returns false" do
491
+ expect {
492
+ expect(3).to be == 4
493
+ }.to fail_with("expected: == 4\n got: 3")
494
+ end
495
+
496
+ it 'works when the target overrides `#send`' do
497
+ klass = Struct.new(:message) do
498
+ def send
499
+ :message_sent
500
+ end
501
+ end
502
+
503
+ msg_1 = klass.new("hello")
504
+ msg_2 = klass.new("hello")
505
+ expect(msg_1).to be == msg_2
506
+ end
507
+ end
508
+
509
+ RSpec.describe "expect(...).to be =~" do
510
+ it "passes when =~ operator returns true" do
511
+ expect("a string").to be =~ /str/
512
+ end
513
+
514
+ it "fails when =~ operator returns false" do
515
+ expect {
516
+ expect("a string").to be =~ /blah/
517
+ }.to fail_with(%Q|expected: =~ /blah/\n got: "a string"|)
518
+ end
519
+ end
520
+
521
+ RSpec.describe "should be =~", :uses_should do
522
+ it "passes when =~ operator returns true" do
523
+ "a string".should be =~ /str/
524
+ end
525
+
526
+ it "fails when =~ operator returns false" do
527
+ expect {
528
+ "a string".should be =~ /blah/
529
+ }.to fail_with(%Q|expected: =~ /blah/\n got: "a string"|)
530
+ end
531
+ end
532
+
533
+ RSpec.describe "expect(...).to be ===" do
534
+ it "passes when === operator returns true" do
535
+ expect(Hash).to be === Hash.new
536
+ end
537
+
538
+ it "fails when === operator returns false" do
539
+ expect {
540
+ expect(Hash).to be === "not a hash"
541
+ }.to fail_with(%[expected: === "not a hash"\n got: Hash])
542
+ end
543
+ end
544
+
545
+ RSpec.describe "expect(...).not_to with comparison operators" do
546
+ it "coaches user to stop using operators with expect().not_to with numerical comparison operators" do
547
+ expect {
548
+ expect(5).not_to be < 6
549
+ }.to fail_with("`expect(5).not_to be < 6` not only FAILED, it is a bit confusing.")
550
+
551
+ expect {
552
+ expect(5).not_to be <= 6
553
+ }.to fail_with("`expect(5).not_to be <= 6` not only FAILED, it is a bit confusing.")
554
+
555
+ expect {
556
+ expect(6).not_to be > 5
557
+ }.to fail_with("`expect(6).not_to be > 5` not only FAILED, it is a bit confusing.")
558
+
559
+ expect {
560
+ expect(6).not_to be >= 5
561
+ }.to fail_with("`expect(6).not_to be >= 5` not only FAILED, it is a bit confusing.")
562
+ end
563
+
564
+ it "coaches users to stop using negation with string comparison operators" do
565
+ expect {
566
+ expect("foo").not_to be > "bar"
567
+ }.to fail_with('`expect("foo").not_to be > "bar"` not only FAILED, it is a bit confusing.')
568
+ end
569
+ end
570
+
571
+ RSpec.describe "expect(...).not_to with equality operators" do
572
+ it "raises normal error with expect().not_to with equality operators" do
573
+ expect {
574
+ expect(6).not_to be == 6
575
+ }.to fail_with("`expect(6).not_to be == 6`")
576
+
577
+ expect {
578
+ expect(String).not_to be === "Hello"
579
+ }.to fail_with('`expect(String).not_to be === "Hello"`')
580
+ end
581
+ end
582
+
583
+ RSpec.describe "expect(...).to be" do
584
+ it "passes if actual is truthy" do
585
+ expect(true).to be
586
+ expect(1).to be
587
+ end
588
+
589
+ it "fails if actual is false" do
590
+ expect {
591
+ expect(false).to be
592
+ }.to fail_with("expected false to evaluate to true")
593
+ end
594
+
595
+ it "fails if actual is nil" do
596
+ expect {
597
+ expect(nil).to be
598
+ }.to fail_with("expected nil to evaluate to true")
599
+ end
600
+
601
+ it "describes itself" do
602
+ expect(be.description).to eq "be"
603
+ end
604
+ end
605
+
606
+ RSpec.describe "expect(...).not_to be" do
607
+ it "passes if actual is falsy" do
608
+ expect(false).not_to be
609
+ expect(nil).not_to be
610
+ end
611
+
612
+ it "fails on true" do
613
+ expect {
614
+ expect(true).not_to be
615
+ }.to fail_with("expected true to evaluate to false")
616
+ end
617
+ end
618
+
619
+ RSpec.describe "expect(...).to be(value)" do
620
+ it "delegates to equal" do
621
+ matcher = equal(5)
622
+ expect(self).to receive(:equal).with(5).and_return(matcher)
623
+ expect(5).to be(5)
624
+ end
625
+ end
626
+
627
+ RSpec.describe "expect(...).not_to be(value)" do
628
+ it "delegates to equal" do
629
+ matcher = equal(4)
630
+ expect(self).to receive(:equal).with(4).and_return(matcher)
631
+ expect(5).not_to be(4)
632
+ end
633
+ end
634
+
635
+ RSpec.describe "'expect(...).to be' with operator" do
636
+ it "includes 'be' in the description" do
637
+ expect((be > 6).description).to match(/be > 6/)
638
+ expect((be >= 6).description).to match(/be >= 6/)
639
+ expect((be <= 6).description).to match(/be <= 6/)
640
+ expect((be < 6).description).to match(/be < 6/)
641
+ end
642
+ end
643
+
644
+
645
+ RSpec.describe "arbitrary predicate with DelegateClass" do
646
+ it "accesses methods defined in the delegating class (LH[#48])" do
647
+ require 'delegate'
648
+ class ArrayDelegate < DelegateClass(Array)
649
+ def initialize(array)
650
+ @internal_array = array
651
+ super(@internal_array)
652
+ end
653
+
654
+ def large?
655
+ @internal_array.size >= 5
656
+ end
657
+ end
658
+
659
+ delegate = ArrayDelegate.new([1,2,3,4,5,6])
660
+ expect(delegate).to be_large
661
+ end
662
+ end
663
+
664
+ RSpec.describe "be_a, be_an" do
665
+ it "passes when class matches" do
666
+ expect("foobar").to be_a(String)
667
+ expect([1,2,3]).to be_an(Array)
668
+ end
669
+
670
+ it "fails when class does not match" do
671
+ expect("foobar").not_to be_a(Hash)
672
+ expect([1,2,3]).not_to be_an(Integer)
673
+ end
674
+ end
675
+
676
+ RSpec.describe "be_an_instance_of" do
677
+ it "passes when direct class matches" do
678
+ expect(5).to be_an_instance_of(Fixnum)
679
+ end
680
+
681
+ it "fails when class is higher up hierarchy" do
682
+ expect(5).not_to be_an_instance_of(Numeric)
683
+ end
684
+ end
685
+