opal-rspec 0.8.0.alpha3 → 1.0.0.alpha1
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 +4 -4
- data/.github/workflows/build.yml +7 -7
- data/.gitmodules +6 -0
- data/CHANGELOG.md +16 -1
- data/Gemfile +13 -0
- data/README.md +63 -59
- data/diff-lcs/spec/files_to_exclude.txt +1 -0
- data/diff-lcs/spec/requires.rb +4 -0
- data/diff-lcs/upstream/.autotest +5 -0
- data/diff-lcs/upstream/.fasterer.yml +3 -0
- data/{stubs/diff/lcs.rb → diff-lcs/upstream/.gemtest} +0 -0
- data/diff-lcs/upstream/.github/workflows/ci.yml +64 -0
- data/diff-lcs/upstream/.github/workflows/codeql-analysis.yml +70 -0
- data/diff-lcs/upstream/.gitignore +20 -0
- data/diff-lcs/upstream/.hoerc +52 -0
- data/diff-lcs/upstream/.rspec +1 -0
- data/diff-lcs/upstream/.standard.yml +6 -0
- data/diff-lcs/upstream/Code-of-Conduct.md +74 -0
- data/diff-lcs/upstream/Contributing.md +119 -0
- data/diff-lcs/upstream/Gemfile +28 -0
- data/diff-lcs/upstream/History.md +407 -0
- data/diff-lcs/upstream/License.md +41 -0
- data/diff-lcs/upstream/Manifest.txt +59 -0
- data/diff-lcs/upstream/README.rdoc +84 -0
- data/diff-lcs/upstream/Rakefile +127 -0
- data/diff-lcs/upstream/bin/htmldiff +35 -0
- data/diff-lcs/upstream/bin/ldiff +9 -0
- data/diff-lcs/upstream/diff-lcs.gemspec +48 -0
- data/diff-lcs/upstream/docs/COPYING.txt +339 -0
- data/diff-lcs/upstream/docs/artistic.txt +127 -0
- data/diff-lcs/upstream/lib/diff/lcs/array.rb +7 -0
- data/diff-lcs/upstream/lib/diff/lcs/backports.rb +9 -0
- data/diff-lcs/upstream/lib/diff/lcs/block.rb +37 -0
- data/diff-lcs/upstream/lib/diff/lcs/callbacks.rb +327 -0
- data/diff-lcs/upstream/lib/diff/lcs/change.rb +174 -0
- data/diff-lcs/upstream/lib/diff/lcs/htmldiff.rb +158 -0
- data/diff-lcs/upstream/lib/diff/lcs/hunk.rb +363 -0
- data/diff-lcs/upstream/lib/diff/lcs/internals.rb +308 -0
- data/diff-lcs/upstream/lib/diff/lcs/ldiff.rb +173 -0
- data/diff-lcs/upstream/lib/diff/lcs/string.rb +5 -0
- data/diff-lcs/upstream/lib/diff/lcs.rb +741 -0
- data/diff-lcs/upstream/lib/diff-lcs.rb +3 -0
- data/diff-lcs/upstream/spec/change_spec.rb +89 -0
- data/diff-lcs/upstream/spec/diff_spec.rb +51 -0
- data/diff-lcs/upstream/spec/fixtures/aX +1 -0
- data/diff-lcs/upstream/spec/fixtures/bXaX +1 -0
- data/diff-lcs/upstream/spec/fixtures/ds1.csv +50 -0
- data/diff-lcs/upstream/spec/fixtures/ds2.csv +51 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff +4 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff-c +7 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff-e +3 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff-f +3 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff-u +5 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef +4 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef-c +15 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef-e +3 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef-f +3 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef-u +9 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef2 +7 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef2-c +20 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef2-d +7 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef2-e +7 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef2-f +7 -0
- data/diff-lcs/upstream/spec/fixtures/ldiff/output.diff.chef2-u +16 -0
- data/diff-lcs/upstream/spec/fixtures/new-chef +4 -0
- data/diff-lcs/upstream/spec/fixtures/new-chef2 +17 -0
- data/diff-lcs/upstream/spec/fixtures/old-chef +4 -0
- data/diff-lcs/upstream/spec/fixtures/old-chef2 +14 -0
- data/diff-lcs/upstream/spec/hunk_spec.rb +83 -0
- data/diff-lcs/upstream/spec/issues_spec.rb +160 -0
- data/diff-lcs/upstream/spec/lcs_spec.rb +56 -0
- data/diff-lcs/upstream/spec/ldiff_spec.rb +89 -0
- data/diff-lcs/upstream/spec/patch_spec.rb +416 -0
- data/diff-lcs/upstream/spec/sdiff_spec.rb +216 -0
- data/diff-lcs/upstream/spec/spec_helper.rb +376 -0
- data/diff-lcs/upstream/spec/traverse_balanced_spec.rb +312 -0
- data/diff-lcs/upstream/spec/traverse_sequences_spec.rb +137 -0
- data/lib/opal/rspec/runner.rb +11 -0
- data/lib/opal/rspec/sprockets.rb +6 -0
- data/lib/opal/rspec/version.rb +1 -1
- data/lib/opal/rspec.rb +1 -2
- data/lib-opal/opal/rspec/async/configuration.rb +39 -0
- data/lib-opal/opal/rspec/async/example.rb +80 -168
- data/lib-opal/opal/rspec/async/example_group.rb +71 -81
- data/lib-opal/opal/rspec/async/hooks.rb +98 -8
- data/lib-opal/opal/rspec/async/memoized_helpers.rb +32 -0
- data/lib-opal/opal/rspec/async/reporter.rb +6 -3
- data/lib-opal/opal/rspec/async/runner.rb +33 -24
- data/lib-opal/opal/rspec/async.rb +4 -1
- data/lib-opal/opal/rspec/browser.rb +0 -8
- data/lib-opal/opal/rspec/browser_early.rb +5 -0
- data/lib-opal/opal/rspec/fixes/diff-lcs/hunk.rb +164 -0
- data/lib-opal/opal/rspec/fixes/diff-lcs/lcs.rb +112 -0
- data/lib-opal/opal/rspec/fixes/diff-lcs.rb +2 -0
- data/lib-opal/opal/rspec/fixes/opal.rb +4 -17
- data/lib-opal/opal/rspec/fixes/rspec/core/example_status_persister.rb +11 -0
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/deprecation_formatter.rb +3 -12
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/exception_presenter.rb +28 -0
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/loader.rb +0 -32
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/snippet_extractor.rb +17 -0
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/syntax_highlighter.rb +17 -0
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters.rb +3 -4
- data/lib-opal/opal/rspec/fixes/rspec/core/metadata.rb +24 -8
- data/lib-opal/opal/rspec/fixes/rspec/core/notifications/examples_notification.rb +3 -20
- data/lib-opal/opal/rspec/fixes/rspec/core/notifications.rb +0 -2
- data/lib-opal/opal/rspec/fixes/rspec/core.rb +1 -2
- data/lib-opal/opal/rspec/fixes/rspec/expectations.rb +0 -1
- data/lib-opal/opal/rspec/fixes/rspec/matchers/built_in/base_matcher.rb +26 -0
- data/lib-opal/opal/rspec/fixes/rspec/matchers/built_in.rb +1 -3
- data/lib-opal/opal/rspec/fixes/rspec/matchers/expecteds_for_multiple_diffs.rb +13 -0
- data/lib-opal/opal/rspec/fixes/rspec/matchers.rb +1 -1
- data/lib-opal/opal/rspec/fixes/rspec/mocks/error_generator.rb +26 -10
- data/lib-opal/opal/rspec/fixes/rspec/mocks/proxy.rb +19 -0
- data/lib-opal/opal/rspec/fixes/rspec/mocks.rb +1 -3
- data/lib-opal/opal/rspec/fixes/rspec/support/differ.rb +29 -0
- data/lib-opal/opal/rspec/fixes/rspec/support/encoded_string.rb +9 -5
- data/lib-opal/opal/rspec/fixes/rspec/support/ruby_features.rb +22 -0
- data/lib-opal/opal/rspec/fixes/rspec/support/source.rb +15 -0
- data/lib-opal/opal/rspec/fixes/rspec/support.rb +3 -3
- data/lib-opal/opal/rspec/fixes/rspec.rb +0 -1
- data/lib-opal/opal/rspec/fixes.rb +1 -0
- data/lib-opal/opal/rspec/formatter/document_io.rb +1 -1
- data/lib-opal/opal/rspec/formatter/html_printer.rb +1 -1
- data/lib-opal/opal/rspec/pre_require_fixes.rb +1 -5
- data/lib-opal/opal/rspec/requires.rb +32 -19
- data/lib-opal/opal/rspec/sprockets_runner.rb.erb +1 -0
- data/lib-opal/opal/rspec.rb +3 -0
- data/opal-rspec.gemspec +1 -1
- data/rspec/upstream/.document +1 -1
- data/rspec/upstream/.github/FUNDING.yml +5 -0
- data/rspec/upstream/.gitignore +1 -0
- data/rspec/upstream/LICENSE.md +27 -0
- data/rspec/upstream/README.md +26 -26
- data/rspec/upstream/Rakefile +1 -1
- data/rspec/upstream/certs/rspec.pem +32 -20
- data/rspec/upstream/certs/samphippen.asc +18 -0
- data/rspec/upstream/code_of_conduct.md +59 -0
- data/rspec/upstream/lib/rspec/version.rb +1 -1
- data/rspec/upstream/rspec.gemspec +7 -2
- data/rspec-core/upstream/.document +1 -1
- data/rspec-core/upstream/.github/FUNDING.yml +5 -0
- data/rspec-core/upstream/.github/workflows/ci.yml +150 -0
- data/rspec-core/upstream/.gitignore +2 -0
- data/rspec-core/upstream/.rspec +1 -0
- data/rspec-core/upstream/.rubocop.yml +64 -12
- data/rspec-core/upstream/.rubocop_rspec_base.yml +224 -38
- data/rspec-core/upstream/.rubocop_todo.yml +1031 -0
- data/rspec-core/upstream/.yardopts +2 -1
- data/rspec-core/upstream/BUILD_DETAIL.md +149 -0
- data/rspec-core/upstream/CODE_OF_CONDUCT.md +59 -0
- data/rspec-core/upstream/CONTRIBUTING.md +86 -0
- data/rspec-core/upstream/Changelog.md +721 -2
- data/rspec-core/upstream/DEV-README.md +2 -2
- data/rspec-core/upstream/DEVELOPMENT.md +131 -0
- data/rspec-core/upstream/Filtering.md +173 -0
- data/rspec-core/upstream/Gemfile +78 -9
- data/rspec-core/upstream/ISSUE_TEMPLATE.md +24 -0
- data/rspec-core/upstream/{License.txt → LICENSE.md} +6 -5
- data/rspec-core/upstream/README.md +165 -24
- data/rspec-core/upstream/REPORT_TEMPLATE.md +43 -0
- data/rspec-core/upstream/Rakefile +1 -1
- data/rspec-core/upstream/benchmarks/allocations/1000_groups_1_example.rb +124 -0
- data/rspec-core/upstream/benchmarks/allocations/1_group_1000_examples.rb +63 -0
- data/rspec-core/upstream/benchmarks/allocations/helper.rb +30 -0
- data/rspec-core/upstream/benchmarks/allocations/running_1000_groups_1_example.rb +100 -0
- data/rspec-core/upstream/benchmarks/allocations/running_1_group_1000_examples.rb +60 -0
- data/rspec-core/upstream/benchmarks/capture_block_vs_yield.rb +208 -0
- data/rspec-core/upstream/benchmarks/flat_map_vs_inject.rb +55 -0
- data/rspec-core/upstream/benchmarks/hash_functions.rb +74 -0
- data/rspec-core/upstream/benchmarks/keys_each_vs_each_key.rb +43 -0
- data/rspec-core/upstream/benchmarks/module_inclusion_filtering.rb +89 -0
- data/rspec-core/upstream/benchmarks/precalculate_absolute_file_path_or_not.rb +29 -0
- data/rspec-core/upstream/benchmarks/shuffle_vs_sort_by_for_random_ordering.rb +131 -0
- data/rspec-core/upstream/benchmarks/singleton_example_groups/helper.rb +122 -0
- data/rspec-core/upstream/benchmarks/singleton_example_groups/with_config_hooks.rb +28 -0
- data/rspec-core/upstream/benchmarks/singleton_example_groups/with_config_hooks_module_inclusions_and_shared_context_inclusions.rb +35 -0
- data/rspec-core/upstream/benchmarks/singleton_example_groups/with_module_inclusions.rb +28 -0
- data/rspec-core/upstream/benchmarks/singleton_example_groups/with_no_config_hooks_or_inclusions.rb +22 -0
- data/rspec-core/upstream/benchmarks/singleton_example_groups/with_shared_context_inclusions.rb +28 -0
- data/rspec-core/upstream/benchmarks/threadsafe_let_block.rb +312 -0
- data/rspec-core/upstream/cucumber.yml +7 -2
- data/rspec-core/upstream/features/.nav +5 -1
- data/rspec-core/upstream/features/README.md +2 -2
- data/rspec-core/upstream/features/clear_examples.feature +106 -0
- data/rspec-core/upstream/features/command_line/bisect.feature +178 -0
- data/rspec-core/upstream/features/command_line/example_matches_name_option.feature +131 -0
- data/rspec-core/upstream/features/command_line/example_name_option.feature +2 -0
- data/rspec-core/upstream/features/command_line/fail_fast.feature +21 -4
- data/rspec-core/upstream/features/command_line/init.feature +2 -2
- data/rspec-core/upstream/features/command_line/line_number_appended_to_path.feature +2 -2
- data/rspec-core/upstream/features/command_line/only_failures.feature +113 -0
- data/rspec-core/upstream/features/command_line/order.md +8 -1
- data/rspec-core/upstream/features/command_line/pattern_option.feature +6 -3
- data/rspec-core/upstream/features/command_line/rake_task.feature +3 -3
- data/rspec-core/upstream/features/command_line/randomization.feature +5 -2
- data/rspec-core/upstream/features/command_line/ruby.feature +6 -2
- data/rspec-core/upstream/features/command_line/tag.feature +13 -11
- data/rspec-core/upstream/features/command_line/warnings_option.feature +20 -3
- data/rspec-core/upstream/features/configuration/backtrace_exclusion_patterns.feature +45 -29
- data/rspec-core/upstream/features/configuration/color.feature +22 -0
- data/rspec-core/upstream/features/configuration/custom_settings.feature +9 -13
- data/rspec-core/upstream/features/configuration/default_path.feature +1 -1
- data/rspec-core/upstream/features/configuration/enable_global_dsl.feature +15 -1
- data/rspec-core/upstream/features/configuration/error_exit_code.feature +52 -0
- data/rspec-core/upstream/features/configuration/fail_fast.feature +42 -12
- data/rspec-core/upstream/features/configuration/fail_if_no_examples.feature +31 -0
- data/rspec-core/upstream/features/configuration/failure_exit_code.feature +26 -0
- data/rspec-core/upstream/features/configuration/overriding_global_ordering.feature +1 -1
- data/rspec-core/upstream/features/configuration/pattern.feature +1 -1
- data/rspec-core/upstream/features/configuration/profile.feature +25 -0
- data/rspec-core/upstream/features/configuration/read_options_from_file.feature +25 -19
- data/rspec-core/upstream/features/configuration/run_all_when_everything_filtered.feature +4 -0
- data/rspec-core/upstream/features/core_standalone.feature +2 -0
- data/rspec-core/upstream/features/example_groups/basic_structure.feature +1 -0
- data/rspec-core/upstream/features/example_groups/shared_context.feature +55 -5
- data/rspec-core/upstream/features/example_groups/shared_examples.feature +59 -15
- data/rspec-core/upstream/features/expectation_framework_integration/aggregating_failures.feature +602 -0
- data/rspec-core/upstream/features/expectation_framework_integration/configure_expectation_framework.feature +13 -5
- data/rspec-core/upstream/features/filtering/filter_run_when_matching.feature +75 -0
- data/rspec-core/upstream/features/formatters/configurable_colors.feature +23 -4
- data/rspec-core/upstream/features/helper_methods/let.feature +3 -0
- data/rspec-core/upstream/features/helper_methods/modules.feature +6 -0
- data/rspec-core/upstream/features/hooks/around_hooks.feature +36 -6
- data/rspec-core/upstream/features/hooks/before_and_after_hooks.feature +47 -5
- data/rspec-core/upstream/features/hooks/filtering.feature +199 -4
- data/rspec-core/upstream/features/hooks/when_first_matching_example_defined.feature +70 -0
- data/rspec-core/upstream/features/metadata/current_scope.feature +87 -0
- data/rspec-core/upstream/features/metadata/described_class.feature +12 -5
- data/rspec-core/upstream/features/metadata/user_defined.feature +3 -3
- data/rspec-core/upstream/features/mock_framework_integration/use_any_framework.feature +1 -1
- data/rspec-core/upstream/features/mock_framework_integration/use_flexmock.feature +5 -5
- data/rspec-core/upstream/features/mock_framework_integration/use_mocha.feature +5 -5
- data/rspec-core/upstream/features/mock_framework_integration/use_rr.feature +5 -5
- data/rspec-core/upstream/features/mock_framework_integration/use_rspec.feature +6 -6
- data/rspec-core/upstream/features/pending_and_skipped_examples/pending_examples.feature +8 -7
- data/rspec-core/upstream/features/pending_and_skipped_examples/skipped_examples.feature +49 -22
- data/rspec-core/upstream/features/step_definitions/additional_cli_steps.rb +142 -12
- data/rspec-core/upstream/features/step_definitions/core_standalone_steps.rb +6 -2
- data/rspec-core/upstream/features/subject/implicit_subject.feature +3 -2
- data/rspec-core/upstream/features/subject/one_liner_syntax.feature +9 -5
- data/rspec-core/upstream/features/support/diff_lcs_versions.rb +17 -0
- data/rspec-core/upstream/features/support/env.rb +20 -7
- data/rspec-core/upstream/features/support/jruby.rb +8 -0
- data/rspec-core/upstream/features/support/require_expect_syntax_in_aruba_specs.rb +6 -3
- data/rspec-core/upstream/features/support/rubinius.rb +5 -1
- data/rspec-core/upstream/features/support/ruby_27_support.rb +7 -0
- data/rspec-core/upstream/features/support/send_sigint_during_bisect.rb +21 -0
- data/rspec-core/upstream/lib/rspec/autorun.rb +1 -0
- data/rspec-core/upstream/lib/rspec/core/backtrace_formatter.rb +3 -4
- data/rspec-core/upstream/lib/rspec/core/bisect/coordinator.rb +62 -0
- data/rspec-core/upstream/lib/rspec/core/bisect/example_minimizer.rb +173 -0
- data/rspec-core/upstream/lib/rspec/core/bisect/fork_runner.rb +138 -0
- data/rspec-core/upstream/lib/rspec/core/bisect/server.rb +61 -0
- data/rspec-core/upstream/lib/rspec/core/bisect/shell_command.rb +126 -0
- data/rspec-core/upstream/lib/rspec/core/bisect/shell_runner.rb +73 -0
- data/rspec-core/upstream/lib/rspec/core/bisect/utilities.rb +69 -0
- data/rspec-core/upstream/lib/rspec/core/configuration.rb +1157 -212
- data/rspec-core/upstream/lib/rspec/core/configuration_options.rb +82 -22
- data/rspec-core/upstream/lib/rspec/core/did_you_mean.rb +46 -0
- data/rspec-core/upstream/lib/rspec/core/drb.rb +10 -1
- data/rspec-core/upstream/lib/rspec/core/dsl.rb +10 -5
- data/rspec-core/upstream/lib/rspec/core/example.rb +271 -107
- data/rspec-core/upstream/lib/rspec/core/example_group.rb +426 -127
- data/rspec-core/upstream/lib/rspec/core/example_status_persister.rb +235 -0
- data/rspec-core/upstream/lib/rspec/core/filter_manager.rb +76 -104
- data/rspec-core/upstream/lib/rspec/core/flat_map.rb +6 -4
- data/rspec-core/upstream/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/base_formatter.rb +7 -4
- data/rspec-core/upstream/lib/rspec/core/formatters/base_text_formatter.rb +15 -16
- data/rspec-core/upstream/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/console_codes.rb +28 -16
- data/rspec-core/upstream/lib/rspec/core/formatters/deprecation_formatter.rb +14 -13
- data/rspec-core/upstream/lib/rspec/core/formatters/documentation_formatter.rb +47 -13
- data/rspec-core/upstream/lib/rspec/core/formatters/exception_presenter.rb +525 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/failure_list_formatter.rb +23 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/helpers.rb +40 -9
- data/rspec-core/upstream/lib/rspec/core/formatters/html_formatter.rb +20 -16
- data/rspec-core/upstream/lib/rspec/core/formatters/html_printer.rb +27 -18
- data/rspec-core/upstream/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/json_formatter.rb +15 -7
- data/rspec-core/upstream/lib/rspec/core/formatters/profile_formatter.rb +10 -7
- data/rspec-core/upstream/lib/rspec/core/formatters/progress_formatter.rb +1 -0
- data/rspec-core/upstream/lib/rspec/core/formatters/protocol.rb +62 -43
- data/rspec-core/upstream/lib/rspec/core/formatters/snippet_extractor.rb +115 -85
- data/rspec-core/upstream/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
- data/rspec-core/upstream/lib/rspec/core/formatters.rb +71 -32
- data/rspec-core/upstream/lib/rspec/core/hooks.rb +303 -248
- data/rspec-core/upstream/lib/rspec/core/invocations.rb +87 -0
- data/rspec-core/upstream/lib/rspec/core/memoized_helpers.rb +155 -47
- data/rspec-core/upstream/lib/rspec/core/metadata.rb +102 -41
- data/rspec-core/upstream/lib/rspec/core/metadata_filter.rb +209 -49
- data/rspec-core/upstream/lib/rspec/core/minitest_assertions_adapter.rb +5 -2
- data/rspec-core/upstream/lib/rspec/core/mocking_adapters/flexmock.rb +1 -1
- data/rspec-core/upstream/lib/rspec/core/mocking_adapters/mocha.rb +8 -8
- data/rspec-core/upstream/lib/rspec/core/notifications.rb +180 -201
- data/rspec-core/upstream/lib/rspec/core/option_parser.rb +159 -58
- data/rspec-core/upstream/lib/rspec/core/ordering.rb +40 -26
- data/rspec-core/upstream/lib/rspec/core/output_wrapper.rb +29 -0
- data/rspec-core/upstream/lib/rspec/core/pending.rb +19 -25
- data/rspec-core/upstream/lib/rspec/core/profiler.rb +34 -0
- data/rspec-core/upstream/lib/rspec/core/project_initializer/.rspec +0 -1
- data/rspec-core/upstream/lib/rspec/core/project_initializer/spec/spec_helper.rb +31 -22
- data/rspec-core/upstream/lib/rspec/core/project_initializer.rb +1 -1
- data/rspec-core/upstream/lib/rspec/core/rake_task.rb +73 -72
- data/rspec-core/upstream/lib/rspec/core/reporter.rb +134 -18
- data/rspec-core/upstream/lib/rspec/core/ruby_project.rb +13 -5
- data/rspec-core/upstream/lib/rspec/core/runner.rb +99 -45
- data/rspec-core/upstream/lib/rspec/core/sandbox.rb +37 -0
- data/rspec-core/upstream/lib/rspec/core/set.rb +54 -0
- data/rspec-core/upstream/lib/rspec/core/shared_example_group.rb +126 -37
- data/rspec-core/upstream/lib/rspec/core/shell_escape.rb +49 -0
- data/rspec-core/upstream/lib/rspec/core/test_unit_assertions_adapter.rb +3 -3
- data/rspec-core/upstream/lib/rspec/core/version.rb +1 -1
- data/rspec-core/upstream/lib/rspec/core/warnings.rb +2 -2
- data/rspec-core/upstream/lib/rspec/core/world.rb +164 -60
- data/rspec-core/upstream/lib/rspec/core.rb +64 -21
- data/rspec-core/upstream/maintenance-branch +1 -1
- data/rspec-core/upstream/rspec-core.gemspec +16 -11
- data/rspec-core/upstream/script/ci_functions.sh +73 -0
- data/rspec-core/upstream/script/clone_all_rspec_repos +2 -2
- data/rspec-core/upstream/script/cucumber.sh +8 -0
- data/rspec-core/upstream/script/custom_build_functions.sh +22 -0
- data/rspec-core/upstream/script/functions.sh +125 -89
- data/rspec-core/upstream/script/legacy_setup.sh +20 -0
- data/rspec-core/upstream/script/predicate_functions.sh +162 -0
- data/rspec-core/upstream/script/rspec_with_simplecov +6 -6
- data/rspec-core/upstream/script/run_build +14 -9
- data/rspec-core/upstream/script/run_rubocop +14 -0
- data/rspec-core/upstream/script/update_rubygems_and_install_bundler +20 -0
- data/rspec-expectations/upstream/.document +1 -1
- data/rspec-expectations/upstream/.github/FUNDING.yml +5 -0
- data/rspec-expectations/upstream/.github/workflows/ci.yml +150 -0
- data/rspec-expectations/upstream/.gitignore +2 -0
- data/rspec-expectations/upstream/.rubocop.yml +126 -2
- data/rspec-expectations/upstream/.rubocop_rspec_base.yml +224 -38
- data/rspec-expectations/upstream/.rubocop_todo.yml +335 -0
- data/rspec-expectations/upstream/.yardopts +1 -1
- data/rspec-expectations/upstream/BUILD_DETAIL.md +149 -0
- data/rspec-expectations/upstream/CODE_OF_CONDUCT.md +59 -0
- data/rspec-expectations/upstream/CONTRIBUTING.md +86 -0
- data/rspec-expectations/upstream/Changelog.md +454 -4
- data/rspec-expectations/upstream/DEV-README.md +3 -3
- data/rspec-expectations/upstream/DEVELOPMENT.md +131 -0
- data/rspec-expectations/upstream/Gemfile +77 -9
- data/rspec-expectations/upstream/ISSUE_TEMPLATE.md +24 -0
- data/{rspec-mocks/upstream/License.txt → rspec-expectations/upstream/LICENSE.md} +5 -4
- data/rspec-expectations/upstream/README.md +73 -31
- data/rspec-expectations/upstream/REPORT_TEMPLATE.md +43 -0
- data/rspec-expectations/upstream/Rakefile +13 -10
- data/rspec-expectations/upstream/Should.md +13 -5
- data/rspec-expectations/upstream/benchmarks/2.x_vs_3.x_matcher_dsl_implementation.rb +1 -2
- data/rspec-expectations/upstream/benchmarks/caller_vs_raise_for_backtrace.rb +77 -0
- data/rspec-expectations/upstream/benchmarks/count_vs_select_size.rb +68 -0
- data/rspec-expectations/upstream/benchmarks/default_messages_as_methods_v_blocks.rb +1 -1
- data/rspec-expectations/upstream/benchmarks/gsub_vs_tr_single_character.rb +28 -0
- data/rspec-expectations/upstream/benchmarks/include_matcher.rb +249 -0
- data/rspec-expectations/upstream/benchmarks/include_v_superclass.rb +0 -1
- data/rspec-expectations/upstream/benchmarks/match_array/failing_with_duplicate_items.rb +1 -1
- data/rspec-expectations/upstream/benchmarks/output_stringio_vs_tempfile.rb +31 -0
- data/rspec-expectations/upstream/benchmarks/set_vs_array_include.rb +1 -3
- data/rspec-expectations/upstream/cucumber.yml +9 -4
- data/rspec-expectations/upstream/features/.nav +1 -0
- data/rspec-expectations/upstream/features/aggregating_failures.feature +56 -0
- data/rspec-expectations/upstream/features/built_in_matchers/README.md +3 -3
- data/rspec-expectations/upstream/features/built_in_matchers/all.feature +3 -2
- data/rspec-expectations/upstream/features/built_in_matchers/be_within.feature +1 -1
- data/rspec-expectations/upstream/features/built_in_matchers/change.feature +8 -6
- data/rspec-expectations/upstream/features/built_in_matchers/comparisons.feature +33 -1
- data/rspec-expectations/upstream/features/built_in_matchers/contain_exactly.feature +1 -0
- data/rspec-expectations/upstream/features/built_in_matchers/cover.feature +3 -3
- data/rspec-expectations/upstream/features/built_in_matchers/exist.feature +1 -1
- data/rspec-expectations/upstream/features/built_in_matchers/have_attributes.feature +1 -2
- data/rspec-expectations/upstream/features/built_in_matchers/include.feature +74 -17
- data/rspec-expectations/upstream/features/built_in_matchers/match.feature +2 -2
- data/rspec-expectations/upstream/features/built_in_matchers/output.feature +67 -4
- data/rspec-expectations/upstream/features/built_in_matchers/predicates.feature +56 -19
- data/rspec-expectations/upstream/features/built_in_matchers/raise_error.feature +16 -2
- data/rspec-expectations/upstream/features/built_in_matchers/respond_to.feature +191 -3
- data/rspec-expectations/upstream/features/built_in_matchers/satisfy.feature +17 -8
- data/rspec-expectations/upstream/features/built_in_matchers/throw_symbol.feature +1 -1
- data/rspec-expectations/upstream/features/built_in_matchers/types.feature +34 -34
- data/rspec-expectations/upstream/features/built_in_matchers/yield.feature +2 -2
- data/rspec-expectations/upstream/features/composing_matchers.feature +4 -4
- data/rspec-expectations/upstream/features/custom_matchers/define_block_matcher.feature +78 -0
- data/rspec-expectations/upstream/features/custom_matchers/define_diffable_matcher.feature +115 -3
- data/rspec-expectations/upstream/features/custom_matchers/define_matcher.feature +173 -21
- data/rspec-expectations/upstream/features/custom_matchers/define_matcher_with_fluent_interface.feature +21 -2
- data/rspec-expectations/upstream/features/define_negated_matcher.feature +2 -1
- data/rspec-expectations/upstream/features/diffing.feature +29 -1
- data/rspec-expectations/upstream/features/implicit_docstrings.feature +8 -8
- data/rspec-expectations/upstream/features/step_definitions/additional_cli_steps.rb +11 -7
- data/rspec-expectations/upstream/features/support/diff_lcs_versions.rb +25 -0
- data/rspec-expectations/upstream/features/support/disallow_certain_apis.rb +3 -3
- data/rspec-expectations/upstream/features/support/env.rb +11 -11
- data/rspec-expectations/upstream/features/support/rubinius.rb +1 -1
- data/rspec-expectations/upstream/features/support/ruby_features.rb +39 -0
- data/rspec-expectations/upstream/features/syntax_configuration.feature +9 -9
- data/rspec-expectations/upstream/features/test_frameworks/minitest.feature +69 -2
- data/rspec-expectations/upstream/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
- data/rspec-expectations/upstream/lib/rspec/expectations/configuration.rb +84 -1
- data/rspec-expectations/upstream/lib/rspec/expectations/expectation_target.rb +82 -38
- data/rspec-expectations/upstream/lib/rspec/expectations/fail_with.rb +11 -6
- data/rspec-expectations/upstream/lib/rspec/expectations/failure_aggregator.rb +212 -0
- data/rspec-expectations/upstream/lib/rspec/expectations/handler.rb +27 -12
- data/rspec-expectations/upstream/lib/rspec/expectations/minitest_integration.rb +43 -2
- data/rspec-expectations/upstream/lib/rspec/expectations/syntax.rb +5 -5
- data/rspec-expectations/upstream/lib/rspec/expectations/version.rb +1 -1
- data/rspec-expectations/upstream/lib/rspec/expectations.rb +15 -1
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/all.rb +1 -0
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/base_matcher.rb +77 -11
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/be.rb +28 -114
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/be_between.rb +1 -1
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/be_instance_of.rb +5 -1
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/be_kind_of.rb +5 -1
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/be_within.rb +4 -4
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/change.rb +168 -55
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/compound.rb +61 -29
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/contain_exactly.rb +73 -12
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/count_expectation.rb +169 -0
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/eq.rb +3 -38
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/eql.rb +2 -2
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/equal.rb +3 -3
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/exist.rb +7 -3
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/has.rb +90 -24
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/have_attributes.rb +37 -7
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/include.rb +124 -23
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/match.rb +79 -2
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/operators.rb +14 -5
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/output.rb +56 -1
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/raise_error.rb +126 -29
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/respond_to.rb +118 -9
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/satisfy.rb +28 -7
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/{start_and_end_with.rb → start_or_end_with.rb} +20 -8
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/throw_symbol.rb +11 -5
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in/yield.rb +110 -155
- data/rspec-expectations/upstream/lib/rspec/matchers/built_in.rb +4 -3
- data/rspec-expectations/upstream/lib/rspec/matchers/composable.rb +23 -35
- data/rspec-expectations/upstream/lib/rspec/matchers/dsl.rb +179 -26
- data/rspec-expectations/upstream/lib/rspec/matchers/english_phrasing.rb +58 -0
- data/rspec-expectations/upstream/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +82 -0
- data/rspec-expectations/upstream/lib/rspec/matchers/fail_matchers.rb +42 -0
- data/rspec-expectations/upstream/lib/rspec/matchers/generated_descriptions.rb +1 -2
- data/rspec-expectations/upstream/lib/rspec/matchers/matcher_delegator.rb +2 -0
- data/rspec-expectations/upstream/lib/rspec/matchers/matcher_protocol.rb +72 -66
- data/rspec-expectations/upstream/lib/rspec/matchers.rb +227 -150
- data/rspec-expectations/upstream/maintenance-branch +1 -1
- data/rspec-expectations/upstream/rspec-expectations.gemspec +13 -8
- data/rspec-expectations/upstream/script/ci_functions.sh +73 -0
- data/rspec-expectations/upstream/script/clone_all_rspec_repos +2 -2
- data/rspec-expectations/upstream/script/cucumber.sh +8 -0
- data/rspec-expectations/upstream/script/functions.sh +125 -89
- data/rspec-expectations/upstream/script/legacy_setup.sh +20 -0
- data/rspec-expectations/upstream/script/predicate_functions.sh +162 -0
- data/rspec-expectations/upstream/script/run_build +14 -9
- data/rspec-expectations/upstream/script/run_rubocop +14 -0
- data/rspec-expectations/upstream/script/update_rubygems_and_install_bundler +20 -0
- data/rspec-mocks/upstream/.document +1 -1
- data/rspec-mocks/upstream/.github/FUNDING.yml +5 -0
- data/rspec-mocks/upstream/.github/workflows/ci.yml +150 -0
- data/rspec-mocks/upstream/.gitignore +2 -0
- data/rspec-mocks/upstream/.rubocop.yml +28 -9
- data/rspec-mocks/upstream/.rubocop_rspec_base.yml +224 -38
- data/rspec-mocks/upstream/.rubocop_todo.yml +573 -0
- data/rspec-mocks/upstream/.yardopts +1 -1
- data/rspec-mocks/upstream/BUILD_DETAIL.md +149 -0
- data/rspec-mocks/upstream/CODE_OF_CONDUCT.md +59 -0
- data/rspec-mocks/upstream/CONTRIBUTING.md +86 -0
- data/rspec-mocks/upstream/Changelog.md +398 -3
- data/rspec-mocks/upstream/DEV-README.md +3 -3
- data/rspec-mocks/upstream/DEVELOPMENT.md +131 -0
- data/rspec-mocks/upstream/Gemfile +77 -10
- data/rspec-mocks/upstream/ISSUE_TEMPLATE.md +24 -0
- data/{rspec-expectations/upstream/License.txt → rspec-mocks/upstream/LICENSE.md} +5 -4
- data/rspec-mocks/upstream/README.md +83 -17
- data/rspec-mocks/upstream/REPORT_TEMPLATE.md +43 -0
- data/rspec-mocks/upstream/Rakefile +3 -3
- data/rspec-mocks/upstream/benchmarks/accessing_configuration_via_method_vs_cache.rb +52 -0
- data/rspec-mocks/upstream/benchmarks/allocations/1_object_1000_mocks.rb +76 -0
- data/rspec-mocks/upstream/benchmarks/allocations/helper.rb +17 -0
- data/rspec-mocks/upstream/benchmarks/each_value_v_values_each.rb +4 -5
- data/rspec-mocks/upstream/benchmarks/find_original_method_early.rb +1 -1
- data/rspec-mocks/upstream/benchmarks/method_defined_at_any_visibility.rb +3 -3
- data/rspec-mocks/upstream/benchmarks/thread_safety.rb +1 -1
- data/rspec-mocks/upstream/benchmarks/transfer_nested_constants.rb +1 -1
- data/rspec-mocks/upstream/cucumber.yml +8 -1
- data/rspec-mocks/upstream/features/.nav +2 -0
- data/rspec-mocks/upstream/features/basics/allowing_messages.feature +1 -1
- data/rspec-mocks/upstream/features/basics/expecting_messages.feature +40 -1
- data/rspec-mocks/upstream/features/basics/null_object_doubles.feature +1 -1
- data/rspec-mocks/upstream/features/basics/partial_test_doubles.feature +1 -1
- data/rspec-mocks/upstream/features/basics/scope.feature +5 -5
- data/rspec-mocks/upstream/features/basics/spies.feature +17 -30
- data/rspec-mocks/upstream/features/basics/test_doubles.feature +4 -4
- data/rspec-mocks/upstream/features/configuring_responses/README.md +2 -0
- data/rspec-mocks/upstream/features/configuring_responses/calling_the_original_implementation.feature +2 -2
- data/rspec-mocks/upstream/features/configuring_responses/mixed_responses.feature +25 -0
- data/rspec-mocks/upstream/features/configuring_responses/raising_an_error.feature +1 -0
- data/rspec-mocks/upstream/features/configuring_responses/wrapping_the_original_implementation.feature +3 -3
- data/rspec-mocks/upstream/features/configuring_responses/yielding.feature +2 -2
- data/rspec-mocks/upstream/features/mutating_constants/README.md +1 -1
- data/rspec-mocks/upstream/features/old_syntax/any_instance.feature +3 -3
- data/rspec-mocks/upstream/features/old_syntax/should_receive.feature +3 -1
- data/rspec-mocks/upstream/features/outside_rspec/any_test_framework.feature +116 -0
- data/rspec-mocks/upstream/features/outside_rspec/minitest.feature +202 -46
- data/rspec-mocks/upstream/features/outside_rspec/standalone.feature +5 -5
- data/rspec-mocks/upstream/features/setting_constraints/matching_arguments.feature +54 -27
- data/rspec-mocks/upstream/features/setting_constraints/message_order.feature +2 -2
- data/rspec-mocks/upstream/features/setting_constraints/receive_counts.feature +18 -0
- data/rspec-mocks/upstream/features/step_definitions/additional_cli_steps.rb +4 -4
- data/rspec-mocks/upstream/features/support/disallow_certain_apis.rb +3 -2
- data/rspec-mocks/upstream/features/support/env.rb +12 -12
- data/rspec-mocks/upstream/features/support/rubinius.rb +1 -1
- data/rspec-mocks/upstream/features/verifying_doubles/README.md +2 -2
- data/rspec-mocks/upstream/features/verifying_doubles/class_doubles.feature +1 -1
- data/rspec-mocks/upstream/features/verifying_doubles/dynamic_classes.feature +41 -5
- data/rspec-mocks/upstream/features/verifying_doubles/instance_doubles.feature +5 -3
- data/rspec-mocks/upstream/features/working_with_legacy_code/any_instance.feature +8 -6
- data/rspec-mocks/upstream/features/working_with_legacy_code/message_chains.feature +16 -1
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/chain.rb +3 -1
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/expect_chain_chain.rb +1 -5
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/expectation_chain.rb +7 -5
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/message_chains.rb +1 -3
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/recorder.rb +42 -14
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/stub_chain.rb +13 -7
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance/stub_chain_chain.rb +1 -5
- data/rspec-mocks/upstream/lib/rspec/mocks/any_instance.rb +1 -0
- data/rspec-mocks/upstream/lib/rspec/mocks/argument_list_matcher.rb +53 -10
- data/rspec-mocks/upstream/lib/rspec/mocks/argument_matchers.rb +66 -26
- data/rspec-mocks/upstream/lib/rspec/mocks/configuration.rb +59 -4
- data/rspec-mocks/upstream/lib/rspec/mocks/error_generator.rb +235 -108
- data/rspec-mocks/upstream/lib/rspec/mocks/example_methods.rb +82 -27
- data/rspec-mocks/upstream/lib/rspec/mocks/instance_method_stasher.rb +12 -1
- data/rspec-mocks/upstream/lib/rspec/mocks/matchers/have_received.rb +30 -17
- data/rspec-mocks/upstream/lib/rspec/mocks/matchers/receive.rb +28 -1
- data/rspec-mocks/upstream/lib/rspec/mocks/matchers/receive_message_chain.rb +17 -1
- data/rspec-mocks/upstream/lib/rspec/mocks/matchers/receive_messages.rb +6 -0
- data/rspec-mocks/upstream/lib/rspec/mocks/message_chain.rb +0 -4
- data/rspec-mocks/upstream/lib/rspec/mocks/message_expectation.rb +430 -304
- data/rspec-mocks/upstream/lib/rspec/mocks/method_double.rb +46 -15
- data/rspec-mocks/upstream/lib/rspec/mocks/method_reference.rb +78 -19
- data/rspec-mocks/upstream/lib/rspec/mocks/minitest_integration.rb +68 -0
- data/rspec-mocks/upstream/lib/rspec/mocks/mutate_const.rb +23 -8
- data/rspec-mocks/upstream/lib/rspec/mocks/object_reference.rb +81 -23
- data/rspec-mocks/upstream/lib/rspec/mocks/proxy.rb +135 -41
- data/rspec-mocks/upstream/lib/rspec/mocks/space.rb +33 -16
- data/rspec-mocks/upstream/lib/rspec/mocks/standalone.rb +1 -1
- data/rspec-mocks/upstream/lib/rspec/mocks/syntax.rb +18 -22
- data/rspec-mocks/upstream/lib/rspec/mocks/targets.rb +51 -24
- data/rspec-mocks/upstream/lib/rspec/mocks/test_double.rb +42 -6
- data/rspec-mocks/upstream/lib/rspec/mocks/verifying_double.rb +15 -21
- data/rspec-mocks/upstream/lib/rspec/mocks/{verifying_message_expecation.rb → verifying_message_expectation.rb} +11 -18
- data/rspec-mocks/upstream/lib/rspec/mocks/verifying_proxy.rb +60 -11
- data/rspec-mocks/upstream/lib/rspec/mocks/version.rb +1 -1
- data/rspec-mocks/upstream/lib/rspec/mocks.rb +8 -1
- data/rspec-mocks/upstream/maintenance-branch +1 -1
- data/rspec-mocks/upstream/rspec-mocks.gemspec +14 -6
- data/rspec-mocks/upstream/script/ci_functions.sh +73 -0
- data/rspec-mocks/upstream/script/clone_all_rspec_repos +2 -2
- data/rspec-mocks/upstream/script/cucumber.sh +8 -0
- data/rspec-mocks/upstream/script/functions.sh +125 -89
- data/rspec-mocks/upstream/script/legacy_setup.sh +20 -0
- data/rspec-mocks/upstream/script/predicate_functions.sh +162 -0
- data/rspec-mocks/upstream/script/run_build +14 -9
- data/rspec-mocks/upstream/script/run_rubocop +14 -0
- data/rspec-mocks/upstream/script/update_rubygems_and_install_bundler +20 -0
- data/{stubs/diff/lcs/assertions.rb → rspec-mocks/upstream/tmp/.gitkeep} +0 -0
- data/rspec-support/upstream/.github/FUNDING.yml +5 -0
- data/rspec-support/upstream/.github/workflows/ci.yml +150 -0
- data/rspec-support/upstream/.gitignore +4 -0
- data/rspec-support/upstream/.rubocop.yml +33 -1
- data/rspec-support/upstream/.rubocop_rspec_base.yml +224 -38
- data/rspec-support/upstream/.rubocop_todo.yml +424 -0
- data/rspec-support/upstream/BUILD_DETAIL.md +149 -0
- data/rspec-support/upstream/CODE_OF_CONDUCT.md +59 -0
- data/rspec-support/upstream/CONTRIBUTING.md +86 -0
- data/rspec-support/upstream/Changelog.md +287 -0
- data/rspec-support/upstream/DEVELOPMENT.md +131 -0
- data/rspec-support/upstream/Gemfile +52 -4
- data/rspec-support/upstream/ISSUE_TEMPLATE.md +24 -0
- data/rspec-support/upstream/{LICENSE.txt → LICENSE.md} +3 -2
- data/rspec-support/upstream/README.md +29 -6
- data/rspec-support/upstream/REPORT_TEMPLATE.md +43 -0
- data/rspec-support/upstream/Rakefile +9 -5
- data/rspec-support/upstream/benchmarks/caller_vs_caller_locations.rb +19 -0
- data/rspec-support/upstream/benchmarks/caller_vs_caller_locations_vs_raise.rb +153 -0
- data/rspec-support/upstream/benchmarks/class_exec_vs_klass_exec.rb +43 -0
- data/rspec-support/upstream/benchmarks/map_hash.rb +70 -0
- data/rspec-support/upstream/benchmarks/ripper.rb +44 -0
- data/rspec-support/upstream/benchmarks/skip_frames_for_caller_filter.rb +27 -0
- data/rspec-support/upstream/lib/rspec/support/caller_filter.rb +35 -15
- data/rspec-support/upstream/lib/rspec/support/comparable_version.rb +46 -0
- data/rspec-support/upstream/lib/rspec/support/differ.rb +35 -34
- data/rspec-support/upstream/lib/rspec/support/directory_maker.rb +3 -1
- data/rspec-support/upstream/lib/rspec/support/encoded_string.rb +103 -11
- data/rspec-support/upstream/lib/rspec/support/fuzzy_matcher.rb +5 -5
- data/rspec-support/upstream/lib/rspec/support/matcher_definition.rb +11 -0
- data/rspec-support/upstream/lib/rspec/support/method_signature_verifier.rb +192 -26
- data/rspec-support/upstream/lib/rspec/support/mutex.rb +73 -0
- data/rspec-support/upstream/lib/rspec/support/object_formatter.rb +275 -0
- data/rspec-support/upstream/lib/rspec/support/recursive_const_methods.rb +1 -1
- data/rspec-support/upstream/lib/rspec/support/reentrant_mutex.rb +78 -0
- data/rspec-support/upstream/lib/rspec/support/ruby_features.rb +168 -15
- data/rspec-support/upstream/lib/rspec/support/source/location.rb +21 -0
- data/rspec-support/upstream/lib/rspec/support/source/node.rb +110 -0
- data/rspec-support/upstream/lib/rspec/support/source/token.rb +94 -0
- data/rspec-support/upstream/lib/rspec/support/source.rb +85 -0
- data/rspec-support/upstream/lib/rspec/support/spec/deprecation_helpers.rb +17 -29
- data/rspec-support/upstream/lib/rspec/support/spec/diff_helpers.rb +31 -0
- data/rspec-support/upstream/lib/rspec/support/spec/in_sub_process.rb +41 -17
- data/rspec-support/upstream/lib/rspec/support/spec/library_wide_checks.rb +150 -0
- data/rspec-support/upstream/lib/rspec/support/spec/shell_out.rb +39 -3
- data/rspec-support/upstream/lib/rspec/support/spec/stderr_splitter.rb +27 -4
- data/rspec-support/upstream/lib/rspec/support/spec/string_matcher.rb +45 -0
- data/rspec-support/upstream/lib/rspec/support/spec/with_isolated_directory.rb +5 -1
- data/rspec-support/upstream/lib/rspec/support/spec.rb +17 -7
- data/rspec-support/upstream/lib/rspec/support/version.rb +1 -1
- data/rspec-support/upstream/lib/rspec/support/warnings.rb +3 -3
- data/rspec-support/upstream/lib/rspec/support/with_keywords_when_needed.rb +33 -0
- data/rspec-support/upstream/lib/rspec/support.rb +81 -3
- data/rspec-support/upstream/maintenance-branch +1 -1
- data/rspec-support/upstream/rspec-support.gemspec +10 -4
- data/rspec-support/upstream/script/ci_functions.sh +73 -0
- data/rspec-support/upstream/script/clone_all_rspec_repos +2 -2
- data/rspec-support/upstream/script/cucumber.sh +8 -0
- data/rspec-support/upstream/script/functions.sh +125 -89
- data/rspec-support/upstream/script/legacy_setup.sh +20 -0
- data/rspec-support/upstream/script/predicate_functions.sh +162 -0
- data/rspec-support/upstream/script/run_build +14 -9
- data/rspec-support/upstream/script/run_rubocop +14 -0
- data/rspec-support/upstream/script/update_rubygems_and_install_bundler +20 -0
- data/stubs/{diff/lcs/block.rb → coderay.rb} +0 -0
- data/stubs/{diff/lcs/callbacks.rb → drb/acl.rb} +0 -0
- data/stubs/{diff/lcs/change.rb → erb/version.rb} +0 -0
- data/stubs/{diff/lcs/hunk.rb → open3.rb} +0 -0
- data/stubs/{diff/lcs/internals.rb → psych.rb} +0 -0
- data/stubs/{optparse.rb → ripper.rb} +0 -0
- data/stubs/{prettyprint.rb → thread_order.rb} +0 -0
- data/tasks/testing.rake +7 -3
- metadata +270 -61
- data/gemfiles/.bundle/config +0 -2
- data/gemfiles/opal_0.11.gemfile +0 -14
- data/gemfiles/opal_master.gemfile +0 -14
- data/lib-opal/opal/rspec/async/core_ext.rb +0 -23
- data/lib-opal/opal/rspec/async/legacy.rb +0 -49
- data/lib-opal/opal/rspec/fixes/rspec/caller_filter.rb +0 -6
- data/lib-opal/opal/rspec/fixes/rspec/core/example.rb +0 -20
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/backtrace_formatter.rb +0 -20
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/console_codes.rb +0 -11
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/generated_deprecation_message.rb +0 -15
- data/lib-opal/opal/rspec/fixes/rspec/core/formatters/json_formatter.rb +0 -15
- data/lib-opal/opal/rspec/fixes/rspec/core/notifications/failed_example_notification.rb +0 -20
- data/lib-opal/opal/rspec/fixes/rspec/core/notifications/summary_notification.rb +0 -21
- data/lib-opal/opal/rspec/fixes/rspec/core/warnings.rb +0 -27
- data/lib-opal/opal/rspec/fixes/rspec/expectations/fail_with.rb +0 -21
- data/lib-opal/opal/rspec/fixes/rspec/matchers/built_in/all.rb +0 -10
- data/lib-opal/opal/rspec/fixes/rspec/matchers/built_in/compound.rb +0 -15
- data/lib-opal/opal/rspec/fixes/rspec/matchers/built_in/yield.rb +0 -21
- data/lib-opal/opal/rspec/fixes/rspec/matchers/pretty.rb +0 -15
- data/lib-opal/opal/rspec/fixes/rspec/mocks/space.rb +0 -41
- data/lib-opal/opal/rspec/fixes/rspec/mocks/test_double.rb +0 -39
- data/lib-opal/opal/rspec/fixes/rspec/mocks/verifying_double.rb +0 -29
- data/lib-opal/opal/rspec/fixes/rspec/support/recursive_const_methods.rb +0 -7
- data/lib-opal/opal/rspec/fixes/rspec/support/spec/stderr_splitter.rb +0 -13
- data/lib-opal/opal/rspec/fixes/rspec/support/spec.rb +0 -1
- data/lib-opal/opal/rspec/fixes/rspec/support/warnings.rb +0 -16
- data/rspec/upstream/License.txt +0 -24
- data/rspec-core/upstream/.travis.yml +0 -35
- data/rspec-core/upstream/benchmarks/sort_by_v_shuffle.rb +0 -83
- data/rspec-core/upstream/features/Upgrade.md +0 -352
- data/rspec-core/upstream/lib/rspec/core/backport_random.rb +0 -336
- data/rspec-expectations/upstream/.travis.yml +0 -35
- data/rspec-expectations/upstream/lib/rspec/matchers/pretty.rb +0 -77
- data/rspec-mocks/upstream/.travis.yml +0 -35
- data/rspec-support/upstream/.travis.yml +0 -35
- data/rspec-support/upstream/lib/rspec/support/os.rb +0 -18
- data/rspec-support/upstream/lib/rspec/support/spec/prevent_load_time_warnings.rb +0 -44
- data/rspec-support/upstream/lib/rspec/support/version_checker.rb +0 -53
- data/stubs/shellwords.rb +0 -0
- data/stubs/uri.rb +0 -0
- data/vendor/spec_runner.js +0 -64
|
@@ -11,11 +11,11 @@ module RSpec
|
|
|
11
11
|
|
|
12
12
|
# @overload double()
|
|
13
13
|
# @overload double(name)
|
|
14
|
-
# @param name [String/Symbol]
|
|
14
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
15
15
|
# @overload double(stubs)
|
|
16
16
|
# @param stubs (Hash) hash of message/return-value pairs
|
|
17
17
|
# @overload double(name, stubs)
|
|
18
|
-
# @param name [String/Symbol]
|
|
18
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
19
19
|
# @param stubs (Hash) hash of message/return-value pairs
|
|
20
20
|
# @return (Double)
|
|
21
21
|
#
|
|
@@ -24,7 +24,6 @@ module RSpec
|
|
|
24
24
|
# hash of message/return-value pairs.
|
|
25
25
|
#
|
|
26
26
|
# @example
|
|
27
|
-
#
|
|
28
27
|
# book = double("book", :title => "The RSpec Book")
|
|
29
28
|
# book.title #=> "The RSpec Book"
|
|
30
29
|
#
|
|
@@ -38,9 +37,16 @@ module RSpec
|
|
|
38
37
|
|
|
39
38
|
# @overload instance_double(doubled_class)
|
|
40
39
|
# @param doubled_class [String, Class]
|
|
40
|
+
# @overload instance_double(doubled_class, name)
|
|
41
|
+
# @param doubled_class [String, Class]
|
|
42
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
41
43
|
# @overload instance_double(doubled_class, stubs)
|
|
42
44
|
# @param doubled_class [String, Class]
|
|
43
45
|
# @param stubs [Hash] hash of message/return-value pairs
|
|
46
|
+
# @overload instance_double(doubled_class, name, stubs)
|
|
47
|
+
# @param doubled_class [String, Class]
|
|
48
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
49
|
+
# @param stubs [Hash] hash of message/return-value pairs
|
|
44
50
|
# @return InstanceVerifyingDouble
|
|
45
51
|
#
|
|
46
52
|
# Constructs a test double against a specific class. If the given class
|
|
@@ -54,9 +60,16 @@ module RSpec
|
|
|
54
60
|
|
|
55
61
|
# @overload class_double(doubled_class)
|
|
56
62
|
# @param doubled_class [String, Module]
|
|
63
|
+
# @overload class_double(doubled_class, name)
|
|
64
|
+
# @param doubled_class [String, Module]
|
|
65
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
57
66
|
# @overload class_double(doubled_class, stubs)
|
|
58
67
|
# @param doubled_class [String, Module]
|
|
59
68
|
# @param stubs [Hash] hash of message/return-value pairs
|
|
69
|
+
# @overload class_double(doubled_class, name, stubs)
|
|
70
|
+
# @param doubled_class [String, Module]
|
|
71
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
72
|
+
# @param stubs [Hash] hash of message/return-value pairs
|
|
60
73
|
# @return ClassVerifyingDouble
|
|
61
74
|
#
|
|
62
75
|
# Constructs a test double against a specific class. If the given class
|
|
@@ -70,9 +83,16 @@ module RSpec
|
|
|
70
83
|
|
|
71
84
|
# @overload object_double(object_or_name)
|
|
72
85
|
# @param object_or_name [String, Object]
|
|
86
|
+
# @overload object_double(object_or_name, name)
|
|
87
|
+
# @param object_or_name [String, Object]
|
|
88
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
73
89
|
# @overload object_double(object_or_name, stubs)
|
|
74
90
|
# @param object_or_name [String, Object]
|
|
75
91
|
# @param stubs [Hash] hash of message/return-value pairs
|
|
92
|
+
# @overload object_double(object_or_name, name, stubs)
|
|
93
|
+
# @param object_or_name [String, Object]
|
|
94
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
95
|
+
# @param stubs [Hash] hash of message/return-value pairs
|
|
76
96
|
# @return ObjectVerifyingDouble
|
|
77
97
|
#
|
|
78
98
|
# Constructs a test double against a specific object. Only the methods
|
|
@@ -86,11 +106,11 @@ module RSpec
|
|
|
86
106
|
|
|
87
107
|
# @overload spy()
|
|
88
108
|
# @overload spy(name)
|
|
89
|
-
# @param name [String/Symbol]
|
|
109
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
90
110
|
# @overload spy(stubs)
|
|
91
111
|
# @param stubs (Hash) hash of message/return-value pairs
|
|
92
112
|
# @overload spy(name, stubs)
|
|
93
|
-
# @param name [String/Symbol]
|
|
113
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
94
114
|
# @param stubs (Hash) hash of message/return-value pairs
|
|
95
115
|
# @return (Double)
|
|
96
116
|
#
|
|
@@ -103,9 +123,16 @@ module RSpec
|
|
|
103
123
|
|
|
104
124
|
# @overload instance_spy(doubled_class)
|
|
105
125
|
# @param doubled_class [String, Class]
|
|
126
|
+
# @overload instance_spy(doubled_class, name)
|
|
127
|
+
# @param doubled_class [String, Class]
|
|
128
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
106
129
|
# @overload instance_spy(doubled_class, stubs)
|
|
107
130
|
# @param doubled_class [String, Class]
|
|
108
131
|
# @param stubs [Hash] hash of message/return-value pairs
|
|
132
|
+
# @overload instance_spy(doubled_class, name, stubs)
|
|
133
|
+
# @param doubled_class [String, Class]
|
|
134
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
135
|
+
# @param stubs [Hash] hash of message/return-value pairs
|
|
109
136
|
# @return InstanceVerifyingDouble
|
|
110
137
|
#
|
|
111
138
|
# Constructs a test double that is optimized for use with `have_received`
|
|
@@ -120,9 +147,16 @@ module RSpec
|
|
|
120
147
|
|
|
121
148
|
# @overload object_spy(object_or_name)
|
|
122
149
|
# @param object_or_name [String, Object]
|
|
150
|
+
# @overload object_spy(object_or_name, name)
|
|
151
|
+
# @param object_or_name [String, Class]
|
|
152
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
123
153
|
# @overload object_spy(object_or_name, stubs)
|
|
124
154
|
# @param object_or_name [String, Object]
|
|
125
155
|
# @param stubs [Hash] hash of message/return-value pairs
|
|
156
|
+
# @overload object_spy(object_or_name, name, stubs)
|
|
157
|
+
# @param object_or_name [String, Class]
|
|
158
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
159
|
+
# @param stubs [Hash] hash of message/return-value pairs
|
|
126
160
|
# @return ObjectVerifyingDouble
|
|
127
161
|
#
|
|
128
162
|
# Constructs a test double that is optimized for use with `have_received`
|
|
@@ -136,9 +170,16 @@ module RSpec
|
|
|
136
170
|
|
|
137
171
|
# @overload class_spy(doubled_class)
|
|
138
172
|
# @param doubled_class [String, Module]
|
|
173
|
+
# @overload class_spy(doubled_class, name)
|
|
174
|
+
# @param doubled_class [String, Class]
|
|
175
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
139
176
|
# @overload class_spy(doubled_class, stubs)
|
|
140
177
|
# @param doubled_class [String, Module]
|
|
141
178
|
# @param stubs [Hash] hash of message/return-value pairs
|
|
179
|
+
# @overload class_spy(doubled_class, name, stubs)
|
|
180
|
+
# @param doubled_class [String, Class]
|
|
181
|
+
# @param name [String/Symbol] name or description to be used in failure messages
|
|
182
|
+
# @param stubs [Hash] hash of message/return-value pairs
|
|
142
183
|
# @return ClassVerifyingDouble
|
|
143
184
|
#
|
|
144
185
|
# Constructs a test double that is optimized for use with `have_received`
|
|
@@ -156,6 +197,7 @@ module RSpec
|
|
|
156
197
|
# By default warning messages are issued when expectations are set on
|
|
157
198
|
# nil. This is to prevent false-positives and to catch potential bugs
|
|
158
199
|
# early on.
|
|
200
|
+
# @deprecated Use {RSpec::Mocks::Configuration#allow_message_expectations_on_nil} instead.
|
|
159
201
|
def allow_message_expectations_on_nil
|
|
160
202
|
RSpec::Mocks.space.proxy_for(nil).warn_about_expectations = false
|
|
161
203
|
end
|
|
@@ -177,7 +219,6 @@ module RSpec
|
|
|
177
219
|
# @return [Object] the stubbed value of the constant
|
|
178
220
|
#
|
|
179
221
|
# @example
|
|
180
|
-
#
|
|
181
222
|
# stub_const("MyClass", Class.new) # => Replaces (or defines) MyClass with a new class object.
|
|
182
223
|
# stub_const("SomeModel::PER_PAGE", 5) # => Sets SomeModel::PER_PAGE to 5.
|
|
183
224
|
#
|
|
@@ -211,7 +252,6 @@ module RSpec
|
|
|
211
252
|
# The current constant scoping at the point of call is not considered.
|
|
212
253
|
#
|
|
213
254
|
# @example
|
|
214
|
-
#
|
|
215
255
|
# hide_const("MyClass") # => MyClass is now an undefined constant
|
|
216
256
|
def hide_const(constant_name)
|
|
217
257
|
ConstantMutator.hide(constant_name)
|
|
@@ -229,23 +269,36 @@ module RSpec
|
|
|
229
269
|
# called.
|
|
230
270
|
#
|
|
231
271
|
# @example
|
|
232
|
-
#
|
|
233
272
|
# invitation = double('invitation', accept: true)
|
|
234
273
|
# user.accept_invitation(invitation)
|
|
235
274
|
# expect(invitation).to have_received(:accept)
|
|
236
275
|
#
|
|
237
276
|
# # You can also use most message expectations:
|
|
238
277
|
# expect(invitation).to have_received(:accept).with(mailer).once
|
|
278
|
+
#
|
|
279
|
+
# @note `have_received(...).with(...)` is unable to work properly when
|
|
280
|
+
# passed arguments are mutated after the spy records the received message.
|
|
239
281
|
def have_received(method_name, &block)
|
|
240
282
|
Matchers::HaveReceived.new(method_name, &block)
|
|
241
283
|
end
|
|
242
284
|
|
|
285
|
+
# Turns off the verifying of partial doubles for the duration of the
|
|
286
|
+
# block, this is useful in situations where methods are defined at run
|
|
287
|
+
# time and you wish to define stubs for them but not turn off partial
|
|
288
|
+
# doubles for the entire run suite. (e.g. view specs in rspec-rails).
|
|
289
|
+
def without_partial_double_verification
|
|
290
|
+
original_state = Mocks.configuration.temporarily_suppress_partial_double_verification
|
|
291
|
+
Mocks.configuration.temporarily_suppress_partial_double_verification = true
|
|
292
|
+
yield
|
|
293
|
+
ensure
|
|
294
|
+
Mocks.configuration.temporarily_suppress_partial_double_verification = original_state
|
|
295
|
+
end
|
|
296
|
+
|
|
243
297
|
# @method expect
|
|
244
298
|
# Used to wrap an object in preparation for setting a mock expectation
|
|
245
299
|
# on it.
|
|
246
300
|
#
|
|
247
301
|
# @example
|
|
248
|
-
#
|
|
249
302
|
# expect(obj).to receive(:foo).with(5).and_return(:return_value)
|
|
250
303
|
#
|
|
251
304
|
# @note This method is usually provided by rspec-expectations. However,
|
|
@@ -258,7 +311,6 @@ module RSpec
|
|
|
258
311
|
# on it.
|
|
259
312
|
#
|
|
260
313
|
# @example
|
|
261
|
-
#
|
|
262
314
|
# allow(dbl).to receive(:foo).with(5).and_return(:return_value)
|
|
263
315
|
#
|
|
264
316
|
# @note If you disable the `:expect` syntax this method will be undefined.
|
|
@@ -268,7 +320,6 @@ module RSpec
|
|
|
268
320
|
# on instances of it.
|
|
269
321
|
#
|
|
270
322
|
# @example
|
|
271
|
-
#
|
|
272
323
|
# expect_any_instance_of(MyClass).to receive(:foo)
|
|
273
324
|
#
|
|
274
325
|
# @note If you disable the `:expect` syntax this method will be undefined.
|
|
@@ -278,7 +329,6 @@ module RSpec
|
|
|
278
329
|
# on instances of it.
|
|
279
330
|
#
|
|
280
331
|
# @example
|
|
281
|
-
#
|
|
282
332
|
# allow_any_instance_of(MyClass).to receive(:foo)
|
|
283
333
|
#
|
|
284
334
|
# @note This is only available when you have enabled the `expect` syntax.
|
|
@@ -291,7 +341,6 @@ module RSpec
|
|
|
291
341
|
# times, and configure how the object should respond to the message.
|
|
292
342
|
#
|
|
293
343
|
# @example
|
|
294
|
-
#
|
|
295
344
|
# expect(obj).to receive(:hello).with("world").exactly(3).times
|
|
296
345
|
#
|
|
297
346
|
# @note If you disable the `:expect` syntax this method will be undefined.
|
|
@@ -304,7 +353,6 @@ module RSpec
|
|
|
304
353
|
# interface.
|
|
305
354
|
#
|
|
306
355
|
# @example
|
|
307
|
-
#
|
|
308
356
|
# allow(obj).to receive_messages(:speak => "Hello World")
|
|
309
357
|
# allow(obj).to receive_messages(:speak => "Hello", :meow => "Meow")
|
|
310
358
|
#
|
|
@@ -328,16 +376,15 @@ module RSpec
|
|
|
328
376
|
# implementation calls `foo.baz.bar`, the stub will not work.
|
|
329
377
|
#
|
|
330
378
|
# @example
|
|
379
|
+
# allow(double).to receive_message_chain("foo.bar") { :baz }
|
|
380
|
+
# allow(double).to receive_message_chain(:foo, :bar => :baz)
|
|
381
|
+
# allow(double).to receive_message_chain(:foo, :bar) { :baz }
|
|
331
382
|
#
|
|
332
|
-
#
|
|
333
|
-
#
|
|
334
|
-
# allow(double).to receive_message_chain(:foo, :bar) { :baz }
|
|
383
|
+
# # Given any of ^^ these three forms ^^:
|
|
384
|
+
# double.foo.bar # => :baz
|
|
335
385
|
#
|
|
336
|
-
#
|
|
337
|
-
#
|
|
338
|
-
#
|
|
339
|
-
# # Common use in Rails/ActiveRecord:
|
|
340
|
-
# allow(Article).to receive_message_chain("recent.published") { [Article.new] }
|
|
386
|
+
# # Common use in Rails/ActiveRecord:
|
|
387
|
+
# allow(Article).to receive_message_chain("recent.published") { [Article.new] }
|
|
341
388
|
#
|
|
342
389
|
# @note If you disable the `:expect` syntax this method will be undefined.
|
|
343
390
|
|
|
@@ -345,20 +392,28 @@ module RSpec
|
|
|
345
392
|
def self.included(klass)
|
|
346
393
|
klass.class_exec do
|
|
347
394
|
# This gets mixed in so that if `RSpec::Matchers` is included in
|
|
348
|
-
# `klass` later,
|
|
395
|
+
# `klass` later, its definition of `expect` will take precedence.
|
|
349
396
|
include ExpectHost unless method_defined?(:expect)
|
|
350
397
|
end
|
|
351
398
|
end
|
|
352
399
|
|
|
400
|
+
# @private
|
|
401
|
+
def self.extended(object)
|
|
402
|
+
# This gets extended in so that if `RSpec::Matchers` is included in
|
|
403
|
+
# `klass` later, its definition of `expect` will take precedence.
|
|
404
|
+
object.extend ExpectHost unless object.respond_to?(:expect)
|
|
405
|
+
end
|
|
406
|
+
|
|
353
407
|
# @private
|
|
354
408
|
def self.declare_verifying_double(type, ref, *args)
|
|
355
409
|
if RSpec::Mocks.configuration.verify_doubled_constant_names? &&
|
|
356
410
|
!ref.defined?
|
|
357
411
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
412
|
+
RSpec::Mocks.error_generator.raise_verifying_double_not_defined_error(ref)
|
|
413
|
+
end
|
|
414
|
+
|
|
415
|
+
RSpec::Mocks.configuration.verifying_double_callbacks.each do |block|
|
|
416
|
+
block.call(ref)
|
|
362
417
|
end
|
|
363
418
|
|
|
364
419
|
declare_double(type, ref, *args)
|
|
@@ -31,7 +31,6 @@ module RSpec
|
|
|
31
31
|
def stashed_method_name
|
|
32
32
|
"obfuscated_by_rspec_mocks__#{@method}"
|
|
33
33
|
end
|
|
34
|
-
private :stashed_method_name
|
|
35
34
|
|
|
36
35
|
# @private
|
|
37
36
|
def restore
|
|
@@ -55,6 +54,7 @@ module RSpec
|
|
|
55
54
|
def stash
|
|
56
55
|
return unless method_defined_directly_on_klass?
|
|
57
56
|
@original_method ||= ::RSpec::Support.method_handle_for(@object, @method)
|
|
57
|
+
@klass.__send__(:undef_method, @method)
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
# @private
|
|
@@ -128,6 +128,17 @@ module RSpec
|
|
|
128
128
|
# Hence, we verify that the owner actually has the method defined.
|
|
129
129
|
# If the given owner does not have the method defined, we assume
|
|
130
130
|
# that the method is actually owned by @klass.
|
|
131
|
+
#
|
|
132
|
+
# On 1.8, aliased methods can also report the wrong owner. Example:
|
|
133
|
+
# module M
|
|
134
|
+
# def a; end
|
|
135
|
+
# module_function :a
|
|
136
|
+
# alias b a
|
|
137
|
+
# module_function :b
|
|
138
|
+
# end
|
|
139
|
+
# The owner of M.b is the raw Module object, instead of the expected
|
|
140
|
+
# singleton class of the module
|
|
141
|
+
return true if RUBY_VERSION < '1.9' && owner == @object
|
|
131
142
|
owner == @klass || !(method_defined_on_klass?(owner))
|
|
132
143
|
end
|
|
133
144
|
end
|
|
@@ -3,7 +3,9 @@ module RSpec
|
|
|
3
3
|
module Matchers
|
|
4
4
|
# @private
|
|
5
5
|
class HaveReceived
|
|
6
|
-
|
|
6
|
+
include Matcher
|
|
7
|
+
|
|
8
|
+
COUNT_CONSTRAINTS = %w[exactly at_least at_most times time once twice thrice]
|
|
7
9
|
ARGS_CONSTRAINTS = %w[with]
|
|
8
10
|
CONSTRAINTS = COUNT_CONSTRAINTS + ARGS_CONSTRAINTS + %w[ordered]
|
|
9
11
|
|
|
@@ -36,15 +38,15 @@ module RSpec
|
|
|
36
38
|
end
|
|
37
39
|
|
|
38
40
|
def failure_message
|
|
39
|
-
|
|
41
|
+
capture_failure_message
|
|
40
42
|
end
|
|
41
43
|
|
|
42
44
|
def failure_message_when_negated
|
|
43
|
-
|
|
45
|
+
capture_failure_message
|
|
44
46
|
end
|
|
45
47
|
|
|
46
48
|
def description
|
|
47
|
-
expect.
|
|
49
|
+
(@expectation ||= expect).description_for("have received")
|
|
48
50
|
end
|
|
49
51
|
|
|
50
52
|
CONSTRAINTS.each do |expectation|
|
|
@@ -54,6 +56,14 @@ module RSpec
|
|
|
54
56
|
end
|
|
55
57
|
end
|
|
56
58
|
|
|
59
|
+
def setup_expectation(subject, &block)
|
|
60
|
+
notify_failure_message unless matches?(subject, &block)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def setup_negative_expectation(subject, &block)
|
|
64
|
+
notify_failure_message unless does_not_match?(subject, &block)
|
|
65
|
+
end
|
|
66
|
+
|
|
57
67
|
def setup_allowance(_subject, &_block)
|
|
58
68
|
disallow("allow", " as it would have no effect")
|
|
59
69
|
end
|
|
@@ -66,20 +76,20 @@ module RSpec
|
|
|
66
76
|
disallow("expect_any_instance_of")
|
|
67
77
|
end
|
|
68
78
|
|
|
79
|
+
def setup_any_instance_negative_expectation(_subject, &_block)
|
|
80
|
+
disallow("expect_any_instance_of")
|
|
81
|
+
end
|
|
82
|
+
|
|
69
83
|
private
|
|
70
84
|
|
|
71
85
|
def disallow(type, reason="")
|
|
72
|
-
|
|
73
|
-
"Using #{type}(...) with the `have_received` " \
|
|
74
|
-
"matcher is not supported#{reason}."
|
|
86
|
+
RSpec::Mocks.error_generator.raise_have_received_disallowed(type, reason)
|
|
75
87
|
end
|
|
76
88
|
|
|
77
89
|
def expect
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
expectation
|
|
82
|
-
end
|
|
90
|
+
expectation = mock_proxy.build_expectation(@method_name)
|
|
91
|
+
apply_constraints_to expectation
|
|
92
|
+
expectation
|
|
83
93
|
end
|
|
84
94
|
|
|
85
95
|
def apply_constraints_to(expectation)
|
|
@@ -90,8 +100,7 @@ module RSpec
|
|
|
90
100
|
|
|
91
101
|
def ensure_count_unconstrained
|
|
92
102
|
return unless count_constraint
|
|
93
|
-
|
|
94
|
-
"can't use #{count_constraint} when negative"
|
|
103
|
+
RSpec::Mocks.error_generator.raise_cant_constrain_count_for_negated_have_received_error(count_constraint)
|
|
95
104
|
end
|
|
96
105
|
|
|
97
106
|
def count_constraint
|
|
@@ -100,11 +109,15 @@ module RSpec
|
|
|
100
109
|
end
|
|
101
110
|
end
|
|
102
111
|
|
|
103
|
-
def
|
|
112
|
+
def capture_failure_message
|
|
113
|
+
RSpec::Support.with_failure_notifier(Proc.new { |err, _opt| return err.message }) do
|
|
114
|
+
notify_failure_message
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def notify_failure_message
|
|
104
119
|
mock_proxy.check_for_unexpected_arguments(@expectation)
|
|
105
120
|
@expectation.generate_error
|
|
106
|
-
rescue RSpec::Mocks::MockExpectationError => error
|
|
107
|
-
error.message
|
|
108
121
|
end
|
|
109
122
|
|
|
110
123
|
def expected_messages_received_in_order?
|
|
@@ -5,6 +5,8 @@ module RSpec
|
|
|
5
5
|
module Matchers
|
|
6
6
|
# @private
|
|
7
7
|
class Receive
|
|
8
|
+
include Matcher
|
|
9
|
+
|
|
8
10
|
def initialize(message, block)
|
|
9
11
|
@message = message
|
|
10
12
|
@block = block
|
|
@@ -15,9 +17,13 @@ module RSpec
|
|
|
15
17
|
"receive"
|
|
16
18
|
end
|
|
17
19
|
|
|
20
|
+
def description
|
|
21
|
+
describable.description_for("receive")
|
|
22
|
+
end
|
|
23
|
+
|
|
18
24
|
def setup_expectation(subject, &block)
|
|
19
25
|
warn_if_any_instance("expect", subject)
|
|
20
|
-
setup_mock_proxy_method_substitute(subject, :add_message_expectation, block)
|
|
26
|
+
@describable = setup_mock_proxy_method_substitute(subject, :add_message_expectation, block)
|
|
21
27
|
end
|
|
22
28
|
alias matches? setup_expectation
|
|
23
29
|
|
|
@@ -56,10 +62,15 @@ module RSpec
|
|
|
56
62
|
@recorded_customizations << ExpectationCustomization.new(method, args, block)
|
|
57
63
|
self
|
|
58
64
|
end
|
|
65
|
+
ruby2_keywords(method) if respond_to?(:ruby2_keywords, true)
|
|
59
66
|
end
|
|
60
67
|
|
|
61
68
|
private
|
|
62
69
|
|
|
70
|
+
def describable
|
|
71
|
+
@describable ||= DefaultDescribable.new(@message)
|
|
72
|
+
end
|
|
73
|
+
|
|
63
74
|
def warn_if_any_instance(expression, subject)
|
|
64
75
|
return unless AnyInstance::Proxy === subject
|
|
65
76
|
|
|
@@ -100,6 +111,22 @@ module RSpec
|
|
|
100
111
|
last.block ||= block
|
|
101
112
|
nil
|
|
102
113
|
end
|
|
114
|
+
|
|
115
|
+
# MessageExpectation objects are able to describe themselves in detail.
|
|
116
|
+
# We use this as a fall back when a MessageExpectation is not available.
|
|
117
|
+
# @private
|
|
118
|
+
class DefaultDescribable
|
|
119
|
+
def initialize(message)
|
|
120
|
+
@message = message
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# This is much simpler for the `any_instance` case than what the
|
|
124
|
+
# user may want, but I'm not up for putting a bunch of effort
|
|
125
|
+
# into full descriptions for `any_instance` expectations at this point :(.
|
|
126
|
+
def description_for(verb)
|
|
127
|
+
"#{verb} #{@message}"
|
|
128
|
+
end
|
|
129
|
+
end
|
|
103
130
|
end
|
|
104
131
|
end
|
|
105
132
|
end
|
|
@@ -5,13 +5,15 @@ module RSpec
|
|
|
5
5
|
module Matchers
|
|
6
6
|
# @private
|
|
7
7
|
class ReceiveMessageChain
|
|
8
|
+
include Matcher
|
|
9
|
+
|
|
8
10
|
def initialize(chain, &block)
|
|
9
11
|
@chain = chain
|
|
10
12
|
@block = block
|
|
11
13
|
@recorded_customizations = []
|
|
12
14
|
end
|
|
13
15
|
|
|
14
|
-
[:with, :and_return, :and_throw, :and_raise, :and_yield, :and_call_original].each do |msg|
|
|
16
|
+
[:with, :and_return, :and_invoke, :and_throw, :and_raise, :and_yield, :and_call_original].each do |msg|
|
|
15
17
|
define_method(msg) do |*args, &block|
|
|
16
18
|
@recorded_customizations << ExpectationCustomization.new(msg, args, block)
|
|
17
19
|
self
|
|
@@ -22,6 +24,10 @@ module RSpec
|
|
|
22
24
|
"receive_message_chain"
|
|
23
25
|
end
|
|
24
26
|
|
|
27
|
+
def description
|
|
28
|
+
"receive message chain #{formatted_chain}"
|
|
29
|
+
end
|
|
30
|
+
|
|
25
31
|
def setup_allowance(subject, &block)
|
|
26
32
|
chain = StubChain.stub_chain_on(subject, *@chain, &(@block || block))
|
|
27
33
|
replay_customizations(chain)
|
|
@@ -60,6 +66,16 @@ module RSpec
|
|
|
60
66
|
customization.playback_onto(chain)
|
|
61
67
|
end
|
|
62
68
|
end
|
|
69
|
+
|
|
70
|
+
def formatted_chain
|
|
71
|
+
@formatted_chain ||= @chain.map do |part|
|
|
72
|
+
if Hash === part
|
|
73
|
+
part.keys.first.to_s
|
|
74
|
+
else
|
|
75
|
+
part.to_s
|
|
76
|
+
end
|
|
77
|
+
end.join(".")
|
|
78
|
+
end
|
|
63
79
|
end
|
|
64
80
|
end
|
|
65
81
|
end
|
|
@@ -3,6 +3,8 @@ module RSpec
|
|
|
3
3
|
module Matchers
|
|
4
4
|
# @private
|
|
5
5
|
class ReceiveMessages
|
|
6
|
+
include Matcher
|
|
7
|
+
|
|
6
8
|
def initialize(message_return_value_hash)
|
|
7
9
|
@message_return_value_hash = message_return_value_hash
|
|
8
10
|
@backtrace_line = CallerFilter.first_non_rspec_line
|
|
@@ -12,6 +14,10 @@ module RSpec
|
|
|
12
14
|
"receive_messages"
|
|
13
15
|
end
|
|
14
16
|
|
|
17
|
+
def description
|
|
18
|
+
"receive messages: #{@message_return_value_hash.inspect}"
|
|
19
|
+
end
|
|
20
|
+
|
|
15
21
|
def setup_expectation(subject)
|
|
16
22
|
warn_about_block if block_given?
|
|
17
23
|
each_message_on(proxy_on(subject)) do |host, message, return_value|
|