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.
- checksums.yaml +7 -0
- data/.gitignore +5 -0
- data/.gitmodules +15 -0
- data/.travis.yml +51 -0
- data/.yardopts +5 -0
- data/CHANGELOG.md +54 -0
- data/Gemfile +19 -0
- data/README.md +325 -0
- data/Rakefile +169 -0
- data/config.ru +15 -0
- data/example/Gemfile +4 -0
- data/example/README.md +13 -0
- data/example/Rakefile +8 -0
- data/example/opal/user.rb +11 -0
- data/example/spec/user_spec.rb +15 -0
- data/gemfiles/opal_master.gemfile +18 -0
- data/lib/opal-rspec.rb +2 -0
- data/lib/opal/rspec.rb +39 -0
- data/lib/opal/rspec/cached_environment.rb +25 -0
- data/lib/opal/rspec/post_rack_locator.rb +20 -0
- data/lib/opal/rspec/pre_rack_locator.rb +32 -0
- data/lib/opal/rspec/rake_task.rb +132 -0
- data/lib/opal/rspec/sprockets_environment.rb +37 -0
- data/lib/opal/rspec/version.rb +5 -0
- data/opal-rspec.gemspec +21 -0
- data/opal/opal-rspec.rb +1 -0
- data/opal/opal/rspec.rb +23 -0
- data/opal/opal/rspec/async.rb +5 -0
- data/opal/opal/rspec/async/async_example.rb +96 -0
- data/opal/opal/rspec/async/example_group.rb +96 -0
- data/opal/opal/rspec/async/hooks.rb +10 -0
- data/opal/opal/rspec/async/legacy.rb +50 -0
- data/opal/opal/rspec/async/reporter.rb +9 -0
- data/opal/opal/rspec/fixes.rb +5 -0
- data/opal/opal/rspec/fixes/opal.rb +5 -0
- data/opal/opal/rspec/fixes/opal/class.rb +8 -0
- data/opal/opal/rspec/fixes/opal/compatibility.rb +228 -0
- data/opal/opal/rspec/fixes/opal/corelib.rb +3 -0
- data/opal/opal/rspec/fixes/opal/corelib/error.rb +61 -0
- data/opal/opal/rspec/fixes/opal/corelib/regexp.rb +92 -0
- data/opal/opal/rspec/fixes/opal/corelib/struct.rb +260 -0
- data/opal/opal/rspec/fixes/opal/kernel.rb +80 -0
- data/opal/opal/rspec/fixes/opal/stdlib.rb +2 -0
- data/opal/opal/rspec/fixes/opal/stdlib/pp.rb +23 -0
- data/opal/opal/rspec/fixes/opal/stdlib/set.rb +36 -0
- data/opal/opal/rspec/fixes/rspec.rb +7 -0
- data/opal/opal/rspec/fixes/rspec/caller_filter.rb +6 -0
- data/opal/opal/rspec/fixes/rspec/core.rb +9 -0
- data/opal/opal/rspec/fixes/rspec/core/configuration.rb +11 -0
- data/opal/opal/rspec/fixes/rspec/core/example.rb +20 -0
- data/opal/opal/rspec/fixes/rspec/core/example_group.rb +9 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters.rb +6 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters/backtrace_formatter.rb +20 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters/console_codes.rb +11 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters/deprecation_formatter.rb +20 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters/generated_deprecation_message.rb +15 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters/json_formatter.rb +10 -0
- data/opal/opal/rspec/fixes/rspec/core/formatters/loader.rb +38 -0
- data/opal/opal/rspec/fixes/rspec/core/metadata.rb +39 -0
- data/opal/opal/rspec/fixes/rspec/core/notifications.rb +3 -0
- data/opal/opal/rspec/fixes/rspec/core/notifications/examples_notification.rb +30 -0
- data/opal/opal/rspec/fixes/rspec/core/notifications/failed_example_notification.rb +20 -0
- data/opal/opal/rspec/fixes/rspec/core/notifications/summary_notification.rb +26 -0
- data/opal/opal/rspec/fixes/rspec/core/ordering.rb +1 -0
- data/opal/opal/rspec/fixes/rspec/core/ordering/random.rb +13 -0
- data/opal/opal/rspec/fixes/rspec/core/reporter.rb +14 -0
- data/opal/opal/rspec/fixes/rspec/core/warnings.rb +18 -0
- data/opal/opal/rspec/fixes/rspec/example_groups.rb +49 -0
- data/opal/opal/rspec/fixes/rspec/expectations.rb +2 -0
- data/opal/opal/rspec/fixes/rspec/expectations/fail_with.rb +21 -0
- data/opal/opal/rspec/fixes/rspec/expectations/syntax.rb +25 -0
- data/opal/opal/rspec/fixes/rspec/matchers.rb +2 -0
- data/opal/opal/rspec/fixes/rspec/matchers/built_in.rb +4 -0
- data/opal/opal/rspec/fixes/rspec/matchers/built_in/all.rb +10 -0
- data/opal/opal/rspec/fixes/rspec/matchers/built_in/compound.rb +15 -0
- data/opal/opal/rspec/fixes/rspec/matchers/built_in/start_and_end_with.rb +42 -0
- data/opal/opal/rspec/fixes/rspec/matchers/built_in/yield.rb +21 -0
- data/opal/opal/rspec/fixes/rspec/matchers/pretty.rb +15 -0
- data/opal/opal/rspec/fixes/rspec/mocks.rb +4 -0
- data/opal/opal/rspec/fixes/rspec/mocks/error_generator.rb +40 -0
- data/opal/opal/rspec/fixes/rspec/mocks/space.rb +37 -0
- data/opal/opal/rspec/fixes/rspec/mocks/test_double.rb +39 -0
- data/opal/opal/rspec/fixes/rspec/mocks/verifying_double.rb +29 -0
- data/opal/opal/rspec/fixes/rspec/support.rb +4 -0
- data/opal/opal/rspec/fixes/rspec/support/encoded_string.rb +10 -0
- data/opal/opal/rspec/fixes/rspec/support/fuzzy_matcher.rb +23 -0
- data/opal/opal/rspec/fixes/rspec/support/recursive_const_methods.rb +7 -0
- data/opal/opal/rspec/fixes/rspec/support/ruby_features.rb +8 -0
- data/opal/opal/rspec/fixes/rspec/support/warnings.rb +18 -0
- data/opal/opal/rspec/formatter/browser_formatter.rb +38 -0
- data/opal/opal/rspec/formatter/document_io.rb +27 -0
- data/opal/opal/rspec/formatter/element.rb +100 -0
- data/opal/opal/rspec/formatter/html_printer.rb +121 -0
- data/opal/opal/rspec/formatter/noop_flush_string_io.rb +9 -0
- data/opal/opal/rspec/formatter/opal_closed_tty_io.rb +27 -0
- data/opal/opal/rspec/pre_require_fixes.rb +11 -0
- data/opal/opal/rspec/requires.rb +145 -0
- data/opal/opal/rspec/runner.rb +91 -0
- data/opal/opal/rspec/spec_opts.rb.erb +28 -0
- data/opal/opal/rspec/sprockets_runner.rb.erb +13 -0
- data/rspec-core/benchmarks/call_v_yield.rb +81 -0
- data/rspec-core/benchmarks/check_inclusion.rb +125 -0
- data/rspec-core/benchmarks/define_method_v_attr_reader_v_def.rb +81 -0
- data/rspec-core/benchmarks/eager_vs_lazy_metadata.rb +126 -0
- data/rspec-core/benchmarks/eager_vs_lazy_metadata/define_examples.rb +22 -0
- data/rspec-core/benchmarks/filter_object.rb +35 -0
- data/rspec-core/benchmarks/index_v_take_while.rb +47 -0
- data/rspec-core/benchmarks/map_then_flatten_vs_flat_map_benchmarks.rb +94 -0
- data/rspec-core/benchmarks/require_relative_v_require.rb +75 -0
- data/rspec-core/benchmarks/respond_to_v_defined.rb +72 -0
- data/rspec-core/benchmarks/several_regexps_v_one_big_one.rb +86 -0
- data/rspec-core/benchmarks/sort_by_v_shuffle.rb +83 -0
- data/rspec-core/benchmarks/to_proc_v_not_to_proc.rb +539 -0
- data/rspec-core/features/step_definitions/additional_cli_steps.rb +126 -0
- data/rspec-core/features/step_definitions/core_standalone_steps.rb +12 -0
- data/rspec-core/features/support/env.rb +21 -0
- data/rspec-core/features/support/require_expect_syntax_in_aruba_specs.rb +29 -0
- data/rspec-core/features/support/rubinius.rb +6 -0
- data/rspec-core/lib/rspec/autorun.rb +2 -0
- data/rspec-core/lib/rspec/core.rb +169 -0
- data/rspec-core/lib/rspec/core/backport_random.rb +336 -0
- data/rspec-core/lib/rspec/core/backtrace_formatter.rb +66 -0
- data/rspec-core/lib/rspec/core/configuration.rb +1440 -0
- data/rspec-core/lib/rspec/core/configuration_options.rb +173 -0
- data/rspec-core/lib/rspec/core/drb.rb +111 -0
- data/rspec-core/lib/rspec/core/dsl.rb +93 -0
- data/rspec-core/lib/rspec/core/example.rb +502 -0
- data/rspec-core/lib/rspec/core/example_group.rb +606 -0
- data/rspec-core/lib/rspec/core/filter_manager.rb +259 -0
- data/rspec-core/lib/rspec/core/flat_map.rb +18 -0
- data/rspec-core/lib/rspec/core/formatters.rb +240 -0
- data/rspec-core/lib/rspec/core/formatters/base_formatter.rb +67 -0
- data/rspec-core/lib/rspec/core/formatters/base_text_formatter.rb +76 -0
- data/rspec-core/lib/rspec/core/formatters/console_codes.rb +64 -0
- data/rspec-core/lib/rspec/core/formatters/deprecation_formatter.rb +222 -0
- data/rspec-core/lib/rspec/core/formatters/documentation_formatter.rb +68 -0
- data/rspec-core/lib/rspec/core/formatters/helpers.rb +87 -0
- data/rspec-core/lib/rspec/core/formatters/html_formatter.rb +149 -0
- data/rspec-core/lib/rspec/core/formatters/html_printer.rb +403 -0
- data/rspec-core/lib/rspec/core/formatters/json_formatter.rb +94 -0
- data/rspec-core/lib/rspec/core/formatters/profile_formatter.rb +65 -0
- data/rspec-core/lib/rspec/core/formatters/progress_formatter.rb +28 -0
- data/rspec-core/lib/rspec/core/formatters/protocol.rb +163 -0
- data/rspec-core/lib/rspec/core/formatters/snippet_extractor.rb +104 -0
- data/rspec-core/lib/rspec/core/hooks.rb +591 -0
- data/rspec-core/lib/rspec/core/memoized_helpers.rb +472 -0
- data/rspec-core/lib/rspec/core/metadata.rb +437 -0
- data/rspec-core/lib/rspec/core/metadata_filter.rb +95 -0
- data/rspec-core/lib/rspec/core/minitest_assertions_adapter.rb +28 -0
- data/rspec-core/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
- data/rspec-core/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
- data/rspec-core/lib/rspec/core/mocking_adapters/null.rb +14 -0
- data/rspec-core/lib/rspec/core/mocking_adapters/rr.rb +31 -0
- data/rspec-core/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
- data/rspec-core/lib/rspec/core/notifications.rb +542 -0
- data/rspec-core/lib/rspec/core/option_parser.rb +222 -0
- data/rspec-core/lib/rspec/core/ordering.rb +155 -0
- data/rspec-core/lib/rspec/core/pending.rb +163 -0
- data/rspec-core/lib/rspec/core/project_initializer.rb +48 -0
- data/rspec-core/lib/rspec/core/project_initializer/spec/spec_helper.rb +89 -0
- data/rspec-core/lib/rspec/core/rake_task.rb +187 -0
- data/rspec-core/lib/rspec/core/reporter.rb +149 -0
- data/rspec-core/lib/rspec/core/ruby_project.rb +45 -0
- data/rspec-core/lib/rspec/core/runner.rb +158 -0
- data/rspec-core/lib/rspec/core/shared_context.rb +55 -0
- data/rspec-core/lib/rspec/core/shared_example_group.rb +182 -0
- data/rspec-core/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
- data/rspec-core/lib/rspec/core/version.rb +9 -0
- data/rspec-core/lib/rspec/core/warnings.rb +40 -0
- data/rspec-core/lib/rspec/core/world.rb +183 -0
- data/rspec-core/spec/command_line/order_spec.rb +213 -0
- data/rspec-core/spec/rspec/core/backtrace_formatter_spec.rb +306 -0
- data/rspec-core/spec/rspec/core/configuration_options_spec.rb +425 -0
- data/rspec-core/spec/rspec/core/configuration_spec.rb +1963 -0
- data/rspec-core/spec/rspec/core/drb_spec.rb +278 -0
- data/rspec-core/spec/rspec/core/dsl_spec.rb +85 -0
- data/rspec-core/spec/rspec/core/example_execution_result_spec.rb +142 -0
- data/rspec-core/spec/rspec/core/example_group_constants_spec.rb +16 -0
- data/rspec-core/spec/rspec/core/example_group_spec.rb +1621 -0
- data/rspec-core/spec/rspec/core/example_spec.rb +662 -0
- data/rspec-core/spec/rspec/core/failed_example_notification_spec.rb +25 -0
- data/rspec-core/spec/rspec/core/filter_manager_spec.rb +299 -0
- data/rspec-core/spec/rspec/core/formatters/base_text_formatter_spec.rb +182 -0
- data/rspec-core/spec/rspec/core/formatters/console_codes_spec.rb +65 -0
- data/rspec-core/spec/rspec/core/formatters/deprecation_formatter_spec.rb +225 -0
- data/rspec-core/spec/rspec/core/formatters/documentation_formatter_spec.rb +111 -0
- data/rspec-core/spec/rspec/core/formatters/helpers_spec.rb +104 -0
- data/rspec-core/spec/rspec/core/formatters/html_formatter_spec.rb +111 -0
- data/rspec-core/spec/rspec/core/formatters/json_formatter_spec.rb +183 -0
- data/rspec-core/spec/rspec/core/formatters/profile_formatter_spec.rb +99 -0
- data/rspec-core/spec/rspec/core/formatters/progress_formatter_spec.rb +55 -0
- data/rspec-core/spec/rspec/core/formatters/snippet_extractor_spec.rb +26 -0
- data/rspec-core/spec/rspec/core/formatters_spec.rb +160 -0
- data/rspec-core/spec/rspec/core/hooks_filtering_spec.rb +227 -0
- data/rspec-core/spec/rspec/core/hooks_spec.rb +447 -0
- data/rspec-core/spec/rspec/core/memoized_helpers_spec.rb +537 -0
- data/rspec-core/spec/rspec/core/metadata_filter_spec.rb +181 -0
- data/rspec-core/spec/rspec/core/metadata_spec.rb +642 -0
- data/rspec-core/spec/rspec/core/notifications_spec.rb +92 -0
- data/rspec-core/spec/rspec/core/option_parser_spec.rb +270 -0
- data/rspec-core/spec/rspec/core/ordering_spec.rb +102 -0
- data/rspec-core/spec/rspec/core/pending_example_spec.rb +221 -0
- data/rspec-core/spec/rspec/core/pending_spec.rb +8 -0
- data/rspec-core/spec/rspec/core/project_initializer_spec.rb +123 -0
- data/rspec-core/spec/rspec/core/rake_task_spec.rb +351 -0
- data/rspec-core/spec/rspec/core/random_spec.rb +47 -0
- data/rspec-core/spec/rspec/core/reporter_spec.rb +198 -0
- data/rspec-core/spec/rspec/core/resources/a_bar.rb +0 -0
- data/rspec-core/spec/rspec/core/resources/a_foo.rb +0 -0
- data/rspec-core/spec/rspec/core/resources/a_spec.rb +1 -0
- data/rspec-core/spec/rspec/core/resources/acceptance/bar.rb +0 -0
- data/rspec-core/spec/rspec/core/resources/acceptance/foo_spec.rb +0 -0
- data/rspec-core/spec/rspec/core/resources/custom_example_group_runner.rb +14 -0
- data/rspec-core/spec/rspec/core/resources/formatter_specs.rb +58 -0
- data/rspec-core/spec/rspec/core/resources/utf8_encoded.rb +9 -0
- data/rspec-core/spec/rspec/core/rspec_matchers_spec.rb +45 -0
- data/rspec-core/spec/rspec/core/ruby_project_spec.rb +26 -0
- data/rspec-core/spec/rspec/core/runner_spec.rb +309 -0
- data/rspec-core/spec/rspec/core/shared_context_spec.rb +102 -0
- data/rspec-core/spec/rspec/core/shared_example_group_spec.rb +268 -0
- data/rspec-core/spec/rspec/core/warnings_spec.rb +72 -0
- data/rspec-core/spec/rspec/core/world_spec.rb +142 -0
- data/rspec-core/spec/rspec/core_spec.rb +103 -0
- data/rspec-core/spec/spec_helper.rb +89 -0
- data/rspec-core/spec/support/config_options_helper.rb +13 -0
- data/rspec-core/spec/support/fake_minitest/minitest.rb +0 -0
- data/rspec-core/spec/support/fake_minitest/minitest/minitest_assertions.rb +4 -0
- data/rspec-core/spec/support/fake_minitest/test/unit/assertions.rb +6 -0
- data/rspec-core/spec/support/formatter_support.rb +263 -0
- data/rspec-core/spec/support/helper_methods.rb +26 -0
- data/rspec-core/spec/support/isolated_home_directory.rb +16 -0
- data/rspec-core/spec/support/matchers.rb +103 -0
- data/rspec-core/spec/support/mathn_integration_support.rb +12 -0
- data/rspec-core/spec/support/sandboxing.rb +50 -0
- data/rspec-core/spec/support/shared_example_groups.rb +43 -0
- data/rspec-core/spec/support/spec_files.rb +44 -0
- data/rspec-expectations/benchmarks/2.x_vs_3.x_matcher_dsl_implementation.rb +253 -0
- data/rspec-expectations/benchmarks/autoload_v_require.rb +25 -0
- data/rspec-expectations/benchmarks/cloning_matchers.rb +19 -0
- data/rspec-expectations/benchmarks/default_messages_as_methods_v_blocks.rb +27 -0
- data/rspec-expectations/benchmarks/example_spec.rb +9 -0
- data/rspec-expectations/benchmarks/include_v_superclass.rb +39 -0
- data/rspec-expectations/benchmarks/match_array/failing_with_distinct_items.rb +147 -0
- data/rspec-expectations/benchmarks/match_array/failing_with_duplicate_items.rb +122 -0
- data/rspec-expectations/benchmarks/match_array/passing_with_distinct_items.rb +154 -0
- data/rspec-expectations/benchmarks/match_array/passing_with_duplicate_items.rb +132 -0
- data/rspec-expectations/benchmarks/match_array/rubyprof/passing_with_distinct_items.rb +9 -0
- data/rspec-expectations/benchmarks/matcher_dsl_vs_classes.rb +180 -0
- data/rspec-expectations/benchmarks/method_to_proc.rb +72 -0
- data/rspec-expectations/benchmarks/set_vs_array_include.rb +68 -0
- data/rspec-expectations/features/step_definitions/additional_cli_steps.rb +22 -0
- data/rspec-expectations/features/support/disallow_certain_apis.rb +34 -0
- data/rspec-expectations/features/support/env.rb +21 -0
- data/rspec-expectations/features/support/rubinius.rb +6 -0
- data/rspec-expectations/lib/rspec/expectations.rb +68 -0
- data/rspec-expectations/lib/rspec/expectations/configuration.rb +147 -0
- data/rspec-expectations/lib/rspec/expectations/expectation_target.rb +119 -0
- data/rspec-expectations/lib/rspec/expectations/fail_with.rb +34 -0
- data/rspec-expectations/lib/rspec/expectations/handler.rb +167 -0
- data/rspec-expectations/lib/rspec/expectations/minitest_integration.rb +17 -0
- data/rspec-expectations/lib/rspec/expectations/syntax.rb +132 -0
- data/rspec-expectations/lib/rspec/expectations/version.rb +8 -0
- data/rspec-expectations/lib/rspec/matchers.rb +967 -0
- data/rspec-expectations/lib/rspec/matchers/aliased_matcher.rb +116 -0
- data/rspec-expectations/lib/rspec/matchers/built_in.rb +52 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/all.rb +85 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/base_matcher.rb +132 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/be.rb +277 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/be_between.rb +77 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/be_within.rb +72 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/change.rb +337 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/compound.rb +258 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/contain_exactly.rb +249 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/cover.rb +24 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/eq.rb +75 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/eql.rb +34 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/equal.rb +81 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/exist.rb +86 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/has.rb +101 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/have_attributes.rb +84 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/include.rb +105 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/match.rb +29 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/operators.rb +119 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/output.rb +152 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/raise_error.rb +174 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/respond_to.rb +91 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/satisfy.rb +39 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/start_and_end_with.rb +82 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
- data/rspec-expectations/lib/rspec/matchers/built_in/yield.rb +420 -0
- data/rspec-expectations/lib/rspec/matchers/composable.rb +183 -0
- data/rspec-expectations/lib/rspec/matchers/dsl.rb +391 -0
- data/rspec-expectations/lib/rspec/matchers/generated_descriptions.rb +42 -0
- data/rspec-expectations/lib/rspec/matchers/matcher_delegator.rb +33 -0
- data/rspec-expectations/lib/rspec/matchers/matcher_protocol.rb +99 -0
- data/rspec-expectations/lib/rspec/matchers/pretty.rb +77 -0
- data/rspec-expectations/spec/rspec/expectations/configuration_spec.rb +226 -0
- data/rspec-expectations/spec/rspec/expectations/expectation_target_spec.rb +147 -0
- data/rspec-expectations/spec/rspec/expectations/extensions/kernel_spec.rb +69 -0
- data/rspec-expectations/spec/rspec/expectations/fail_with_spec.rb +73 -0
- data/rspec-expectations/spec/rspec/expectations/handler_spec.rb +200 -0
- data/rspec-expectations/spec/rspec/expectations/minitest_integration_spec.rb +25 -0
- data/rspec-expectations/spec/rspec/expectations/syntax_spec.rb +93 -0
- data/rspec-expectations/spec/rspec/expectations_spec.rb +15 -0
- data/rspec-expectations/spec/rspec/matchers/aliased_matcher_spec.rb +113 -0
- data/rspec-expectations/spec/rspec/matchers/aliases_spec.rb +455 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/all_spec.rb +212 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/base_matcher_spec.rb +140 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/be_between_spec.rb +157 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/be_instance_of_spec.rb +61 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/be_kind_of_spec.rb +39 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/be_spec.rb +685 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/be_within_spec.rb +139 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/change_spec.rb +829 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/compound_spec.rb +537 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/contain_exactly_spec.rb +556 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/cover_spec.rb +67 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/eq_spec.rb +176 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/eql_spec.rb +39 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/equal_spec.rb +130 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/exist_spec.rb +139 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/has_spec.rb +179 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/have_attributes_spec.rb +177 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/include_spec.rb +587 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/match_spec.rb +100 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/operators_spec.rb +250 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/output_spec.rb +168 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/raise_error_spec.rb +446 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/respond_to_spec.rb +290 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/satisfy_spec.rb +42 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/start_and_end_with_spec.rb +347 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/throw_symbol_spec.rb +133 -0
- data/rspec-expectations/spec/rspec/matchers/built_in/yield_spec.rb +643 -0
- data/rspec-expectations/spec/rspec/matchers/composable_spec.rb +77 -0
- data/rspec-expectations/spec/rspec/matchers/define_negated_matcher_spec.rb +199 -0
- data/rspec-expectations/spec/rspec/matchers/description_generation_spec.rb +189 -0
- data/rspec-expectations/spec/rspec/matchers/dsl_spec.rb +1036 -0
- data/rspec-expectations/spec/rspec/matchers/legacy_spec.rb +104 -0
- data/rspec-expectations/spec/rspec/matchers_spec.rb +108 -0
- data/rspec-expectations/spec/spec_helper.rb +94 -0
- data/rspec-expectations/spec/support/matchers.rb +54 -0
- data/rspec-expectations/spec/support/shared_examples.rb +101 -0
- data/rspec-mocks/benchmarks/double_creation.rb +66 -0
- data/rspec-mocks/benchmarks/each_value_v_values_each.rb +58 -0
- data/rspec-mocks/benchmarks/find_original_method_early.rb +64 -0
- data/rspec-mocks/benchmarks/method_defined_at_any_visibility.rb +101 -0
- data/rspec-mocks/benchmarks/thread_safety.rb +24 -0
- data/rspec-mocks/benchmarks/transfer_nested_constants.rb +77 -0
- data/rspec-mocks/features/step_definitions/additional_cli_steps.rb +21 -0
- data/rspec-mocks/features/support/disallow_certain_apis.rb +24 -0
- data/rspec-mocks/features/support/env.rb +22 -0
- data/rspec-mocks/features/support/rubinius.rb +6 -0
- data/rspec-mocks/lib/rspec/mocks.rb +126 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance.rb +10 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/chain.rb +109 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/expect_chain_chain.rb +35 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/expectation_chain.rb +48 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/message_chains.rb +85 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/proxy.rb +116 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/recorder.rb +267 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/stub_chain.rb +45 -0
- data/rspec-mocks/lib/rspec/mocks/any_instance/stub_chain_chain.rb +27 -0
- data/rspec-mocks/lib/rspec/mocks/argument_list_matcher.rb +72 -0
- data/rspec-mocks/lib/rspec/mocks/argument_matchers.rb +282 -0
- data/rspec-mocks/lib/rspec/mocks/configuration.rb +157 -0
- data/rspec-mocks/lib/rspec/mocks/error_generator.rb +253 -0
- data/rspec-mocks/lib/rspec/mocks/example_methods.rb +379 -0
- data/rspec-mocks/lib/rspec/mocks/instance_method_stasher.rb +135 -0
- data/rspec-mocks/lib/rspec/mocks/marshal_extension.rb +41 -0
- data/rspec-mocks/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
- data/rspec-mocks/lib/rspec/mocks/matchers/have_received.rb +121 -0
- data/rspec-mocks/lib/rspec/mocks/matchers/receive.rb +106 -0
- data/rspec-mocks/lib/rspec/mocks/matchers/receive_message_chain.rb +66 -0
- data/rspec-mocks/lib/rspec/mocks/matchers/receive_messages.rb +71 -0
- data/rspec-mocks/lib/rspec/mocks/message_chain.rb +91 -0
- data/rspec-mocks/lib/rspec/mocks/message_expectation.rb +694 -0
- data/rspec-mocks/lib/rspec/mocks/method_double.rb +260 -0
- data/rspec-mocks/lib/rspec/mocks/method_reference.rb +155 -0
- data/rspec-mocks/lib/rspec/mocks/mutate_const.rb +324 -0
- data/rspec-mocks/lib/rspec/mocks/object_reference.rb +91 -0
- data/rspec-mocks/lib/rspec/mocks/order_group.rb +81 -0
- data/rspec-mocks/lib/rspec/mocks/proxy.rb +431 -0
- data/rspec-mocks/lib/rspec/mocks/space.rb +221 -0
- data/rspec-mocks/lib/rspec/mocks/standalone.rb +3 -0
- data/rspec-mocks/lib/rspec/mocks/syntax.rb +329 -0
- data/rspec-mocks/lib/rspec/mocks/targets.rb +97 -0
- data/rspec-mocks/lib/rspec/mocks/test_double.rb +135 -0
- data/rspec-mocks/lib/rspec/mocks/verifying_double.rb +127 -0
- data/rspec-mocks/lib/rspec/mocks/verifying_message_expecation.rb +62 -0
- data/rspec-mocks/lib/rspec/mocks/verifying_proxy.rb +171 -0
- data/rspec-mocks/lib/rspec/mocks/version.rb +9 -0
- data/rspec-mocks/spec/rspec/mocks/and_call_original_spec.rb +267 -0
- data/rspec-mocks/spec/rspec/mocks/and_return_spec.rb +21 -0
- data/rspec-mocks/spec/rspec/mocks/and_wrap_original_spec.rb +63 -0
- data/rspec-mocks/spec/rspec/mocks/and_yield_spec.rb +161 -0
- data/rspec-mocks/spec/rspec/mocks/any_instance/message_chains_spec.rb +39 -0
- data/rspec-mocks/spec/rspec/mocks/any_instance_spec.rb +1242 -0
- data/rspec-mocks/spec/rspec/mocks/argument_matchers_spec.rb +336 -0
- data/rspec-mocks/spec/rspec/mocks/array_including_matcher_spec.rb +39 -0
- data/rspec-mocks/spec/rspec/mocks/at_least_spec.rb +147 -0
- data/rspec-mocks/spec/rspec/mocks/at_most_spec.rb +113 -0
- data/rspec-mocks/spec/rspec/mocks/before_all_spec.rb +75 -0
- data/rspec-mocks/spec/rspec/mocks/block_return_value_spec.rb +68 -0
- data/rspec-mocks/spec/rspec/mocks/combining_implementation_instructions_spec.rb +196 -0
- data/rspec-mocks/spec/rspec/mocks/configuration_spec.rb +175 -0
- data/rspec-mocks/spec/rspec/mocks/double_spec.rb +830 -0
- data/rspec-mocks/spec/rspec/mocks/example_methods_spec.rb +11 -0
- data/rspec-mocks/spec/rspec/mocks/expiration_spec.rb +90 -0
- data/rspec-mocks/spec/rspec/mocks/hash_excluding_matcher_spec.rb +65 -0
- data/rspec-mocks/spec/rspec/mocks/hash_including_matcher_spec.rb +92 -0
- data/rspec-mocks/spec/rspec/mocks/instance_method_stasher_spec.rb +72 -0
- data/rspec-mocks/spec/rspec/mocks/marshal_extension_spec.rb +67 -0
- data/rspec-mocks/spec/rspec/mocks/matchers/have_received_spec.rb +513 -0
- data/rspec-mocks/spec/rspec/mocks/matchers/receive_message_chain_spec.rb +227 -0
- data/rspec-mocks/spec/rspec/mocks/matchers/receive_messages_spec.rb +148 -0
- data/rspec-mocks/spec/rspec/mocks/matchers/receive_spec.rb +525 -0
- data/rspec-mocks/spec/rspec/mocks/methods_spec.rb +24 -0
- data/rspec-mocks/spec/rspec/mocks/mock_expectation_error_spec.rb +20 -0
- data/rspec-mocks/spec/rspec/mocks/mock_ordering_spec.rb +112 -0
- data/rspec-mocks/spec/rspec/mocks/multiple_return_value_spec.rb +130 -0
- data/rspec-mocks/spec/rspec/mocks/mutate_const_spec.rb +561 -0
- data/rspec-mocks/spec/rspec/mocks/nil_expectation_warning_spec.rb +52 -0
- data/rspec-mocks/spec/rspec/mocks/null_object_double_spec.rb +135 -0
- data/rspec-mocks/spec/rspec/mocks/once_counts_spec.rb +50 -0
- data/rspec-mocks/spec/rspec/mocks/order_group_spec.rb +26 -0
- data/rspec-mocks/spec/rspec/mocks/partial_double_spec.rb +379 -0
- data/rspec-mocks/spec/rspec/mocks/partial_double_using_mocks_directly_spec.rb +83 -0
- data/rspec-mocks/spec/rspec/mocks/precise_counts_spec.rb +66 -0
- data/rspec-mocks/spec/rspec/mocks/serialization_spec.rb +89 -0
- data/rspec-mocks/spec/rspec/mocks/should_syntax_spec.rb +539 -0
- data/rspec-mocks/spec/rspec/mocks/space_spec.rb +242 -0
- data/rspec-mocks/spec/rspec/mocks/spy_spec.rb +127 -0
- data/rspec-mocks/spec/rspec/mocks/stash_spec.rb +43 -0
- data/rspec-mocks/spec/rspec/mocks/stub_chain_spec.rb +166 -0
- data/rspec-mocks/spec/rspec/mocks/stub_implementation_spec.rb +98 -0
- data/rspec-mocks/spec/rspec/mocks/stub_spec.rb +520 -0
- data/rspec-mocks/spec/rspec/mocks/stubbed_message_expectations_spec.rb +56 -0
- data/rspec-mocks/spec/rspec/mocks/syntax_agnostic_message_matchers_spec.rb +99 -0
- data/rspec-mocks/spec/rspec/mocks/syntax_spec.rb +7 -0
- data/rspec-mocks/spec/rspec/mocks/test_double_spec.rb +53 -0
- data/rspec-mocks/spec/rspec/mocks/thrice_counts_spec.rb +72 -0
- data/rspec-mocks/spec/rspec/mocks/to_ary_spec.rb +52 -0
- data/rspec-mocks/spec/rspec/mocks/twice_counts_spec.rb +64 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/class_double_with_class_loaded_spec.rb +118 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/class_double_with_class_not_loaded_spec.rb +58 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/construction_spec.rb +54 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/expected_arg_verification_spec.rb +81 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/instance_double_with_class_loaded_spec.rb +195 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/instance_double_with_class_not_loaded_spec.rb +57 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/method_visibility_spec.rb +129 -0
- data/rspec-mocks/spec/rspec/mocks/verifying_doubles/object_double_spec.rb +68 -0
- data/rspec-mocks/spec/rspec/mocks_spec.rb +199 -0
- data/rspec-mocks/spec/spec_helper.rb +131 -0
- data/rspec-mocks/spec/support/before_all_shared_example_group.rb +16 -0
- data/rspec-mocks/spec/support/doubled_classes.rb +74 -0
- data/rspec-mocks/spec/support/matchers.rb +15 -0
- data/rspec-support/benchmarks/caller.rb +81 -0
- data/rspec-support/lib/rspec/support.rb +76 -0
- data/rspec-support/lib/rspec/support/caller_filter.rb +63 -0
- data/rspec-support/lib/rspec/support/differ.rb +214 -0
- data/rspec-support/lib/rspec/support/directory_maker.rb +61 -0
- data/rspec-support/lib/rspec/support/encoded_string.rb +69 -0
- data/rspec-support/lib/rspec/support/fuzzy_matcher.rb +48 -0
- data/rspec-support/lib/rspec/support/hunk_generator.rb +47 -0
- data/rspec-support/lib/rspec/support/matcher_definition.rb +31 -0
- data/rspec-support/lib/rspec/support/method_signature_verifier.rb +272 -0
- data/rspec-support/lib/rspec/support/os.rb +18 -0
- data/rspec-support/lib/rspec/support/recursive_const_methods.rb +76 -0
- data/rspec-support/lib/rspec/support/ruby_features.rb +45 -0
- data/rspec-support/lib/rspec/support/spec.rb +72 -0
- data/rspec-support/lib/rspec/support/spec/deprecation_helpers.rb +60 -0
- data/rspec-support/lib/rspec/support/spec/formatting_support.rb +9 -0
- data/rspec-support/lib/rspec/support/spec/in_sub_process.rb +43 -0
- data/rspec-support/lib/rspec/support/spec/prevent_load_time_warnings.rb +44 -0
- data/rspec-support/lib/rspec/support/spec/shell_out.rb +69 -0
- data/rspec-support/lib/rspec/support/spec/stderr_splitter.rb +52 -0
- data/rspec-support/lib/rspec/support/spec/with_isolated_directory.rb +9 -0
- data/rspec-support/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
- data/rspec-support/lib/rspec/support/version.rb +7 -0
- data/rspec-support/lib/rspec/support/version_checker.rb +53 -0
- data/rspec-support/lib/rspec/support/warnings.rb +39 -0
- data/rspec-support/spec/rspec/support/caller_filter_spec.rb +66 -0
- data/rspec-support/spec/rspec/support/differ_spec.rb +322 -0
- data/rspec-support/spec/rspec/support/directory_maker_spec.rb +58 -0
- data/rspec-support/spec/rspec/support/encoded_string_spec.rb +86 -0
- data/rspec-support/spec/rspec/support/fuzzy_matcher_spec.rb +179 -0
- data/rspec-support/spec/rspec/support/method_signature_verifier_spec.rb +357 -0
- data/rspec-support/spec/rspec/support/os_spec.rb +36 -0
- data/rspec-support/spec/rspec/support/recursive_const_methods_spec.rb +49 -0
- data/rspec-support/spec/rspec/support/spec/in_sub_process_spec.rb +36 -0
- data/rspec-support/spec/rspec/support/spec/prevent_load_time_warnings_spec.rb +10 -0
- data/rspec-support/spec/rspec/support/spec/shell_out_spec.rb +44 -0
- data/rspec-support/spec/rspec/support/spec/stderr_splitter_spec.rb +60 -0
- data/rspec-support/spec/rspec/support/spec/with_isolated_std_err_spec.rb +21 -0
- data/rspec-support/spec/rspec/support/version_checker_spec.rb +29 -0
- data/rspec-support/spec/rspec/support/warnings_spec.rb +66 -0
- data/rspec-support/spec/rspec/support_spec.rb +119 -0
- data/rspec-support/spec/spec_helper.rb +2 -0
- data/rspec/lib/rspec.rb +3 -0
- data/rspec/lib/rspec/version.rb +5 -0
- data/spec/mri/integration/browser_spec.rb +31 -0
- data/spec/mri/integration/rack/sprockets_runner_js_errors.rb.erb +20 -0
- data/spec/mri/integration/spec_opts_spec.rb +81 -0
- data/spec/mri/unit/opal/rspec/browser_formatter_spec.rb +35 -0
- data/spec/mri/unit/opal/rspec/cached_environment_spec.rb +85 -0
- data/spec/mri/unit/opal/rspec/opal/browser_formatter_spec.rb +14 -0
- data/spec/mri/unit/opal/rspec/rack/config.ru +12 -0
- data/spec/mri/unit/opal/rspec/rake_task_spec.rb +261 -0
- data/spec/mri/unit/opal/rspec/sprockets_environment_spec.rb +55 -0
- data/spec/mri/unit/opal/rspec/temp_dir_helper.rb +19 -0
- data/spec/opal/after_hooks_spec.rb +140 -0
- data/spec/opal/around_hooks_spec.rb +164 -0
- data/spec/opal/async_spec.rb +184 -0
- data/spec/opal/before_hooks_spec.rb +183 -0
- data/spec/opal/example_spec.rb +174 -0
- data/spec/opal/expected_failures.txt +40 -0
- data/spec/opal/matchers_spec.rb +205 -0
- data/spec/opal/mock_spec.rb +63 -0
- data/spec/opal/should_syntax_spec.rb +17 -0
- data/spec/opal/skip_pending_spec.rb +43 -0
- data/spec/opal/subject_spec.rb +87 -0
- data/spec/other/color_on_by_default_spec.rb +9 -0
- data/spec/other/dummy_spec.rb +5 -0
- data/spec/other/formatter_dependency.rb +3 -0
- data/spec/other/ignored_spec.opal +5 -0
- data/spec/other/test_formatter.rb +9 -0
- data/spec/rspec/core/config.rb +5 -0
- data/spec/rspec/core/config.ru +4 -0
- data/spec/rspec/core/core_spec_loader.rb +46 -0
- data/spec/rspec/core/filter/core/async/example_group.txt +13 -0
- data/spec/rspec/core/filter/core/async/hooks.rb +12 -0
- data/spec/rspec/core/filter/core/async/memoized_helpers.txt +3 -0
- data/spec/rspec/core/filter/core/async/metadata.txt +2 -0
- data/spec/rspec/core/filter/core/bugs/filter_manager.txt +4 -0
- data/spec/rspec/core/filter/core/bugs/formatters.txt +4 -0
- data/spec/rspec/core/filter/core/bugs/memoized_helpers.rb +11 -0
- data/spec/rspec/core/filter/core/bugs/metadata.txt +5 -0
- data/spec/rspec/core/filter/core/bugs/sandbox/subject_issue_test.rb +328 -0
- data/spec/rspec/core/filter/core/bugs/warnings_deprecations.txt +3 -0
- data/spec/rspec/core/filter/core/unsupported/core.txt +5 -0
- data/spec/rspec/core/filter/core/unsupported/example.txt +7 -0
- data/spec/rspec/core/filter/core/unsupported/example_group.txt +13 -0
- data/spec/rspec/core/filter/core/unsupported/filter_manager.txt +7 -0
- data/spec/rspec/core/filter/core/unsupported/formatters.txt +27 -0
- data/spec/rspec/core/filter/core/unsupported/hooks.txt +2 -0
- data/spec/rspec/core/filter/core/unsupported/memoized_helpers.txt +6 -0
- data/spec/rspec/core/filter/core/unsupported/metadata.txt +14 -0
- data/spec/rspec/core/filter/core/unsupported/metadata_filter.txt +2 -0
- data/spec/rspec/core/filter/core/unsupported/notifications.txt +8 -0
- data/spec/rspec/core/filter/core/unsupported/world.txt +3 -0
- data/spec/rspec/core/fixes/missing_constants.rb +20 -0
- data/spec/rspec/core/fixes/opal_itself.rb +38 -0
- data/spec/rspec/core/fixes/shared_examples.rb +3 -0
- data/spec/rspec/core/opal_alternates/rspec/core/example_group_spec.rb +145 -0
- data/spec/rspec/core/opal_alternates/rspec/core/failed_example_notification_spec.rb +31 -0
- data/spec/rspec/core/opal_alternates/rspec/core/hooks_spec.rb +113 -0
- data/spec/rspec/core/opal_alternates/rspec/core/memoized_helpers_spec.rb +36 -0
- data/spec/rspec/core/opal_alternates/rspec/core/metadata_spec.rb +48 -0
- data/spec/rspec/core/require_specs.rb +25 -0
- data/spec/rspec/core/sandboxing.rb +72 -0
- data/spec/rspec/core/spec_files_exclude.txt +41 -0
- data/spec/rspec/expectations/config.rb +16 -0
- data/spec/rspec/expectations/config.ru +4 -0
- data/spec/rspec/expectations/expectation_spec_loader.rb +110 -0
- data/spec/rspec/expectations/filter/bugs/aliased_matcher.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/aliases.rb +13 -0
- data/spec/rspec/expectations/filter/bugs/base_matcher.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/be.rb +4 -0
- data/spec/rspec/expectations/filter/bugs/be_instance_of.rb +7 -0
- data/spec/rspec/expectations/filter/bugs/be_spec.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/configuration.txt +8 -0
- data/spec/rspec/expectations/filter/bugs/contain_exactly.rb +13 -0
- data/spec/rspec/expectations/filter/bugs/define_negated_matcher.rb +9 -0
- data/spec/rspec/expectations/filter/bugs/description_generation.rb +4 -0
- data/spec/rspec/expectations/filter/bugs/dsl.txt +14 -0
- data/spec/rspec/expectations/filter/bugs/equal.txt +3 -0
- data/spec/rspec/expectations/filter/bugs/expectation_target.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/expectations.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/have_attributes.rb +8 -0
- data/spec/rspec/expectations/filter/bugs/include.rb +4 -0
- data/spec/rspec/expectations/filter/bugs/operators.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/raise_error.txt +2 -0
- data/spec/rspec/expectations/filter/bugs/respond_to.rb +13 -0
- data/spec/rspec/expectations/filter/bugs/sandbox/undef.rb +20 -0
- data/spec/rspec/expectations/filter/unsupported/aliases.txt +5 -0
- data/spec/rspec/expectations/filter/unsupported/be.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/be_instance_of.txt +3 -0
- data/spec/rspec/expectations/filter/unsupported/change.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/configuration.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/contain_exactly.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/description_generation.txt +6 -0
- data/spec/rspec/expectations/filter/unsupported/dsl.txt +8 -0
- data/spec/rspec/expectations/filter/unsupported/eq.txt +10 -0
- data/spec/rspec/expectations/filter/unsupported/equal.txt +3 -0
- data/spec/rspec/expectations/filter/unsupported/expectation_target.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/expectations.txt +8 -0
- data/spec/rspec/expectations/filter/unsupported/has.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/include.txt +3 -0
- data/spec/rspec/expectations/filter/unsupported/match.txt +2 -0
- data/spec/rspec/expectations/filter/unsupported/matchers.txt +11 -0
- data/spec/rspec/expectations/filter/unsupported/output.txt +14 -0
- data/spec/rspec/expectations/filter/unsupported/raise_error.txt +3 -0
- data/spec/rspec/expectations/filter/unsupported/respond_to.rb +5 -0
- data/spec/rspec/expectations/filter/unsupported/syntax.txt +3 -0
- data/spec/rspec/expectations/filter/unsupported/yield.txt +2 -0
- data/spec/rspec/expectations/fixes/example_patches.rb +32 -0
- data/spec/rspec/expectations/fixes/missing_constants.rb +12 -0
- data/spec/rspec/expectations/fixes/not_compatible.rb +6 -0
- data/spec/rspec/expectations/fixes/opal_itself.rb +140 -0
- data/spec/rspec/expectations/opal_alternates/be_instance_of_spec.rb +11 -0
- data/spec/rspec/expectations/opal_alternates/dsl_spec.rb +66 -0
- data/spec/rspec/expectations/opal_alternates/expectation_target_spec.rb +21 -0
- data/spec/rspec/expectations/opal_alternates/yield_spec.rb +11 -0
- data/spec/rspec/expectations/require_specs.rb +16 -0
- data/spec/rspec/expectations/shared_examples.rb +47 -0
- data/spec/rspec/expectations/spec_files_exclude.txt +2 -0
- data/spec/rspec/expectations/spec_helper_opal.rb +13 -0
- data/spec/rspec/filter_processor.rb +77 -0
- data/spec/rspec/mocks/config.ru +4 -0
- data/spec/rspec/mocks/filter/bugs/and_call_original.txt +9 -0
- data/spec/rspec/mocks/filter/bugs/and_wrap_original.txt +2 -0
- data/spec/rspec/mocks/filter/bugs/any_instance.rb +24 -0
- data/spec/rspec/mocks/filter/bugs/argument_matchers.rb +3 -0
- data/spec/rspec/mocks/filter/bugs/configuration.txt +2 -0
- data/spec/rspec/mocks/filter/bugs/double.txt +3 -0
- data/spec/rspec/mocks/filter/bugs/expiration.txt +2 -0
- data/spec/rspec/mocks/filter/bugs/instance_method_stasher.txt +2 -0
- data/spec/rspec/mocks/filter/bugs/methods.rb +5 -0
- data/spec/rspec/mocks/filter/bugs/mocks.txt +6 -0
- data/spec/rspec/mocks/filter/bugs/mutate_const.txt +2 -0
- data/spec/rspec/mocks/filter/bugs/partial_double.rb +8 -0
- data/spec/rspec/mocks/filter/bugs/receive.txt +5 -0
- data/spec/rspec/mocks/filter/bugs/should_syntax.txt +5 -0
- data/spec/rspec/mocks/filter/bugs/space.txt +2 -0
- data/spec/rspec/mocks/filter/bugs/spy.txt +5 -0
- data/spec/rspec/mocks/filter/bugs/stub_implementation.rb +9 -0
- data/spec/rspec/mocks/filter/unsupported/and_call_original.txt +5 -0
- data/spec/rspec/mocks/filter/unsupported/and_return.txt +2 -0
- data/spec/rspec/mocks/filter/unsupported/any_instance.rb +6 -0
- data/spec/rspec/mocks/filter/unsupported/argument_matchers.rb +10 -0
- data/spec/rspec/mocks/filter/unsupported/combining_implementation_instructions.rb +9 -0
- data/spec/rspec/mocks/filter/unsupported/double.rb +16 -0
- data/spec/rspec/mocks/filter/unsupported/expected_arg_verification.txt +2 -0
- data/spec/rspec/mocks/filter/unsupported/have_received.txt +2 -0
- data/spec/rspec/mocks/filter/unsupported/instance_double_with_class_loaded.txt +8 -0
- data/spec/rspec/mocks/filter/unsupported/mocks.rb +8 -0
- data/spec/rspec/mocks/filter/unsupported/nil_expectation_warning.rb +8 -0
- data/spec/rspec/mocks/filter/unsupported/partial_double.rb +6 -0
- data/spec/rspec/mocks/filter/unsupported/receive.txt +13 -0
- data/spec/rspec/mocks/filter/unsupported/receive_message_chain.rb +4 -0
- data/spec/rspec/mocks/filter/unsupported/receive_messages.txt +2 -0
- data/spec/rspec/mocks/filter/unsupported/should_syntax.txt +1 -0
- data/spec/rspec/mocks/filter/unsupported/space.rb +7 -0
- data/spec/rspec/mocks/filter/unsupported/stub.rb +7 -0
- data/spec/rspec/mocks/fixes/doubled_classes.rb +76 -0
- data/spec/rspec/mocks/fixes/missing_constants.rb +3 -0
- data/spec/rspec/mocks/fixes/opal_itself.rb +59 -0
- data/spec/rspec/mocks/mocks_spec_loader.rb +91 -0
- data/spec/rspec/mocks/require_specs.rb +15 -0
- data/spec/rspec/mocks/spec_files_exclude.txt +11 -0
- data/spec/rspec/mocks/spec_helper_opal.rb +129 -0
- data/spec/rspec/opal_rspec_spec_loader.rb +359 -0
- data/spec/rspec/shared/opal/fixes/deprecation_helpers.rb +31 -0
- data/spec/rspec/shared/opal/fixes/rspec_helpers.rb +6 -0
- data/spec/rspec/shared/opal/progress_json_formatter.rb +29 -0
- data/spec/rspec/support/config.rb +5 -0
- data/spec/rspec/support/config.ru +4 -0
- data/spec/rspec/support/filter/bugs/recursive_const_methods.txt +3 -0
- data/spec/rspec/support/filter/bugs/sandbox/basic_object.rb +30 -0
- data/spec/rspec/support/filter/bugs/stderr_splitter_spec.txt +2 -0
- data/spec/rspec/support/filter/bugs/support.txt +2 -0
- data/spec/rspec/support/filter/unsupported/fuzzy_matcher.txt +2 -0
- data/spec/rspec/support/filter/unsupported/support.rb +7 -0
- data/spec/rspec/support/filter/unsupported/warnings.txt +6 -0
- data/spec/rspec/support/fixes/missing_constants.rb +3 -0
- data/spec/rspec/support/fixes/opal_itself.rb +13 -0
- data/spec/rspec/support/require_specs.rb +15 -0
- data/spec/rspec/support/spec_files_exclude.txt +26 -0
- data/spec/rspec/support/spec_helper.rb +27 -0
- data/spec/rspec/support/support_spec_loader.rb +38 -0
- data/util/create_requires.rb +49 -0
- data/vendor/spec_runner.js +64 -0
- 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
|
+
|