rubocop-rspec 2.21.0 → 3.0.1
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/CHANGELOG.md +147 -9
 - data/README.md +2 -2
 - data/config/default.yml +159 -244
 - data/config/obsoletion.yml +24 -0
 - data/lib/rubocop/cop/rspec/around_block.rb +3 -3
 - data/lib/rubocop/cop/rspec/base.rb +0 -1
 - data/lib/rubocop/cop/rspec/be.rb +1 -1
 - data/lib/rubocop/cop/rspec/be_empty.rb +1 -0
 - data/lib/rubocop/cop/rspec/be_eq.rb +1 -1
 - data/lib/rubocop/cop/rspec/be_eql.rb +1 -1
 - data/lib/rubocop/cop/rspec/be_nil.rb +2 -2
 - data/lib/rubocop/cop/rspec/before_after_all.rb +7 -13
 - data/lib/rubocop/cop/rspec/change_by_zero.rb +30 -4
 - data/lib/rubocop/cop/rspec/context_method.rb +2 -2
 - data/lib/rubocop/cop/rspec/context_wording.rb +1 -1
 - data/lib/rubocop/cop/rspec/describe_symbol.rb +1 -1
 - data/lib/rubocop/cop/rspec/described_class.rb +33 -11
 - data/lib/rubocop/cop/rspec/dialect.rb +13 -0
 - data/lib/rubocop/cop/rspec/duplicated_metadata.rb +1 -1
 - data/lib/rubocop/cop/rspec/empty_example_group.rb +4 -1
 - data/lib/rubocop/cop/rspec/empty_hook.rb +1 -1
 - data/lib/rubocop/cop/rspec/empty_line_after_example.rb +2 -2
 - data/lib/rubocop/cop/rspec/empty_metadata.rb +46 -0
 - data/lib/rubocop/cop/rspec/empty_output.rb +47 -0
 - data/lib/rubocop/cop/rspec/eq.rb +47 -0
 - data/lib/rubocop/cop/rspec/example_length.rb +11 -5
 - data/lib/rubocop/cop/rspec/example_without_description.rb +11 -2
 - data/lib/rubocop/cop/rspec/example_wording.rb +11 -2
 - data/lib/rubocop/cop/rspec/excessive_docstring_spacing.rb +14 -5
 - data/lib/rubocop/cop/rspec/expect_actual.rb +17 -14
 - data/lib/rubocop/cop/rspec/expect_change.rb +2 -2
 - data/lib/rubocop/cop/rspec/expect_in_hook.rb +1 -1
 - data/lib/rubocop/cop/rspec/expect_in_let.rb +42 -0
 - data/lib/rubocop/cop/rspec/expect_output.rb +1 -4
 - data/lib/rubocop/cop/rspec/focus.rb +17 -2
 - data/lib/rubocop/cop/rspec/hook_argument.rb +2 -2
 - data/lib/rubocop/cop/rspec/hooks_before_examples.rb +1 -1
 - data/lib/rubocop/cop/rspec/implicit_block_expectation.rb +2 -2
 - data/lib/rubocop/cop/rspec/implicit_expect.rb +1 -1
 - data/lib/rubocop/cop/rspec/implicit_subject.rb +2 -2
 - data/lib/rubocop/cop/rspec/indexed_let.rb +32 -1
 - data/lib/rubocop/cop/rspec/instance_spy.rb +2 -2
 - data/lib/rubocop/cop/rspec/instance_variable.rb +4 -4
 - data/lib/rubocop/cop/rspec/is_expected_specify.rb +45 -0
 - data/lib/rubocop/cop/rspec/iterated_expectation.rb +3 -3
 - data/lib/rubocop/cop/rspec/leaky_constant_declaration.rb +2 -2
 - data/lib/rubocop/cop/rspec/let_before_examples.rb +5 -1
 - data/lib/rubocop/cop/rspec/let_setup.rb +1 -1
 - data/lib/rubocop/cop/rspec/message_expectation.rb +1 -2
 - data/lib/rubocop/cop/rspec/message_spies.rb +0 -2
 - data/lib/rubocop/cop/rspec/metadata_style.rb +202 -0
 - data/lib/rubocop/cop/rspec/missing_expectation_target_method.rb +54 -0
 - data/lib/rubocop/cop/rspec/mixin/file_help.rb +14 -0
 - data/lib/rubocop/cop/rspec/mixin/metadata.rb +21 -7
 - data/lib/rubocop/cop/rspec/mixin/skip_or_pending.rb +2 -2
 - data/lib/rubocop/cop/rspec/multiple_describes.rb +1 -1
 - data/lib/rubocop/cop/rspec/multiple_expectations.rb +16 -11
 - data/lib/rubocop/cop/rspec/multiple_memoized_helpers.rb +2 -4
 - data/lib/rubocop/cop/rspec/named_subject.rb +6 -3
 - data/lib/rubocop/cop/rspec/pending.rb +12 -2
 - data/lib/rubocop/cop/rspec/pending_without_reason.rb +1 -1
 - data/lib/rubocop/cop/rspec/predicate_matcher.rb +10 -10
 - data/lib/rubocop/cop/rspec/receive_counts.rb +1 -1
 - data/lib/rubocop/cop/rspec/receive_messages.rb +161 -0
 - data/lib/rubocop/cop/rspec/redundant_predicate_matcher.rb +67 -0
 - data/lib/rubocop/cop/rspec/remove_const.rb +39 -0
 - data/lib/rubocop/cop/rspec/repeated_example.rb +6 -6
 - data/lib/rubocop/cop/rspec/repeated_example_group_body.rb +1 -1
 - data/lib/rubocop/cop/rspec/repeated_example_group_description.rb +2 -2
 - data/lib/rubocop/cop/rspec/repeated_include_example.rb +1 -1
 - data/lib/rubocop/cop/rspec/repeated_subject_call.rb +125 -0
 - data/lib/rubocop/cop/rspec/return_from_stub.rb +1 -1
 - data/lib/rubocop/cop/rspec/scattered_setup.rb +1 -1
 - data/lib/rubocop/cop/rspec/shared_context.rb +1 -1
 - data/lib/rubocop/cop/rspec/shared_examples.rb +66 -20
 - data/lib/rubocop/cop/rspec/single_argument_message_chain.rb +2 -3
 - data/lib/rubocop/cop/rspec/sort_metadata.rb +3 -2
 - data/lib/rubocop/cop/rspec/spec_file_path_format.rb +133 -0
 - data/lib/rubocop/cop/rspec/spec_file_path_suffix.rb +40 -0
 - data/lib/rubocop/cop/rspec/stubbed_mock.rb +4 -2
 - data/lib/rubocop/cop/rspec/subject_stub.rb +6 -6
 - data/lib/rubocop/cop/rspec/undescriptive_literals_description.rb +69 -0
 - data/lib/rubocop/cop/rspec/unspecified_exception.rb +2 -2
 - data/lib/rubocop/cop/rspec/variable_definition.rb +4 -4
 - data/lib/rubocop/cop/rspec/verified_double_reference.rb +6 -6
 - data/lib/rubocop/cop/rspec/verified_doubles.rb +2 -2
 - data/lib/rubocop/cop/rspec/void_expect.rb +4 -3
 - data/lib/rubocop/cop/rspec_cops.rb +14 -28
 - data/lib/rubocop/rspec/concept.rb +0 -1
 - data/lib/rubocop/rspec/config_formatter.rb +1 -11
 - data/lib/rubocop/rspec/cop/generator.rb +25 -0
 - data/lib/rubocop/rspec/language.rb +8 -9
 - data/lib/rubocop/rspec/node.rb +1 -1
 - data/lib/rubocop/rspec/shared_contexts/default_rspec_language_config_context.rb +1 -1
 - data/lib/rubocop/rspec/version.rb +1 -1
 - data/lib/rubocop/rspec/wording.rb +8 -0
 - data/lib/rubocop-rspec.rb +2 -16
 - metadata +27 -49
 - data/lib/rubocop/cop/rspec/capybara/current_path_expectation.rb +0 -39
 - data/lib/rubocop/cop/rspec/capybara/feature_methods.rb +0 -104
 - data/lib/rubocop/cop/rspec/capybara/match_style.rb +0 -38
 - data/lib/rubocop/cop/rspec/capybara/negation_matcher.rb +0 -33
 - data/lib/rubocop/cop/rspec/capybara/specific_actions.rb +0 -29
 - data/lib/rubocop/cop/rspec/capybara/specific_finders.rb +0 -24
 - data/lib/rubocop/cop/rspec/capybara/specific_matcher.rb +0 -35
 - data/lib/rubocop/cop/rspec/capybara/visibility_matcher.rb +0 -36
 - data/lib/rubocop/cop/rspec/factory_bot/attribute_defined_statically.rb +0 -128
 - data/lib/rubocop/cop/rspec/factory_bot/consistent_parentheses_style.rb +0 -117
 - data/lib/rubocop/cop/rspec/factory_bot/create_list.rb +0 -260
 - data/lib/rubocop/cop/rspec/factory_bot/factory_class_name.rb +0 -56
 - data/lib/rubocop/cop/rspec/factory_bot/factory_name_style.rb +0 -74
 - data/lib/rubocop/cop/rspec/factory_bot/syntax_methods.rb +0 -89
 - data/lib/rubocop/cop/rspec/file_path.rb +0 -173
 - data/lib/rubocop/cop/rspec/rails/avoid_setup_hook.rb +0 -43
 - data/lib/rubocop/cop/rspec/rails/have_http_status.rb +0 -55
 - data/lib/rubocop/cop/rspec/rails/http_status.rb +0 -203
 - data/lib/rubocop/cop/rspec/rails/inferred_spec_type.rb +0 -145
 - data/lib/rubocop/cop/rspec/rails/minitest_assertions.rb +0 -60
 - data/lib/rubocop/cop/rspec/rails/travel_around.rb +0 -92
 - data/lib/rubocop/rspec/factory_bot/language.rb +0 -37
 - data/lib/rubocop/rspec/factory_bot.rb +0 -64
 - data/lib/rubocop/rspec/language/node_pattern.rb +0 -48
 
| 
         @@ -6,6 +6,8 @@ module RuboCop 
     | 
|
| 
       6 
6 
     | 
    
         
             
                class Wording
         
     | 
| 
       7 
7 
     | 
    
         
             
                  SHOULDNT_PREFIX    = /\Ashould(?:n't| not)\b/i.freeze
         
     | 
| 
       8 
8 
     | 
    
         
             
                  SHOULDNT_BE_PREFIX = /#{SHOULDNT_PREFIX} be\b/i.freeze
         
     | 
| 
      
 9 
     | 
    
         
            +
                  WILL_NOT_PREFIX    = /\Awill not\b/i.freeze
         
     | 
| 
      
 10 
     | 
    
         
            +
                  WONT_PREFIX        = /\Awon't\b/i.freeze
         
     | 
| 
       9 
11 
     | 
    
         
             
                  ES_SUFFIX_PATTERN  = /(?:o|s|x|ch|sh|z)\z/i.freeze
         
     | 
| 
       10 
12 
     | 
    
         
             
                  IES_SUFFIX_PATTERN = /[^aeou]y\z/i.freeze
         
     | 
| 
       11 
13 
     | 
    
         | 
| 
         @@ -15,16 +17,22 @@ module RuboCop 
     | 
|
| 
       15 
17 
     | 
    
         
             
                    @replacements = replace
         
     | 
| 
       16 
18 
     | 
    
         
             
                  end
         
     | 
| 
       17 
19 
     | 
    
         | 
| 
      
 20 
     | 
    
         
            +
                  # rubocop:disable Metrics/MethodLength
         
     | 
| 
       18 
21 
     | 
    
         
             
                  def rewrite
         
     | 
| 
       19 
22 
     | 
    
         
             
                    case text
         
     | 
| 
       20 
23 
     | 
    
         
             
                    when SHOULDNT_BE_PREFIX
         
     | 
| 
       21 
24 
     | 
    
         
             
                      replace_prefix(SHOULDNT_BE_PREFIX, 'is not')
         
     | 
| 
       22 
25 
     | 
    
         
             
                    when SHOULDNT_PREFIX
         
     | 
| 
       23 
26 
     | 
    
         
             
                      replace_prefix(SHOULDNT_PREFIX, 'does not')
         
     | 
| 
      
 27 
     | 
    
         
            +
                    when WILL_NOT_PREFIX
         
     | 
| 
      
 28 
     | 
    
         
            +
                      replace_prefix(WILL_NOT_PREFIX, 'does not')
         
     | 
| 
      
 29 
     | 
    
         
            +
                    when WONT_PREFIX
         
     | 
| 
      
 30 
     | 
    
         
            +
                      replace_prefix(WONT_PREFIX, 'does not')
         
     | 
| 
       24 
31 
     | 
    
         
             
                    else
         
     | 
| 
       25 
32 
     | 
    
         
             
                      remove_should_and_pluralize
         
     | 
| 
       26 
33 
     | 
    
         
             
                    end
         
     | 
| 
       27 
34 
     | 
    
         
             
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
                  # rubocop:enable Metrics/MethodLength
         
     | 
| 
       28 
36 
     | 
    
         | 
| 
       29 
37 
     | 
    
         
             
                  private
         
     | 
| 
       30 
38 
     | 
    
         | 
    
        data/lib/rubocop-rspec.rb
    CHANGED
    
    | 
         @@ -4,20 +4,15 @@ require 'pathname' 
     | 
|
| 
       4 
4 
     | 
    
         
             
            require 'yaml'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            require 'rubocop'
         
     | 
| 
       7 
     | 
    
         
            -
            require 'rubocop-capybara'
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
8 
     | 
    
         
             
            require_relative 'rubocop/rspec'
         
     | 
| 
       10 
9 
     | 
    
         
             
            require_relative 'rubocop/rspec/inject'
         
     | 
| 
       11 
     | 
    
         
            -
            require_relative 'rubocop/rspec/language 
     | 
| 
      
 10 
     | 
    
         
            +
            require_relative 'rubocop/rspec/language'
         
     | 
| 
       12 
11 
     | 
    
         
             
            require_relative 'rubocop/rspec/node'
         
     | 
| 
       13 
12 
     | 
    
         
             
            require_relative 'rubocop/rspec/version'
         
     | 
| 
       14 
13 
     | 
    
         
             
            require_relative 'rubocop/rspec/wording'
         
     | 
| 
       15 
14 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
            require_relative 'rubocop/rspec/language'
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
            require_relative 'rubocop/rspec/factory_bot/language'
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
      
 15 
     | 
    
         
            +
            require_relative 'rubocop/cop/rspec/mixin/file_help'
         
     | 
| 
       21 
16 
     | 
    
         
             
            require_relative 'rubocop/cop/rspec/mixin/final_end_location'
         
     | 
| 
       22 
17 
     | 
    
         
             
            require_relative 'rubocop/cop/rspec/mixin/inside_example_group'
         
     | 
| 
       23 
18 
     | 
    
         
             
            require_relative 'rubocop/cop/rspec/mixin/location_help'
         
     | 
| 
         @@ -37,7 +32,6 @@ require_relative 'rubocop/rspec/concept' 
     | 
|
| 
       37 
32 
     | 
    
         
             
            require_relative 'rubocop/rspec/corrector/move_node'
         
     | 
| 
       38 
33 
     | 
    
         
             
            require_relative 'rubocop/rspec/example'
         
     | 
| 
       39 
34 
     | 
    
         
             
            require_relative 'rubocop/rspec/example_group'
         
     | 
| 
       40 
     | 
    
         
            -
            require_relative 'rubocop/rspec/factory_bot'
         
     | 
| 
       41 
35 
     | 
    
         
             
            require_relative 'rubocop/rspec/hook'
         
     | 
| 
       42 
36 
     | 
    
         | 
| 
       43 
37 
     | 
    
         
             
            RuboCop::RSpec::Inject.defaults!
         
     | 
| 
         @@ -56,12 +50,4 @@ RuboCop::Cop::Layout::ExtraSpacing.singleton_class.prepend( 
     | 
|
| 
       56 
50 
     | 
    
         
             
              end
         
     | 
| 
       57 
51 
     | 
    
         
             
            )
         
     | 
| 
       58 
52 
     | 
    
         | 
| 
       59 
     | 
    
         
            -
            RuboCop::Cop::Style::TrailingCommaInArguments.singleton_class.prepend(
         
     | 
| 
       60 
     | 
    
         
            -
              Module.new do
         
     | 
| 
       61 
     | 
    
         
            -
                def autocorrect_incompatible_with
         
     | 
| 
       62 
     | 
    
         
            -
                  super.push(RuboCop::Cop::RSpec::Capybara::CurrentPathExpectation)
         
     | 
| 
       63 
     | 
    
         
            -
                end
         
     | 
| 
       64 
     | 
    
         
            -
              end
         
     | 
| 
       65 
     | 
    
         
            -
            )
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
53 
     | 
    
         
             
            RuboCop::AST::Node.include(RuboCop::RSpec::Node)
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,16 +1,16 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rubocop-rspec
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version:  
     | 
| 
      
 4 
     | 
    
         
            +
              version: 3.0.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - John Backus
         
     | 
| 
       8 
8 
     | 
    
         
             
            - Ian MacLeod
         
     | 
| 
       9 
9 
     | 
    
         
             
            - Nils Gemeinhardt
         
     | 
| 
       10 
     | 
    
         
            -
            autorequire:
         
     | 
| 
      
 10 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
       11 
11 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       12 
12 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       13 
     | 
    
         
            -
            date:  
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2024-06-11 00:00:00.000000000 Z
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies:
         
     | 
| 
       15 
15 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
16 
     | 
    
         
             
              name: rubocop
         
     | 
| 
         @@ -18,31 +18,17 @@ dependencies: 
     | 
|
| 
       18 
18 
     | 
    
         
             
                requirements:
         
     | 
| 
       19 
19 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       20 
20 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       21 
     | 
    
         
            -
                    version: '1. 
     | 
| 
      
 21 
     | 
    
         
            +
                    version: '1.61'
         
     | 
| 
       22 
22 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       23 
23 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
24 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       25 
25 
     | 
    
         
             
                requirements:
         
     | 
| 
       26 
26 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       27 
27 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       28 
     | 
    
         
            -
                    version: '1. 
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
               
     | 
| 
       31 
     | 
    
         
            -
               
     | 
| 
       32 
     | 
    
         
            -
                requirements:
         
     | 
| 
       33 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       34 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       35 
     | 
    
         
            -
                    version: '2.17'
         
     | 
| 
       36 
     | 
    
         
            -
              type: :runtime
         
     | 
| 
       37 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       38 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       39 
     | 
    
         
            -
                requirements:
         
     | 
| 
       40 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       41 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       42 
     | 
    
         
            -
                    version: '2.17'
         
     | 
| 
       43 
     | 
    
         
            -
            description: |2
         
     | 
| 
       44 
     | 
    
         
            -
                  Code style checking for RSpec files.
         
     | 
| 
       45 
     | 
    
         
            -
                  A plugin for the RuboCop code style enforcing & linting tool.
         
     | 
| 
      
 28 
     | 
    
         
            +
                    version: '1.61'
         
     | 
| 
      
 29 
     | 
    
         
            +
            description: |
         
     | 
| 
      
 30 
     | 
    
         
            +
              Code style checking for RSpec files.
         
     | 
| 
      
 31 
     | 
    
         
            +
              A plugin for the RuboCop code style enforcing & linting tool.
         
     | 
| 
       46 
32 
     | 
    
         
             
            email:
         
     | 
| 
       47 
33 
     | 
    
         
             
            - johncbackus@gmail.com
         
     | 
| 
       48 
34 
     | 
    
         
             
            - ian@nevir.net
         
     | 
| 
         @@ -71,14 +57,6 @@ files: 
     | 
|
| 
       71 
57 
     | 
    
         
             
            - lib/rubocop/cop/rspec/be_eql.rb
         
     | 
| 
       72 
58 
     | 
    
         
             
            - lib/rubocop/cop/rspec/be_nil.rb
         
     | 
| 
       73 
59 
     | 
    
         
             
            - lib/rubocop/cop/rspec/before_after_all.rb
         
     | 
| 
       74 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/capybara/current_path_expectation.rb
         
     | 
| 
       75 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/capybara/feature_methods.rb
         
     | 
| 
       76 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/capybara/match_style.rb
         
     | 
| 
       77 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/capybara/negation_matcher.rb
         
     | 
| 
       78 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/capybara/specific_actions.rb
         
     | 
| 
       79 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/capybara/specific_finders.rb
         
     | 
| 
       80 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/capybara/specific_matcher.rb
         
     | 
| 
       81 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/capybara/visibility_matcher.rb
         
     | 
| 
       82 
60 
     | 
    
         
             
            - lib/rubocop/cop/rspec/change_by_zero.rb
         
     | 
| 
       83 
61 
     | 
    
         
             
            - lib/rubocop/cop/rspec/class_check.rb
         
     | 
| 
       84 
62 
     | 
    
         
             
            - lib/rubocop/cop/rspec/contain_exactly.rb
         
     | 
| 
         @@ -98,6 +76,9 @@ files: 
     | 
|
| 
       98 
76 
     | 
    
         
             
            - lib/rubocop/cop/rspec/empty_line_after_final_let.rb
         
     | 
| 
       99 
77 
     | 
    
         
             
            - lib/rubocop/cop/rspec/empty_line_after_hook.rb
         
     | 
| 
       100 
78 
     | 
    
         
             
            - lib/rubocop/cop/rspec/empty_line_after_subject.rb
         
     | 
| 
      
 79 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/empty_metadata.rb
         
     | 
| 
      
 80 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/empty_output.rb
         
     | 
| 
      
 81 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/eq.rb
         
     | 
| 
       101 
82 
     | 
    
         
             
            - lib/rubocop/cop/rspec/example_length.rb
         
     | 
| 
       102 
83 
     | 
    
         
             
            - lib/rubocop/cop/rspec/example_without_description.rb
         
     | 
| 
       103 
84 
     | 
    
         
             
            - lib/rubocop/cop/rspec/example_wording.rb
         
     | 
| 
         @@ -105,14 +86,8 @@ files: 
     | 
|
| 
       105 
86 
     | 
    
         
             
            - lib/rubocop/cop/rspec/expect_actual.rb
         
     | 
| 
       106 
87 
     | 
    
         
             
            - lib/rubocop/cop/rspec/expect_change.rb
         
     | 
| 
       107 
88 
     | 
    
         
             
            - lib/rubocop/cop/rspec/expect_in_hook.rb
         
     | 
| 
      
 89 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/expect_in_let.rb
         
     | 
| 
       108 
90 
     | 
    
         
             
            - lib/rubocop/cop/rspec/expect_output.rb
         
     | 
| 
       109 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/factory_bot/attribute_defined_statically.rb
         
     | 
| 
       110 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/factory_bot/consistent_parentheses_style.rb
         
     | 
| 
       111 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/factory_bot/create_list.rb
         
     | 
| 
       112 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/factory_bot/factory_class_name.rb
         
     | 
| 
       113 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/factory_bot/factory_name_style.rb
         
     | 
| 
       114 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/factory_bot/syntax_methods.rb
         
     | 
| 
       115 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/file_path.rb
         
     | 
| 
       116 
91 
     | 
    
         
             
            - lib/rubocop/cop/rspec/focus.rb
         
     | 
| 
       117 
92 
     | 
    
         
             
            - lib/rubocop/cop/rspec/hook_argument.rb
         
     | 
| 
       118 
93 
     | 
    
         
             
            - lib/rubocop/cop/rspec/hooks_before_examples.rb
         
     | 
| 
         @@ -123,6 +98,7 @@ files: 
     | 
|
| 
       123 
98 
     | 
    
         
             
            - lib/rubocop/cop/rspec/indexed_let.rb
         
     | 
| 
       124 
99 
     | 
    
         
             
            - lib/rubocop/cop/rspec/instance_spy.rb
         
     | 
| 
       125 
100 
     | 
    
         
             
            - lib/rubocop/cop/rspec/instance_variable.rb
         
     | 
| 
      
 101 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/is_expected_specify.rb
         
     | 
| 
       126 
102 
     | 
    
         
             
            - lib/rubocop/cop/rspec/it_behaves_like.rb
         
     | 
| 
       127 
103 
     | 
    
         
             
            - lib/rubocop/cop/rspec/iterated_expectation.rb
         
     | 
| 
       128 
104 
     | 
    
         
             
            - lib/rubocop/cop/rspec/leading_subject.rb
         
     | 
| 
         @@ -133,9 +109,12 @@ files: 
     | 
|
| 
       133 
109 
     | 
    
         
             
            - lib/rubocop/cop/rspec/message_chain.rb
         
     | 
| 
       134 
110 
     | 
    
         
             
            - lib/rubocop/cop/rspec/message_expectation.rb
         
     | 
| 
       135 
111 
     | 
    
         
             
            - lib/rubocop/cop/rspec/message_spies.rb
         
     | 
| 
      
 112 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/metadata_style.rb
         
     | 
| 
       136 
113 
     | 
    
         
             
            - lib/rubocop/cop/rspec/missing_example_group_argument.rb
         
     | 
| 
      
 114 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/missing_expectation_target_method.rb
         
     | 
| 
       137 
115 
     | 
    
         
             
            - lib/rubocop/cop/rspec/mixin/comments_help.rb
         
     | 
| 
       138 
116 
     | 
    
         
             
            - lib/rubocop/cop/rspec/mixin/empty_line_separation.rb
         
     | 
| 
      
 117 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/mixin/file_help.rb
         
     | 
| 
       139 
118 
     | 
    
         
             
            - lib/rubocop/cop/rspec/mixin/final_end_location.rb
         
     | 
| 
       140 
119 
     | 
    
         
             
            - lib/rubocop/cop/rspec/mixin/inside_example_group.rb
         
     | 
| 
       141 
120 
     | 
    
         
             
            - lib/rubocop/cop/rspec/mixin/location_help.rb
         
     | 
| 
         @@ -156,20 +135,18 @@ files: 
     | 
|
| 
       156 
135 
     | 
    
         
             
            - lib/rubocop/cop/rspec/pending.rb
         
     | 
| 
       157 
136 
     | 
    
         
             
            - lib/rubocop/cop/rspec/pending_without_reason.rb
         
     | 
| 
       158 
137 
     | 
    
         
             
            - lib/rubocop/cop/rspec/predicate_matcher.rb
         
     | 
| 
       159 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/rails/avoid_setup_hook.rb
         
     | 
| 
       160 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/rails/have_http_status.rb
         
     | 
| 
       161 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/rails/http_status.rb
         
     | 
| 
       162 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/rails/inferred_spec_type.rb
         
     | 
| 
       163 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/rails/minitest_assertions.rb
         
     | 
| 
       164 
     | 
    
         
            -
            - lib/rubocop/cop/rspec/rails/travel_around.rb
         
     | 
| 
       165 
138 
     | 
    
         
             
            - lib/rubocop/cop/rspec/receive_counts.rb
         
     | 
| 
      
 139 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/receive_messages.rb
         
     | 
| 
       166 
140 
     | 
    
         
             
            - lib/rubocop/cop/rspec/receive_never.rb
         
     | 
| 
       167 
141 
     | 
    
         
             
            - lib/rubocop/cop/rspec/redundant_around.rb
         
     | 
| 
      
 142 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/redundant_predicate_matcher.rb
         
     | 
| 
      
 143 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/remove_const.rb
         
     | 
| 
       168 
144 
     | 
    
         
             
            - lib/rubocop/cop/rspec/repeated_description.rb
         
     | 
| 
       169 
145 
     | 
    
         
             
            - lib/rubocop/cop/rspec/repeated_example.rb
         
     | 
| 
       170 
146 
     | 
    
         
             
            - lib/rubocop/cop/rspec/repeated_example_group_body.rb
         
     | 
| 
       171 
147 
     | 
    
         
             
            - lib/rubocop/cop/rspec/repeated_example_group_description.rb
         
     | 
| 
       172 
148 
     | 
    
         
             
            - lib/rubocop/cop/rspec/repeated_include_example.rb
         
     | 
| 
      
 149 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/repeated_subject_call.rb
         
     | 
| 
       173 
150 
     | 
    
         
             
            - lib/rubocop/cop/rspec/return_from_stub.rb
         
     | 
| 
       174 
151 
     | 
    
         
             
            - lib/rubocop/cop/rspec/scattered_let.rb
         
     | 
| 
       175 
152 
     | 
    
         
             
            - lib/rubocop/cop/rspec/scattered_setup.rb
         
     | 
| 
         @@ -178,9 +155,12 @@ files: 
     | 
|
| 
       178 
155 
     | 
    
         
             
            - lib/rubocop/cop/rspec/single_argument_message_chain.rb
         
     | 
| 
       179 
156 
     | 
    
         
             
            - lib/rubocop/cop/rspec/skip_block_inside_example.rb
         
     | 
| 
       180 
157 
     | 
    
         
             
            - lib/rubocop/cop/rspec/sort_metadata.rb
         
     | 
| 
      
 158 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/spec_file_path_format.rb
         
     | 
| 
      
 159 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/spec_file_path_suffix.rb
         
     | 
| 
       181 
160 
     | 
    
         
             
            - lib/rubocop/cop/rspec/stubbed_mock.rb
         
     | 
| 
       182 
161 
     | 
    
         
             
            - lib/rubocop/cop/rspec/subject_declaration.rb
         
     | 
| 
       183 
162 
     | 
    
         
             
            - lib/rubocop/cop/rspec/subject_stub.rb
         
     | 
| 
      
 163 
     | 
    
         
            +
            - lib/rubocop/cop/rspec/undescriptive_literals_description.rb
         
     | 
| 
       184 
164 
     | 
    
         
             
            - lib/rubocop/cop/rspec/unspecified_exception.rb
         
     | 
| 
       185 
165 
     | 
    
         
             
            - lib/rubocop/cop/rspec/variable_definition.rb
         
     | 
| 
       186 
166 
     | 
    
         
             
            - lib/rubocop/cop/rspec/variable_name.rb
         
     | 
| 
         @@ -193,16 +173,14 @@ files: 
     | 
|
| 
       193 
173 
     | 
    
         
             
            - lib/rubocop/rspec/align_let_brace.rb
         
     | 
| 
       194 
174 
     | 
    
         
             
            - lib/rubocop/rspec/concept.rb
         
     | 
| 
       195 
175 
     | 
    
         
             
            - lib/rubocop/rspec/config_formatter.rb
         
     | 
| 
      
 176 
     | 
    
         
            +
            - lib/rubocop/rspec/cop/generator.rb
         
     | 
| 
       196 
177 
     | 
    
         
             
            - lib/rubocop/rspec/corrector/move_node.rb
         
     | 
| 
       197 
178 
     | 
    
         
             
            - lib/rubocop/rspec/description_extractor.rb
         
     | 
| 
       198 
179 
     | 
    
         
             
            - lib/rubocop/rspec/example.rb
         
     | 
| 
       199 
180 
     | 
    
         
             
            - lib/rubocop/rspec/example_group.rb
         
     | 
| 
       200 
     | 
    
         
            -
            - lib/rubocop/rspec/factory_bot.rb
         
     | 
| 
       201 
     | 
    
         
            -
            - lib/rubocop/rspec/factory_bot/language.rb
         
     | 
| 
       202 
181 
     | 
    
         
             
            - lib/rubocop/rspec/hook.rb
         
     | 
| 
       203 
182 
     | 
    
         
             
            - lib/rubocop/rspec/inject.rb
         
     | 
| 
       204 
183 
     | 
    
         
             
            - lib/rubocop/rspec/language.rb
         
     | 
| 
       205 
     | 
    
         
            -
            - lib/rubocop/rspec/language/node_pattern.rb
         
     | 
| 
       206 
184 
     | 
    
         
             
            - lib/rubocop/rspec/node.rb
         
     | 
| 
       207 
185 
     | 
    
         
             
            - lib/rubocop/rspec/shared_contexts/default_rspec_language_config_context.rb
         
     | 
| 
       208 
186 
     | 
    
         
             
            - lib/rubocop/rspec/version.rb
         
     | 
| 
         @@ -214,7 +192,7 @@ metadata: 
     | 
|
| 
       214 
192 
     | 
    
         
             
              changelog_uri: https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md
         
     | 
| 
       215 
193 
     | 
    
         
             
              documentation_uri: https://docs.rubocop.org/rubocop-rspec/
         
     | 
| 
       216 
194 
     | 
    
         
             
              rubygems_mfa_required: 'true'
         
     | 
| 
       217 
     | 
    
         
            -
            post_install_message:
         
     | 
| 
      
 195 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
       218 
196 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       219 
197 
     | 
    
         
             
            require_paths:
         
     | 
| 
       220 
198 
     | 
    
         
             
            - lib
         
     | 
| 
         @@ -229,8 +207,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       229 
207 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       230 
208 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       231 
209 
     | 
    
         
             
            requirements: []
         
     | 
| 
       232 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
       233 
     | 
    
         
            -
            signing_key:
         
     | 
| 
      
 210 
     | 
    
         
            +
            rubygems_version: 3.5.9
         
     | 
| 
      
 211 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
       234 
212 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       235 
213 
     | 
    
         
             
            summary: Code style checking for RSpec files
         
     | 
| 
       236 
214 
     | 
    
         
             
            test_files: []
         
     | 
| 
         @@ -1,39 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module RuboCop
         
     | 
| 
       4 
     | 
    
         
            -
              module Cop
         
     | 
| 
       5 
     | 
    
         
            -
                module RSpec
         
     | 
| 
       6 
     | 
    
         
            -
                  module Capybara
         
     | 
| 
       7 
     | 
    
         
            -
                    # @!parse
         
     | 
| 
       8 
     | 
    
         
            -
                    #   # Checks that no expectations are set on Capybara's `current_path`.
         
     | 
| 
       9 
     | 
    
         
            -
                    #   #
         
     | 
| 
       10 
     | 
    
         
            -
                    #   # The
         
     | 
| 
       11 
     | 
    
         
            -
                    #   # https://www.rubydoc.info/github/teamcapybara/capybara/master/Capybara/RSpecMatchers#have_current_path-instance_method[`have_current_path` matcher]
         
     | 
| 
       12 
     | 
    
         
            -
                    #   # should be used on `page` to set expectations on Capybara's
         
     | 
| 
       13 
     | 
    
         
            -
                    #   # current path, since it uses
         
     | 
| 
       14 
     | 
    
         
            -
                    #   # https://github.com/teamcapybara/capybara/blob/master/README.md#asynchronous-javascript-ajax-and-friends[Capybara's waiting functionality]
         
     | 
| 
       15 
     | 
    
         
            -
                    #   # which ensures that preceding actions (like `click_link`) have
         
     | 
| 
       16 
     | 
    
         
            -
                    #   # completed.
         
     | 
| 
       17 
     | 
    
         
            -
                    #   #
         
     | 
| 
       18 
     | 
    
         
            -
                    #   # This cop does not support autocorrection in some cases.
         
     | 
| 
       19 
     | 
    
         
            -
                    #   #
         
     | 
| 
       20 
     | 
    
         
            -
                    #   # @example
         
     | 
| 
       21 
     | 
    
         
            -
                    #   #   # bad
         
     | 
| 
       22 
     | 
    
         
            -
                    #   #   expect(current_path).to eq('/callback')
         
     | 
| 
       23 
     | 
    
         
            -
                    #   #
         
     | 
| 
       24 
     | 
    
         
            -
                    #   #   # good
         
     | 
| 
       25 
     | 
    
         
            -
                    #   #   expect(page).to have_current_path('/callback')
         
     | 
| 
       26 
     | 
    
         
            -
                    #   #
         
     | 
| 
       27 
     | 
    
         
            -
                    #   #   # bad (does not support autocorrection)
         
     | 
| 
       28 
     | 
    
         
            -
                    #   #   expect(page.current_path).to match(variable)
         
     | 
| 
       29 
     | 
    
         
            -
                    #   #
         
     | 
| 
       30 
     | 
    
         
            -
                    #   #   # good
         
     | 
| 
       31 
     | 
    
         
            -
                    #   #   expect(page).to have_current_path('/callback')
         
     | 
| 
       32 
     | 
    
         
            -
                    #   #
         
     | 
| 
       33 
     | 
    
         
            -
                    #   class CurrentPathExpectation < ::RuboCop::Cop::Base; end
         
     | 
| 
       34 
     | 
    
         
            -
                    CurrentPathExpectation =
         
     | 
| 
       35 
     | 
    
         
            -
                      ::RuboCop::Cop::Capybara::CurrentPathExpectation
         
     | 
| 
       36 
     | 
    
         
            -
                  end
         
     | 
| 
       37 
     | 
    
         
            -
                end
         
     | 
| 
       38 
     | 
    
         
            -
              end
         
     | 
| 
       39 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,104 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module RuboCop
         
     | 
| 
       4 
     | 
    
         
            -
              module Cop
         
     | 
| 
       5 
     | 
    
         
            -
                module RSpec
         
     | 
| 
       6 
     | 
    
         
            -
                  module Capybara
         
     | 
| 
       7 
     | 
    
         
            -
                    # Checks for consistent method usage in feature specs.
         
     | 
| 
       8 
     | 
    
         
            -
                    #
         
     | 
| 
       9 
     | 
    
         
            -
                    # By default, the cop disables all Capybara-specific methods that have
         
     | 
| 
       10 
     | 
    
         
            -
                    # the same native RSpec method (e.g. are just aliases). Some teams
         
     | 
| 
       11 
     | 
    
         
            -
                    # however may prefer using some of the Capybara methods (like `feature`)
         
     | 
| 
       12 
     | 
    
         
            -
                    # to make it obvious that the test uses Capybara, while still disable
         
     | 
| 
       13 
     | 
    
         
            -
                    # the rest of the methods, like `given` (alias for `let`), `background`
         
     | 
| 
       14 
     | 
    
         
            -
                    # (alias for `before`), etc. You can configure which of the methods to
         
     | 
| 
       15 
     | 
    
         
            -
                    # be enabled by using the EnabledMethods configuration option.
         
     | 
| 
       16 
     | 
    
         
            -
                    #
         
     | 
| 
       17 
     | 
    
         
            -
                    # @example
         
     | 
| 
       18 
     | 
    
         
            -
                    #   # bad
         
     | 
| 
       19 
     | 
    
         
            -
                    #   feature 'User logs in' do
         
     | 
| 
       20 
     | 
    
         
            -
                    #     given(:user) { User.new }
         
     | 
| 
       21 
     | 
    
         
            -
                    #
         
     | 
| 
       22 
     | 
    
         
            -
                    #     background do
         
     | 
| 
       23 
     | 
    
         
            -
                    #       visit new_session_path
         
     | 
| 
       24 
     | 
    
         
            -
                    #     end
         
     | 
| 
       25 
     | 
    
         
            -
                    #
         
     | 
| 
       26 
     | 
    
         
            -
                    #     scenario 'with OAuth' do
         
     | 
| 
       27 
     | 
    
         
            -
                    #       # ...
         
     | 
| 
       28 
     | 
    
         
            -
                    #     end
         
     | 
| 
       29 
     | 
    
         
            -
                    #   end
         
     | 
| 
       30 
     | 
    
         
            -
                    #
         
     | 
| 
       31 
     | 
    
         
            -
                    #   # good
         
     | 
| 
       32 
     | 
    
         
            -
                    #   describe 'User logs in' do
         
     | 
| 
       33 
     | 
    
         
            -
                    #     let(:user) { User.new }
         
     | 
| 
       34 
     | 
    
         
            -
                    #
         
     | 
| 
       35 
     | 
    
         
            -
                    #     before do
         
     | 
| 
       36 
     | 
    
         
            -
                    #       visit new_session_path
         
     | 
| 
       37 
     | 
    
         
            -
                    #     end
         
     | 
| 
       38 
     | 
    
         
            -
                    #
         
     | 
| 
       39 
     | 
    
         
            -
                    #     it 'with OAuth' do
         
     | 
| 
       40 
     | 
    
         
            -
                    #       # ...
         
     | 
| 
       41 
     | 
    
         
            -
                    #     end
         
     | 
| 
       42 
     | 
    
         
            -
                    #   end
         
     | 
| 
       43 
     | 
    
         
            -
                    #
         
     | 
| 
       44 
     | 
    
         
            -
                    class FeatureMethods < Base
         
     | 
| 
       45 
     | 
    
         
            -
                      extend AutoCorrector
         
     | 
| 
       46 
     | 
    
         
            -
                      include InsideExampleGroup
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                      MSG = 'Use `%<replacement>s` instead of `%<method>s`.'
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
                      # https://github.com/teamcapybara/capybara/blob/e283c1aeaa72441f5403963577e16333bf111a81/lib/capybara/rspec/features.rb#L31-L36
         
     | 
| 
       51 
     | 
    
         
            -
                      MAP = {
         
     | 
| 
       52 
     | 
    
         
            -
                        background: :before,
         
     | 
| 
       53 
     | 
    
         
            -
                        scenario:   :it,
         
     | 
| 
       54 
     | 
    
         
            -
                        xscenario:  :xit,
         
     | 
| 
       55 
     | 
    
         
            -
                        given:      :let,
         
     | 
| 
       56 
     | 
    
         
            -
                        given!:     :let!,
         
     | 
| 
       57 
     | 
    
         
            -
                        feature:    :describe
         
     | 
| 
       58 
     | 
    
         
            -
                      }.freeze
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                      # @!method capybara_speak(node)
         
     | 
| 
       61 
     | 
    
         
            -
                      def_node_matcher :capybara_speak, <<-PATTERN
         
     | 
| 
       62 
     | 
    
         
            -
                        {#{MAP.keys.map(&:inspect).join(' ')}}
         
     | 
| 
       63 
     | 
    
         
            -
                      PATTERN
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
                      # @!method feature_method(node)
         
     | 
| 
       66 
     | 
    
         
            -
                      def_node_matcher :feature_method, <<-PATTERN
         
     | 
| 
       67 
     | 
    
         
            -
                        (block
         
     | 
| 
       68 
     | 
    
         
            -
                          $(send #rspec? $#capybara_speak ...)
         
     | 
| 
       69 
     | 
    
         
            -
                        ...)
         
     | 
| 
       70 
     | 
    
         
            -
                      PATTERN
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
                      def on_block(node) # rubocop:disable InternalAffairs/NumblockHandler
         
     | 
| 
       73 
     | 
    
         
            -
                        return unless inside_example_group?(node)
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                        feature_method(node) do |send_node, match|
         
     | 
| 
       76 
     | 
    
         
            -
                          next if enabled?(match)
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
                          add_offense(send_node.loc.selector) do |corrector|
         
     | 
| 
       79 
     | 
    
         
            -
                            corrector.replace(send_node.loc.selector, MAP[match].to_s)
         
     | 
| 
       80 
     | 
    
         
            -
                          end
         
     | 
| 
       81 
     | 
    
         
            -
                        end
         
     | 
| 
       82 
     | 
    
         
            -
                      end
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
                      def message(range)
         
     | 
| 
       85 
     | 
    
         
            -
                        name = range.source.to_sym
         
     | 
| 
       86 
     | 
    
         
            -
                        format(MSG, method: name, replacement: MAP[name])
         
     | 
| 
       87 
     | 
    
         
            -
                      end
         
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
                      private
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
                      def enabled?(method_name)
         
     | 
| 
       92 
     | 
    
         
            -
                        enabled_methods.include?(method_name)
         
     | 
| 
       93 
     | 
    
         
            -
                      end
         
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
                      def enabled_methods
         
     | 
| 
       96 
     | 
    
         
            -
                        cop_config
         
     | 
| 
       97 
     | 
    
         
            -
                          .fetch('EnabledMethods', [])
         
     | 
| 
       98 
     | 
    
         
            -
                          .map(&:to_sym)
         
     | 
| 
       99 
     | 
    
         
            -
                      end
         
     | 
| 
       100 
     | 
    
         
            -
                    end
         
     | 
| 
       101 
     | 
    
         
            -
                  end
         
     | 
| 
       102 
     | 
    
         
            -
                end
         
     | 
| 
       103 
     | 
    
         
            -
              end
         
     | 
| 
       104 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,38 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module RuboCop
         
     | 
| 
       4 
     | 
    
         
            -
              module Cop
         
     | 
| 
       5 
     | 
    
         
            -
                module RSpec
         
     | 
| 
       6 
     | 
    
         
            -
                  module Capybara
         
     | 
| 
       7 
     | 
    
         
            -
                    # @!parse
         
     | 
| 
       8 
     | 
    
         
            -
                    #   # Checks for usage of deprecated style methods.
         
     | 
| 
       9 
     | 
    
         
            -
                    #   #
         
     | 
| 
       10 
     | 
    
         
            -
                    #   # @example when using `assert_style`
         
     | 
| 
       11 
     | 
    
         
            -
                    #   #   # bad
         
     | 
| 
       12 
     | 
    
         
            -
                    #   #   page.find(:css, '#first').assert_style(display: 'block')
         
     | 
| 
       13 
     | 
    
         
            -
                    #   #
         
     | 
| 
       14 
     | 
    
         
            -
                    #   #   # good
         
     | 
| 
       15 
     | 
    
         
            -
                    #   #   page.find(:css, '#first').assert_matches_style(display: 'block')
         
     | 
| 
       16 
     | 
    
         
            -
                    #   #
         
     | 
| 
       17 
     | 
    
         
            -
                    #   # @example when using `has_style?`
         
     | 
| 
       18 
     | 
    
         
            -
                    #   #   # bad
         
     | 
| 
       19 
     | 
    
         
            -
                    #   #   expect(page.find(:css, 'first')
         
     | 
| 
       20 
     | 
    
         
            -
                    #   #     .has_style?(display: 'block')).to be true
         
     | 
| 
       21 
     | 
    
         
            -
                    #   #
         
     | 
| 
       22 
     | 
    
         
            -
                    #   #   # good
         
     | 
| 
       23 
     | 
    
         
            -
                    #   #   expect(page.find(:css, 'first')
         
     | 
| 
       24 
     | 
    
         
            -
                    #   #     .matches_style?(display: 'block')).to be true
         
     | 
| 
       25 
     | 
    
         
            -
                    #   #
         
     | 
| 
       26 
     | 
    
         
            -
                    #   # @example when using `have_style`
         
     | 
| 
       27 
     | 
    
         
            -
                    #   #   # bad
         
     | 
| 
       28 
     | 
    
         
            -
                    #   #   expect(page).to have_style(display: 'block')
         
     | 
| 
       29 
     | 
    
         
            -
                    #   #
         
     | 
| 
       30 
     | 
    
         
            -
                    #   #   # good
         
     | 
| 
       31 
     | 
    
         
            -
                    #   #   expect(page).to match_style(display: 'block')
         
     | 
| 
       32 
     | 
    
         
            -
                    #   #
         
     | 
| 
       33 
     | 
    
         
            -
                    #   class MatchStyle < ::RuboCop::Cop::Base; end
         
     | 
| 
       34 
     | 
    
         
            -
                    MatchStyle = ::RuboCop::Cop::Capybara::MatchStyle
         
     | 
| 
       35 
     | 
    
         
            -
                  end
         
     | 
| 
       36 
     | 
    
         
            -
                end
         
     | 
| 
       37 
     | 
    
         
            -
              end
         
     | 
| 
       38 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,33 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module RuboCop
         
     | 
| 
       4 
     | 
    
         
            -
              module Cop
         
     | 
| 
       5 
     | 
    
         
            -
                module RSpec
         
     | 
| 
       6 
     | 
    
         
            -
                  module Capybara
         
     | 
| 
       7 
     | 
    
         
            -
                    # @!parse
         
     | 
| 
       8 
     | 
    
         
            -
                    #   # Enforces use of `have_no_*` or `not_to` for negated expectations.
         
     | 
| 
       9 
     | 
    
         
            -
                    #   #
         
     | 
| 
       10 
     | 
    
         
            -
                    #   # @example EnforcedStyle: not_to (default)
         
     | 
| 
       11 
     | 
    
         
            -
                    #   #   # bad
         
     | 
| 
       12 
     | 
    
         
            -
                    #   #   expect(page).to have_no_selector
         
     | 
| 
       13 
     | 
    
         
            -
                    #   #   expect(page).to have_no_css('a')
         
     | 
| 
       14 
     | 
    
         
            -
                    #   #
         
     | 
| 
       15 
     | 
    
         
            -
                    #   #   # good
         
     | 
| 
       16 
     | 
    
         
            -
                    #   #   expect(page).not_to have_selector
         
     | 
| 
       17 
     | 
    
         
            -
                    #   #   expect(page).not_to have_css('a')
         
     | 
| 
       18 
     | 
    
         
            -
                    #   #
         
     | 
| 
       19 
     | 
    
         
            -
                    #   # @example EnforcedStyle: have_no
         
     | 
| 
       20 
     | 
    
         
            -
                    #   #   # bad
         
     | 
| 
       21 
     | 
    
         
            -
                    #   #   expect(page).not_to have_selector
         
     | 
| 
       22 
     | 
    
         
            -
                    #   #   expect(page).not_to have_css('a')
         
     | 
| 
       23 
     | 
    
         
            -
                    #   #
         
     | 
| 
       24 
     | 
    
         
            -
                    #   #   # good
         
     | 
| 
       25 
     | 
    
         
            -
                    #   #   expect(page).to have_no_selector
         
     | 
| 
       26 
     | 
    
         
            -
                    #   #   expect(page).to have_no_css('a')
         
     | 
| 
       27 
     | 
    
         
            -
                    #   #
         
     | 
| 
       28 
     | 
    
         
            -
                    #   class NegationMatcher < ::RuboCop::Cop::Base; end
         
     | 
| 
       29 
     | 
    
         
            -
                    NegationMatcher = ::RuboCop::Cop::Capybara::NegationMatcher
         
     | 
| 
       30 
     | 
    
         
            -
                  end
         
     | 
| 
       31 
     | 
    
         
            -
                end
         
     | 
| 
       32 
     | 
    
         
            -
              end
         
     | 
| 
       33 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,29 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module RuboCop
         
     | 
| 
       4 
     | 
    
         
            -
              module Cop
         
     | 
| 
       5 
     | 
    
         
            -
                module RSpec
         
     | 
| 
       6 
     | 
    
         
            -
                  module Capybara
         
     | 
| 
       7 
     | 
    
         
            -
                    # @!parse
         
     | 
| 
       8 
     | 
    
         
            -
                    #   # Checks for there is a more specific actions offered by Capybara.
         
     | 
| 
       9 
     | 
    
         
            -
                    #   #
         
     | 
| 
       10 
     | 
    
         
            -
                    #   # @example
         
     | 
| 
       11 
     | 
    
         
            -
                    #   #
         
     | 
| 
       12 
     | 
    
         
            -
                    #   #   # bad
         
     | 
| 
       13 
     | 
    
         
            -
                    #   #   find('a').click
         
     | 
| 
       14 
     | 
    
         
            -
                    #   #   find('button.cls').click
         
     | 
| 
       15 
     | 
    
         
            -
                    #   #   find('a', exact_text: 'foo').click
         
     | 
| 
       16 
     | 
    
         
            -
                    #   #   find('div button').click
         
     | 
| 
       17 
     | 
    
         
            -
                    #   #
         
     | 
| 
       18 
     | 
    
         
            -
                    #   #   # good
         
     | 
| 
       19 
     | 
    
         
            -
                    #   #   click_link
         
     | 
| 
       20 
     | 
    
         
            -
                    #   #   click_button(class: 'cls')
         
     | 
| 
       21 
     | 
    
         
            -
                    #   #   click_link(exact_text: 'foo')
         
     | 
| 
       22 
     | 
    
         
            -
                    #   #   find('div').click_button
         
     | 
| 
       23 
     | 
    
         
            -
                    #   #
         
     | 
| 
       24 
     | 
    
         
            -
                    #   class SpecificActions < ::RuboCop::Cop::Base; end
         
     | 
| 
       25 
     | 
    
         
            -
                    SpecificActions = ::RuboCop::Cop::Capybara::SpecificActions
         
     | 
| 
       26 
     | 
    
         
            -
                  end
         
     | 
| 
       27 
     | 
    
         
            -
                end
         
     | 
| 
       28 
     | 
    
         
            -
              end
         
     | 
| 
       29 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,24 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module RuboCop
         
     | 
| 
       4 
     | 
    
         
            -
              module Cop
         
     | 
| 
       5 
     | 
    
         
            -
                module RSpec
         
     | 
| 
       6 
     | 
    
         
            -
                  module Capybara
         
     | 
| 
       7 
     | 
    
         
            -
                    # @!parse
         
     | 
| 
       8 
     | 
    
         
            -
                    #   # Checks if there is a more specific finder offered by Capybara.
         
     | 
| 
       9 
     | 
    
         
            -
                    #   #
         
     | 
| 
       10 
     | 
    
         
            -
                    #   # @example
         
     | 
| 
       11 
     | 
    
         
            -
                    #   #   # bad
         
     | 
| 
       12 
     | 
    
         
            -
                    #   #   find('#some-id')
         
     | 
| 
       13 
     | 
    
         
            -
                    #   #   find('[visible][id=some-id]')
         
     | 
| 
       14 
     | 
    
         
            -
                    #   #
         
     | 
| 
       15 
     | 
    
         
            -
                    #   #   # good
         
     | 
| 
       16 
     | 
    
         
            -
                    #   #   find_by_id('some-id')
         
     | 
| 
       17 
     | 
    
         
            -
                    #   #   find_by_id('some-id', visible: true)
         
     | 
| 
       18 
     | 
    
         
            -
                    #   #
         
     | 
| 
       19 
     | 
    
         
            -
                    #   class SpecificFinders < ::RuboCop::Cop::Base; end
         
     | 
| 
       20 
     | 
    
         
            -
                    SpecificFinders = ::RuboCop::Cop::Capybara::SpecificFinders
         
     | 
| 
       21 
     | 
    
         
            -
                  end
         
     | 
| 
       22 
     | 
    
         
            -
                end
         
     | 
| 
       23 
     | 
    
         
            -
              end
         
     | 
| 
       24 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,35 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module RuboCop
         
     | 
| 
       4 
     | 
    
         
            -
              module Cop
         
     | 
| 
       5 
     | 
    
         
            -
                module RSpec
         
     | 
| 
       6 
     | 
    
         
            -
                  module Capybara
         
     | 
| 
       7 
     | 
    
         
            -
                    # @!parse
         
     | 
| 
       8 
     | 
    
         
            -
                    #   # Checks for there is a more specific matcher offered by Capybara.
         
     | 
| 
       9 
     | 
    
         
            -
                    #   #
         
     | 
| 
       10 
     | 
    
         
            -
                    #   # @example
         
     | 
| 
       11 
     | 
    
         
            -
                    #   #
         
     | 
| 
       12 
     | 
    
         
            -
                    #   #   # bad
         
     | 
| 
       13 
     | 
    
         
            -
                    #   #   expect(page).to have_selector('button')
         
     | 
| 
       14 
     | 
    
         
            -
                    #   #   expect(page).to have_no_selector('button.cls')
         
     | 
| 
       15 
     | 
    
         
            -
                    #   #   expect(page).to have_css('button')
         
     | 
| 
       16 
     | 
    
         
            -
                    #   #   expect(page).to have_no_css('a.cls', href: 'http://example.com')
         
     | 
| 
       17 
     | 
    
         
            -
                    #   #   expect(page).to have_css('table.cls')
         
     | 
| 
       18 
     | 
    
         
            -
                    #   #   expect(page).to have_css('select')
         
     | 
| 
       19 
     | 
    
         
            -
                    #   #   expect(page).to have_css('input', exact_text: 'foo')
         
     | 
| 
       20 
     | 
    
         
            -
                    #   #
         
     | 
| 
       21 
     | 
    
         
            -
                    #   #   # good
         
     | 
| 
       22 
     | 
    
         
            -
                    #   #   expect(page).to have_button
         
     | 
| 
       23 
     | 
    
         
            -
                    #   #   expect(page).to have_no_button(class: 'cls')
         
     | 
| 
       24 
     | 
    
         
            -
                    #   #   expect(page).to have_button
         
     | 
| 
       25 
     | 
    
         
            -
                    #   #   expect(page).to have_no_link('foo', class: 'cls', href: 'http://example.com')
         
     | 
| 
       26 
     | 
    
         
            -
                    #   #   expect(page).to have_table(class: 'cls')
         
     | 
| 
       27 
     | 
    
         
            -
                    #   #   expect(page).to have_select
         
     | 
| 
       28 
     | 
    
         
            -
                    #   #   expect(page).to have_field('foo')
         
     | 
| 
       29 
     | 
    
         
            -
                    #   #
         
     | 
| 
       30 
     | 
    
         
            -
                    #   class SpecificMatcher < ::RuboCop::Cop::Base; end
         
     | 
| 
       31 
     | 
    
         
            -
                    SpecificMatcher = ::RuboCop::Cop::Capybara::SpecificMatcher
         
     | 
| 
       32 
     | 
    
         
            -
                  end
         
     | 
| 
       33 
     | 
    
         
            -
                end
         
     | 
| 
       34 
     | 
    
         
            -
              end
         
     | 
| 
       35 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,36 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module RuboCop
         
     | 
| 
       4 
     | 
    
         
            -
              module Cop
         
     | 
| 
       5 
     | 
    
         
            -
                module RSpec
         
     | 
| 
       6 
     | 
    
         
            -
                  module Capybara
         
     | 
| 
       7 
     | 
    
         
            -
                    # @!parse
         
     | 
| 
       8 
     | 
    
         
            -
                    #   # Checks for boolean visibility in Capybara finders.
         
     | 
| 
       9 
     | 
    
         
            -
                    #   #
         
     | 
| 
       10 
     | 
    
         
            -
                    #   # Capybara lets you find elements that match a certain visibility
         
     | 
| 
       11 
     | 
    
         
            -
                    #   # using the `:visible` option. `:visible` accepts both boolean and
         
     | 
| 
       12 
     | 
    
         
            -
                    #   # symbols as values, however using booleans can have unwanted
         
     | 
| 
       13 
     | 
    
         
            -
                    #   # effects. `visible: false` does not find just invisible elements,
         
     | 
| 
       14 
     | 
    
         
            -
                    #   # but both visible and invisible elements. For expressiveness and
         
     | 
| 
       15 
     | 
    
         
            -
                    #   # clarity, use one of the # symbol values, `:all`, `:hidden` or
         
     | 
| 
       16 
     | 
    
         
            -
                    #   # `:visible`.
         
     | 
| 
       17 
     | 
    
         
            -
                    #   # Read more in
         
     | 
| 
       18 
     | 
    
         
            -
                    #   # https://www.rubydoc.info/gems/capybara/Capybara%2FNode%2FFinders:all[the documentation].
         
     | 
| 
       19 
     | 
    
         
            -
                    #   #
         
     | 
| 
       20 
     | 
    
         
            -
                    #   # @example
         
     | 
| 
       21 
     | 
    
         
            -
                    #   #   # bad
         
     | 
| 
       22 
     | 
    
         
            -
                    #   #   expect(page).to have_selector('.foo', visible: false)
         
     | 
| 
       23 
     | 
    
         
            -
                    #   #   expect(page).to have_css('.foo', visible: true)
         
     | 
| 
       24 
     | 
    
         
            -
                    #   #   expect(page).to have_link('my link', visible: false)
         
     | 
| 
       25 
     | 
    
         
            -
                    #   #
         
     | 
| 
       26 
     | 
    
         
            -
                    #   #   # good
         
     | 
| 
       27 
     | 
    
         
            -
                    #   #   expect(page).to have_selector('.foo', visible: :visible)
         
     | 
| 
       28 
     | 
    
         
            -
                    #   #   expect(page).to have_css('.foo', visible: :all)
         
     | 
| 
       29 
     | 
    
         
            -
                    #   #   expect(page).to have_link('my link', visible: :hidden)
         
     | 
| 
       30 
     | 
    
         
            -
                    #   #
         
     | 
| 
       31 
     | 
    
         
            -
                    #   class VisibilityMatcher < ::RuboCop::Cop::Base; end
         
     | 
| 
       32 
     | 
    
         
            -
                    VisibilityMatcher = ::RuboCop::Cop::Capybara::VisibilityMatcher
         
     | 
| 
       33 
     | 
    
         
            -
                  end
         
     | 
| 
       34 
     | 
    
         
            -
                end
         
     | 
| 
       35 
     | 
    
         
            -
              end
         
     | 
| 
       36 
     | 
    
         
            -
            end
         
     |