opal-rspec 0.8.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/build.yml +7 -7
- data/.gitmodules +6 -0
- data/CHANGELOG.md +18 -0
- 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/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 -2
- 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 -75
- 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
@@ -39,7 +39,7 @@ Feature: rake task
|
|
39
39
|
When I run `rake`
|
40
40
|
Then the output should match:
|
41
41
|
"""
|
42
|
-
(ruby
|
42
|
+
(ruby(\d\.\d(.\d)?)?|rbx) -I\S+ [\/\S]+\/exe\/rspec
|
43
43
|
"""
|
44
44
|
Then the exit status should be 0
|
45
45
|
|
@@ -122,7 +122,7 @@ Feature: rake task
|
|
122
122
|
Then the exit status should be 0
|
123
123
|
Then the output should match:
|
124
124
|
"""
|
125
|
-
(ruby
|
125
|
+
(ruby(\d\.\d(.\d)?)?|rbx) -I\S+ [\/\S]+\/exe\/rspec --pattern spec[\/\\*{,}]+_spec.rb --tag fast
|
126
126
|
"""
|
127
127
|
|
128
128
|
Scenario: Passing rake task arguments to the `rspec` command via `rspec_opts`
|
@@ -154,5 +154,5 @@ Feature: rake task
|
|
154
154
|
Then the exit status should be 0
|
155
155
|
Then the output should match:
|
156
156
|
"""
|
157
|
-
(ruby
|
157
|
+
(ruby(\d\.\d(.\d)?)?|rbx) -I\S+ [\/\S]+\/exe\/rspec --pattern spec[\/\\*{,}]+_spec.rb --tag fast
|
158
158
|
"""
|
@@ -34,10 +34,13 @@ Feature: Randomization can be reproduced across test runs
|
|
34
34
|
is necessary to replicate a given test run's randomness.
|
35
35
|
|
36
36
|
Background:
|
37
|
+
Given a file named ".rspec" with:
|
38
|
+
"""
|
39
|
+
--require spec_helper
|
40
|
+
"""
|
41
|
+
|
37
42
|
Given a file named "spec/random_spec.rb" with:
|
38
43
|
"""ruby
|
39
|
-
require 'spec_helper'
|
40
|
-
|
41
44
|
RSpec.describe 'randomized example' do
|
42
45
|
it 'prints random numbers' do
|
43
46
|
puts 5.times.map { rand(99) }.join("-")
|
@@ -16,8 +16,12 @@ Feature: run with `ruby` command
|
|
16
16
|
it "is < 2" do
|
17
17
|
expect(1).to be < 2
|
18
18
|
end
|
19
|
+
|
20
|
+
it "has an intentional failure" do
|
21
|
+
expect(1).to be > 2
|
22
|
+
end
|
19
23
|
end
|
20
24
|
"""
|
21
25
|
When I run `ruby example_spec.rb`
|
22
|
-
Then the output should contain "
|
23
|
-
|
26
|
+
Then the output should contain "2 examples, 1 failure"
|
27
|
+
And the output should contain "expect(1).to be > 2"
|
@@ -1,22 +1,24 @@
|
|
1
1
|
Feature: `--tag` option
|
2
2
|
|
3
|
-
Use the `--tag` (or `-t`) option to
|
3
|
+
Use the `--tag` (or `-t`) option to run examples that match a specified tag.
|
4
|
+
The tag can be a simple `name` or a `name:value` pair.
|
4
5
|
|
5
|
-
|
6
|
-
examples with
|
7
|
-
|
8
|
-
both cases, `name` is converted to a symbol.
|
9
|
-
|
10
|
-
Filters are represented internally as a hash, which means that you can't
|
11
|
-
specify multiple filters for the same key. If you try to exclude `:name => 'foo'`
|
12
|
-
and `:name => 'bar'`, you will only end up excluding `:name => 'bar'`.
|
6
|
+
If a simple `name` is supplied, only examples with `:name => true` will run.
|
7
|
+
If a `name:value` pair is given, examples with `name => value` will run,
|
8
|
+
where `value` is always a string. In both cases, `name` is converted to a symbol.
|
13
9
|
|
14
10
|
Tags can also be used to exclude examples by adding a `~` before the tag. For
|
15
|
-
example `~tag` will exclude all examples marked with `:tag => true` and
|
11
|
+
example, `~tag` will exclude all examples marked with `:tag => true` and
|
16
12
|
`~tag:value` will exclude all examples marked with `:tag => value`.
|
17
13
|
|
14
|
+
Filtering by tag uses a hash internally, which means that you can't specify
|
15
|
+
multiple filters for the same key. For instance, if you try to exclude
|
16
|
+
`:name => 'foo'` and `:name => 'bar'`, you will only end up excluding
|
17
|
+
`:name => 'bar'`.
|
18
|
+
|
18
19
|
To be compatible with the Cucumber syntax, tags can optionally start with an
|
19
|
-
`@` symbol, which will be ignored.
|
20
|
+
`@` symbol, which will be ignored as part of the tag, e.g. `--tag @focus` is
|
21
|
+
treated the same as `--tag focus` and is expanded to `:focus => true`.
|
20
22
|
|
21
23
|
Background:
|
22
24
|
Given a file named "tagged_spec.rb" with:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Feature: `--warnings` option (run with warnings enabled)
|
2
2
|
|
3
|
-
|
3
|
+
Use the `--warnings` option to run specs with warnings enabled.
|
4
4
|
|
5
5
|
@unsupported-on-rbx
|
6
6
|
Scenario:
|
@@ -8,20 +8,37 @@ Feature: `--warnings` option (run with warnings enabled)
|
|
8
8
|
"""ruby
|
9
9
|
RSpec.describe do
|
10
10
|
it 'generates warning' do
|
11
|
-
|
11
|
+
$undefined
|
12
12
|
end
|
13
13
|
end
|
14
14
|
"""
|
15
15
|
When I run `rspec --warnings example_spec.rb`
|
16
16
|
Then the output should contain "warning"
|
17
17
|
|
18
|
+
@ruby-2-7
|
19
|
+
Scenario:
|
20
|
+
Given a file named "example_spec.rb" with:
|
21
|
+
"""ruby
|
22
|
+
def foo(**kwargs)
|
23
|
+
kwargs
|
24
|
+
end
|
25
|
+
|
26
|
+
RSpec.describe do
|
27
|
+
it "should warn about keyword arguments with 'rspec -w'" do
|
28
|
+
expect(foo({a: 1})).to eq({a: 1})
|
29
|
+
end
|
30
|
+
end
|
31
|
+
"""
|
32
|
+
When I run `rspec -w example_spec.rb`
|
33
|
+
Then the output should contain "warning"
|
34
|
+
|
18
35
|
@unsupported-on-rbx
|
19
36
|
Scenario:
|
20
37
|
Given a file named "example_spec.rb" with:
|
21
38
|
"""ruby
|
22
39
|
RSpec.describe do
|
23
40
|
it 'generates warning' do
|
24
|
-
|
41
|
+
$undefined
|
25
42
|
end
|
26
43
|
end
|
27
44
|
"""
|
@@ -1,7 +1,21 @@
|
|
1
1
|
Feature: Excluding lines from the backtrace
|
2
2
|
|
3
|
-
To reduce the noise when diagnosing failures, RSpec
|
4
|
-
|
3
|
+
To reduce the noise when diagnosing failures, RSpec can exclude lines belonging to certain gems or matching given patterns.
|
4
|
+
|
5
|
+
If you want to filter out backtrace lines belonging to specific gems, you can use `config.filter_gems_from_backtrace` like so:
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
config.filter_gems_from_backtrace "ignored_gem", "another_ignored_gem",
|
9
|
+
```
|
10
|
+
|
11
|
+
For more control over which lines to ignore, you can use the the `backtrace_exclusion_patterns` option to either replace the default exclusion patterns, or append your own, e.g.
|
12
|
+
|
13
|
+
```ruby
|
14
|
+
config.backtrace_exclusion_patterns = [/first pattern/, /second pattern/]
|
15
|
+
config.backtrace_exclusion_patterns << /another pattern/
|
16
|
+
```
|
17
|
+
|
18
|
+
The default exclusion patterns are:
|
5
19
|
|
6
20
|
```ruby
|
7
21
|
/\/lib\d*\/ruby\//,
|
@@ -10,12 +24,8 @@ Feature: Excluding lines from the backtrace
|
|
10
24
|
/lib\/rspec\/(core|expectations|matchers|mocks)/
|
11
25
|
```
|
12
26
|
|
13
|
-
|
14
|
-
option. Additionally, `rspec` can be run with the `--backtrace` option to skip
|
15
|
-
backtrace cleaning entirely.
|
27
|
+
Additionally, `rspec` can be run with the `--backtrace` option to skip backtrace cleaning entirely.
|
16
28
|
|
17
|
-
In addition, if you want to filter out backtrace lines from specific gems, you
|
18
|
-
can use `config.filter_gems_from_backtrace`.
|
19
29
|
|
20
30
|
Scenario: Using default `backtrace_exclusion_patterns`
|
21
31
|
Given a file named "spec/failing_spec.rb" with:
|
@@ -38,17 +48,13 @@ Feature: Excluding lines from the backtrace
|
|
38
48
|
/spec_helper/
|
39
49
|
]
|
40
50
|
end
|
41
|
-
|
42
|
-
def foo
|
43
|
-
"bar"
|
44
|
-
end
|
45
51
|
"""
|
46
52
|
And a file named "spec/example_spec.rb" with:
|
47
53
|
"""ruby
|
48
54
|
require 'spec_helper'
|
49
55
|
RSpec.describe "foo" do
|
50
56
|
it "returns baz" do
|
51
|
-
expect(foo).to eq("baz")
|
57
|
+
expect("foo").to eq("baz")
|
52
58
|
end
|
53
59
|
end
|
54
60
|
"""
|
@@ -57,55 +63,65 @@ Feature: Excluding lines from the backtrace
|
|
57
63
|
And the output should contain "lib/rspec/expectations"
|
58
64
|
|
59
65
|
Scenario: Appending to `backtrace_exclusion_patterns`
|
60
|
-
Given a file named "spec/
|
66
|
+
Given a file named "spec/support/assert_baz.rb" with:
|
61
67
|
"""ruby
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
68
|
+
require "support/really_assert_baz"
|
69
|
+
|
70
|
+
def assert_baz(arg)
|
71
|
+
really_assert_baz(arg)
|
72
|
+
end
|
73
|
+
"""
|
74
|
+
And a file named "spec/support/really_assert_baz.rb" with:
|
75
|
+
"""ruby
|
76
|
+
def really_assert_baz(arg)
|
77
|
+
expect(arg).to eq("baz")
|
66
78
|
end
|
67
79
|
"""
|
68
80
|
And a file named "spec/example_spec.rb" with:
|
69
81
|
"""ruby
|
82
|
+
require "support/assert_baz"
|
70
83
|
RSpec.configure do |config|
|
71
|
-
config.backtrace_exclusion_patterns << /
|
84
|
+
config.backtrace_exclusion_patterns << /really/
|
72
85
|
end
|
73
86
|
|
74
87
|
RSpec.describe "bar" do
|
75
88
|
it "is baz" do
|
76
|
-
|
89
|
+
assert_baz("bar")
|
77
90
|
end
|
78
91
|
end
|
79
92
|
"""
|
80
93
|
When I run `rspec`
|
81
94
|
Then the output should contain "1 example, 1 failure"
|
82
|
-
|
95
|
+
And the output should contain "assert_baz"
|
96
|
+
But the output should not contain "really_assert_baz"
|
83
97
|
And the output should not contain "lib/rspec/expectations"
|
84
98
|
|
85
|
-
Scenario: Running `rspec` with
|
86
|
-
Given a file named "spec/
|
99
|
+
Scenario: Running `rspec` with `--backtrace` prints unfiltered backtraces
|
100
|
+
Given a file named "spec/support/custom_helper.rb" with:
|
87
101
|
"""ruby
|
88
|
-
|
89
|
-
|
90
|
-
actual == "baz"
|
91
|
-
end
|
102
|
+
def assert_baz(arg)
|
103
|
+
expect(arg).to eq("baz")
|
92
104
|
end
|
93
105
|
"""
|
94
106
|
And a file named "spec/example_spec.rb" with:
|
95
107
|
"""ruby
|
108
|
+
require "support/custom_helper"
|
109
|
+
|
96
110
|
RSpec.configure do |config|
|
97
|
-
config.backtrace_exclusion_patterns << /
|
111
|
+
config.backtrace_exclusion_patterns << /custom_helper/
|
98
112
|
end
|
99
113
|
|
100
114
|
RSpec.describe "bar" do
|
101
115
|
it "is baz" do
|
102
|
-
|
116
|
+
assert_baz("bar")
|
103
117
|
end
|
104
118
|
end
|
105
119
|
"""
|
106
120
|
When I run `rspec --backtrace`
|
107
121
|
Then the output should contain "1 example, 1 failure"
|
108
|
-
And the output should
|
122
|
+
And the output should contain "spec/support/custom_helper.rb:2:in `assert_baz'"
|
123
|
+
And the output should contain "lib/rspec/expectations"
|
124
|
+
And the output should contain "lib/rspec/core"
|
109
125
|
|
110
126
|
Scenario: Using `filter_gems_from_backtrace` to filter the named gem
|
111
127
|
Given a vendored gem named "my_gem" containing a file named "lib/my_gem.rb" with:
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Feature: Windows may require additional solutions to display color
|
2
|
+
|
3
|
+
The output uses [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) to show text in color. Windows
|
4
|
+
systems (shells) often don't interpret those codes at all.
|
5
|
+
|
6
|
+
If you're on Windows and you see ANSI escape codes in the output
|
7
|
+
(something like `[1m [31m` ) and your text isn't in different colors,
|
8
|
+
you may need to install a utility so that your Windows shell will
|
9
|
+
interpret those codes correctly and show the colors. Here are some
|
10
|
+
popular solutions:
|
11
|
+
|
12
|
+
* [ANSICON](https://github.com/adoxa/ansicon): ANSICON runs 'on top of' cmd or powershell. This is a very
|
13
|
+
popular solution. You can set it up so that it's always used whenever
|
14
|
+
you use cmd or powershell, or use it only at specific times.
|
15
|
+
|
16
|
+
* Alternatives to cmd.exe or powershell: [ConEmu](http://conemu.github.io/), [Console2](http://sourceforge.net/projects/console/),
|
17
|
+
[ConsoleZ](https://github.com/cbucher/console)
|
18
|
+
|
19
|
+
* Unix-like shells and utilities: [cygwin](https://www.cygwin.com/), [babun](http://babun.github.io/index.html),
|
20
|
+
[MinGW](http://www.mingw.org/) (Minimalist GNU for Windows)
|
21
|
+
|
22
|
+
To find out more, search for information about those solutions.
|
@@ -14,18 +14,14 @@ Feature: custom settings
|
|
14
14
|
expect(RSpec.configuration.custom_setting).to be_nil
|
15
15
|
end
|
16
16
|
|
17
|
-
it "acts false by default" do
|
18
|
-
expect(RSpec.configuration.custom_setting).to be_falsey
|
19
|
-
end
|
20
|
-
|
21
17
|
it "is exposed as a predicate" do
|
22
|
-
expect(RSpec.configuration.custom_setting?).to
|
18
|
+
expect(RSpec.configuration.custom_setting?).to be(false)
|
23
19
|
end
|
24
20
|
|
25
21
|
it "can be overridden" do
|
26
22
|
RSpec.configuration.custom_setting = true
|
27
|
-
expect(RSpec.configuration.custom_setting).to
|
28
|
-
expect(RSpec.configuration.custom_setting?).to
|
23
|
+
expect(RSpec.configuration.custom_setting).to be(true)
|
24
|
+
expect(RSpec.configuration.custom_setting?).to be(true)
|
29
25
|
end
|
30
26
|
end
|
31
27
|
"""
|
@@ -41,17 +37,17 @@ Feature: custom settings
|
|
41
37
|
|
42
38
|
RSpec.describe "custom setting" do
|
43
39
|
it "is true by default" do
|
44
|
-
expect(RSpec.configuration.custom_setting).to
|
40
|
+
expect(RSpec.configuration.custom_setting).to be(true)
|
45
41
|
end
|
46
42
|
|
47
43
|
it "is exposed as a predicate" do
|
48
|
-
expect(RSpec.configuration.custom_setting?).to
|
44
|
+
expect(RSpec.configuration.custom_setting?).to be(true)
|
49
45
|
end
|
50
46
|
|
51
47
|
it "can be overridden" do
|
52
48
|
RSpec.configuration.custom_setting = false
|
53
|
-
expect(RSpec.configuration.custom_setting).to
|
54
|
-
expect(RSpec.configuration.custom_setting?).to
|
49
|
+
expect(RSpec.configuration.custom_setting).to be(false)
|
50
|
+
expect(RSpec.configuration.custom_setting?).to be(false)
|
55
51
|
end
|
56
52
|
end
|
57
53
|
"""
|
@@ -71,11 +67,11 @@ Feature: custom settings
|
|
71
67
|
|
72
68
|
RSpec.describe "custom setting" do
|
73
69
|
it "returns the value set in the last cofigure block to get eval'd" do
|
74
|
-
expect(RSpec.configuration.custom_setting).to
|
70
|
+
expect(RSpec.configuration.custom_setting).to be(true)
|
75
71
|
end
|
76
72
|
|
77
73
|
it "is exposed as a predicate" do
|
78
|
-
expect(RSpec.configuration.custom_setting?).to
|
74
|
+
expect(RSpec.configuration.custom_setting?).to be(true)
|
79
75
|
end
|
80
76
|
end
|
81
77
|
"""
|
@@ -5,7 +5,7 @@ Feature: Setting the default spec path
|
|
5
5
|
This is supported by a `--default-path` option, which is set to `spec` by
|
6
6
|
default. If you prefer to keep your specs in a different directory, or assign
|
7
7
|
an individual file to `--default-path`, you can do so on the command line or
|
8
|
-
in a configuration file (`.rspec
|
8
|
+
in a configuration file (for example `.rspec`).
|
9
9
|
|
10
10
|
**NOTE:** this option is not supported on `RSpec.configuration`, as it needs to be
|
11
11
|
set before spec files are loaded.
|
@@ -24,10 +24,11 @@ Feature: Global namespace DSL
|
|
24
24
|
|
25
25
|
For backwards compatibility it defaults to `true`.
|
26
26
|
|
27
|
+
@allow-should-syntax
|
27
28
|
Scenario: By default RSpec allows the DSL to be used globally
|
28
29
|
Given a file named "spec/example_spec.rb" with:
|
29
30
|
"""ruby
|
30
|
-
|
31
|
+
describe "specs here" do
|
31
32
|
it "passes" do
|
32
33
|
end
|
33
34
|
end
|
@@ -35,6 +36,19 @@ Feature: Global namespace DSL
|
|
35
36
|
When I run `rspec`
|
36
37
|
Then the output should contain "1 example, 0 failures"
|
37
38
|
|
39
|
+
@allow-should-syntax
|
40
|
+
Scenario: By default rspec/autorun allows the DSL to be used globally
|
41
|
+
Given a file named "spec/example_spec.rb" with:
|
42
|
+
"""ruby
|
43
|
+
require 'rspec/autorun'
|
44
|
+
describe "specs here" do
|
45
|
+
it "passes" do
|
46
|
+
end
|
47
|
+
end
|
48
|
+
"""
|
49
|
+
When I run `ruby spec/example_spec.rb`
|
50
|
+
Then the output should contain "1 example, 0 failures"
|
51
|
+
|
38
52
|
Scenario: When exposing globally is disabled the top level DSL no longer works
|
39
53
|
Given a file named "spec/example_spec.rb" with:
|
40
54
|
"""ruby
|
@@ -0,0 +1,52 @@
|
|
1
|
+
Feature: error exit code
|
2
|
+
|
3
|
+
Use the `error_exit_code` option to set a custom exit code when RSpec fails outside an example.
|
4
|
+
|
5
|
+
```ruby
|
6
|
+
RSpec.configure { |c| c.error_exit_code = 42 }
|
7
|
+
```
|
8
|
+
|
9
|
+
Background:
|
10
|
+
Given a file named "spec/spec_helper.rb" with:
|
11
|
+
"""ruby
|
12
|
+
RSpec.configure { |c| c.error_exit_code = 42 }
|
13
|
+
"""
|
14
|
+
|
15
|
+
Scenario: A erroring spec with the default exit code
|
16
|
+
Given a file named "spec/typo_spec.rb" with:
|
17
|
+
"""ruby
|
18
|
+
RSpec.escribe "something" do # intentional typo
|
19
|
+
it "works" do
|
20
|
+
true
|
21
|
+
end
|
22
|
+
end
|
23
|
+
"""
|
24
|
+
When I run `rspec spec/typo_spec.rb`
|
25
|
+
Then the exit status should be 1
|
26
|
+
|
27
|
+
Scenario: A erroring spec with a custom exit code
|
28
|
+
Given a file named "spec/typo_spec.rb" with:
|
29
|
+
"""ruby
|
30
|
+
require 'spec_helper'
|
31
|
+
RSpec.escribe "something" do # intentional typo
|
32
|
+
it "works" do
|
33
|
+
true
|
34
|
+
end
|
35
|
+
end
|
36
|
+
"""
|
37
|
+
When I run `rspec spec/typo_spec.rb`
|
38
|
+
And the exit status should be 42
|
39
|
+
|
40
|
+
|
41
|
+
Scenario: Success running specs spec with a custom error exit code defined
|
42
|
+
Given a file named "spec/example_spec.rb" with:
|
43
|
+
"""ruby
|
44
|
+
require 'spec_helper'
|
45
|
+
RSpec.describe "something" do
|
46
|
+
it "works" do
|
47
|
+
true
|
48
|
+
end
|
49
|
+
end
|
50
|
+
"""
|
51
|
+
When I run `rspec spec/example_spec.rb`
|
52
|
+
Then the exit status should be 0
|
@@ -1,19 +1,13 @@
|
|
1
1
|
Feature: fail fast
|
2
2
|
|
3
|
-
Use the `fail_fast` option to tell RSpec to abort the run
|
3
|
+
Use the `fail_fast` option to tell RSpec to abort the run after N failures:
|
4
4
|
|
5
|
-
|
6
|
-
RSpec.configure { |c| c.fail_fast = true }
|
7
|
-
```
|
8
|
-
|
9
|
-
Background:
|
5
|
+
Scenario: `fail_fast` with no failures (runs all examples)
|
10
6
|
Given a file named "spec/spec_helper.rb" with:
|
11
7
|
"""ruby
|
12
|
-
RSpec.configure {|c| c.fail_fast =
|
8
|
+
RSpec.configure {|c| c.fail_fast = 1}
|
13
9
|
"""
|
14
|
-
|
15
|
-
Scenario: `fail_fast` with no failures (runs all examples)
|
16
|
-
Given a file named "spec/example_spec.rb" with:
|
10
|
+
And a file named "spec/example_spec.rb" with:
|
17
11
|
"""ruby
|
18
12
|
RSpec.describe "something" do
|
19
13
|
it "passes" do
|
@@ -27,7 +21,11 @@ Feature: fail fast
|
|
27
21
|
Then the examples should all pass
|
28
22
|
|
29
23
|
Scenario: `fail_fast` with first example failing (only runs the one example)
|
30
|
-
Given a file named "spec/
|
24
|
+
Given a file named "spec/spec_helper.rb" with:
|
25
|
+
"""ruby
|
26
|
+
RSpec.configure {|c| c.fail_fast = 1}
|
27
|
+
"""
|
28
|
+
And a file named "spec/example_spec.rb" with:
|
31
29
|
"""ruby
|
32
30
|
require "spec_helper"
|
33
31
|
RSpec.describe "something" do
|
@@ -43,7 +41,11 @@ Feature: fail fast
|
|
43
41
|
Then the output should contain "1 example, 1 failure"
|
44
42
|
|
45
43
|
Scenario: `fail_fast` with multiple files, second example failing (only runs the first two examples)
|
46
|
-
Given a file named "spec/
|
44
|
+
Given a file named "spec/spec_helper.rb" with:
|
45
|
+
"""ruby
|
46
|
+
RSpec.configure {|c| c.fail_fast = 1}
|
47
|
+
"""
|
48
|
+
And a file named "spec/example_1_spec.rb" with:
|
47
49
|
"""ruby
|
48
50
|
require "spec_helper"
|
49
51
|
RSpec.describe "something" do
|
@@ -77,3 +79,31 @@ Feature: fail fast
|
|
77
79
|
"""
|
78
80
|
When I run `rspec spec`
|
79
81
|
Then the output should contain "2 examples, 1 failure"
|
82
|
+
|
83
|
+
|
84
|
+
Scenario: `fail_fast 2` with 1st and 3rd examples failing (only runs the first 3 examples)
|
85
|
+
Given a file named "spec/spec_helper.rb" with:
|
86
|
+
"""ruby
|
87
|
+
RSpec.configure {|c| c.fail_fast = 2}
|
88
|
+
"""
|
89
|
+
And a file named "spec/example_spec.rb" with:
|
90
|
+
"""ruby
|
91
|
+
require "spec_helper"
|
92
|
+
RSpec.describe "something" do
|
93
|
+
it "fails once" do
|
94
|
+
fail
|
95
|
+
end
|
96
|
+
|
97
|
+
it "passes once" do
|
98
|
+
end
|
99
|
+
|
100
|
+
it "fails twice" do
|
101
|
+
fail
|
102
|
+
end
|
103
|
+
|
104
|
+
it "passes" do
|
105
|
+
end
|
106
|
+
end
|
107
|
+
"""
|
108
|
+
When I run `rspec spec/example_spec.rb -fd`
|
109
|
+
Then the output should contain "3 examples, 2 failures"
|
@@ -0,0 +1,31 @@
|
|
1
|
+
Feature: fail if no examples
|
2
|
+
|
3
|
+
Use the `fail_if_no_examples` option to make RSpec exit with a failure status (by default 1) if there are no examples. Using this option, it is recommended to add a `--require spec_helper` option to `.rspec` file to ensure the `fail_if_no_examples` option is set even if no spec files are loaded.
|
4
|
+
|
5
|
+
This option may be particularly useful when you happen to not run RSpec tests locally, but rely on CI to do this. This prevents from false positive builds, when you expected some RSpec examples to be run, but none were run. Such a situation may be caused by your misconfiguration or regression/major changes in RSpec.
|
6
|
+
|
7
|
+
Background:
|
8
|
+
Given a file named "spec/spec_helper.rb" with:
|
9
|
+
"""ruby
|
10
|
+
RSpec.configure { |c| c.fail_if_no_examples = true }
|
11
|
+
"""
|
12
|
+
Given a file named ".rspec" with:
|
13
|
+
"""ruby
|
14
|
+
--require spec_helper
|
15
|
+
"""
|
16
|
+
Given a file named "spec/some.spec.rb" with:
|
17
|
+
"""ruby
|
18
|
+
RSpec.describe 'something' do
|
19
|
+
it 'succeeds' do
|
20
|
+
true
|
21
|
+
end
|
22
|
+
end
|
23
|
+
"""
|
24
|
+
|
25
|
+
Scenario: Examples file name is not matched by RSpec pattern, thus there are no examples run
|
26
|
+
When I run `rspec`
|
27
|
+
Then it should fail with "0 examples, 0 failures"
|
28
|
+
|
29
|
+
Scenario: Examples file name is matched by RSpec pattern, 1 example is run
|
30
|
+
When I run `rspec --pattern spec/**/*.spec.rb`
|
31
|
+
Then it should pass with "1 example, 0 failures"
|
@@ -37,6 +37,32 @@ Feature: failure exit code
|
|
37
37
|
When I run `rspec spec/example_spec.rb`
|
38
38
|
Then the exit status should be 42
|
39
39
|
|
40
|
+
Scenario: An error running specs spec with a custom exit code
|
41
|
+
Given a file named "spec/typo_spec.rb" with:
|
42
|
+
"""ruby
|
43
|
+
require 'spec_helper'
|
44
|
+
RSpec.escribe "something" do # intentional typo
|
45
|
+
it "works" do
|
46
|
+
true
|
47
|
+
end
|
48
|
+
end
|
49
|
+
"""
|
50
|
+
When I run `rspec spec/typo_spec.rb`
|
51
|
+
Then the exit status should be 42
|
52
|
+
|
53
|
+
Scenario: Success running specs spec with a custom exit code defined
|
54
|
+
Given a file named "spec/example_spec.rb" with:
|
55
|
+
"""ruby
|
56
|
+
require 'spec_helper'
|
57
|
+
RSpec.describe "something" do
|
58
|
+
it "works" do
|
59
|
+
true
|
60
|
+
end
|
61
|
+
end
|
62
|
+
"""
|
63
|
+
When I run `rspec spec/example_spec.rb`
|
64
|
+
Then the exit status should be 0
|
65
|
+
|
40
66
|
Scenario: Exit with the default exit code when an `at_exit` hook is added upstream
|
41
67
|
Given a file named "exit_at_spec.rb" with:
|
42
68
|
"""ruby
|
@@ -11,7 +11,7 @@ Feature: Overriding global ordering
|
|
11
11
|
`:global`, it will be the global default, used by all groups that do not have
|
12
12
|
`:order` metadata (and by RSpec to order the top-level groups).
|
13
13
|
|
14
|
-
Scenario: Running a specific
|
14
|
+
Scenario: Running a specific example group in order
|
15
15
|
Given a file named "order_dependent_spec.rb" with:
|
16
16
|
"""ruby
|
17
17
|
RSpec.describe "examples only pass when they are run in order", :order => :defined do
|
@@ -218,3 +218,28 @@ Feature: Profile examples
|
|
218
218
|
When I run `rspec spec --fail-fast --profile`
|
219
219
|
Then the output should not contain "Top 2 slowest examples"
|
220
220
|
And the output should not contain "example 1"
|
221
|
+
|
222
|
+
Scenario: Using `--profile` with slow before hooks includes hook execution time
|
223
|
+
Given a file named "spec/example_spec.rb" with:
|
224
|
+
"""ruby
|
225
|
+
RSpec.describe "slow before context hook" do
|
226
|
+
before(:context) do
|
227
|
+
sleep 0.2
|
228
|
+
end
|
229
|
+
|
230
|
+
context "nested" do
|
231
|
+
it "example" do
|
232
|
+
expect(10).to eq(10)
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
RSpec.describe "slow example" do
|
238
|
+
it "slow example" do
|
239
|
+
sleep 0.1
|
240
|
+
expect(10).to eq(10)
|
241
|
+
end
|
242
|
+
end
|
243
|
+
"""
|
244
|
+
When I run `rspec spec --profile 1`
|
245
|
+
Then the output should report "slow before context hook" as the slowest example group
|