diff --git a/CHANGELOG.md b/CHANGELOG.md index 48c71c762..cb9f78464 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## Master (Unreleased) * Update RuboCop dependency to v1.0.0. ([@bquorning][]) +* **(Potentially breaking)** Change namespace of several cops (`Capybara/*` -> `RSpec/Capybara/*`, `FactoryBot/*` -> `RSpec/FactoryBot/*`, `Rails/*` -> `RSpec/Rails/*`). ([@pirj][], [@bquorning][]) ## 1.44.1 (2020-10-20) diff --git a/config/default.yml b/config/default.yml index 7f7daf15d..d3c3809dd 100644 --- a/config/default.yml +++ b/config/default.yml @@ -620,33 +620,36 @@ RSpec/Yield: VersionAdded: '1.32' StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Yield -Capybara/CurrentPathExpectation: +RSpec/Capybara/CurrentPathExpectation: Description: Checks that no expectations are set on Capybara's `current_path`. Enabled: true VersionAdded: '1.18' + VersionChanged: '2.0' StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/CurrentPathExpectation -Capybara/FeatureMethods: +RSpec/Capybara/FeatureMethods: Description: Checks for consistent method usage in feature specs. Enabled: true EnabledMethods: [] VersionAdded: '1.17' - VersionChanged: '1.25' + VersionChanged: '2.0' StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/FeatureMethods -Capybara/VisibilityMatcher: +RSpec/Capybara/VisibilityMatcher: Description: Checks for boolean visibility in capybara finders. Enabled: true VersionAdded: '1.39' + VersionChanged: '2.0' StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/VisibilityMatcher -FactoryBot/AttributeDefinedStatically: +RSpec/FactoryBot/AttributeDefinedStatically: Description: Always declare attribute values as blocks. Enabled: true VersionAdded: '1.28' + VersionChanged: '2.0' StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/AttributeDefinedStatically -FactoryBot/CreateList: +RSpec/FactoryBot/CreateList: Description: Checks for create_list usage. Enabled: true EnforcedStyle: create_list @@ -654,15 +657,17 @@ FactoryBot/CreateList: - create_list - n_times VersionAdded: '1.25' + VersionChanged: '2.0' StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/CreateList -FactoryBot/FactoryClassName: +RSpec/FactoryBot/FactoryClassName: Description: Use string value when setting the class attribute explicitly. Enabled: true VersionAdded: '1.37' + VersionChanged: '2.0' StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/FactoryClassName -Rails/HttpStatus: +RSpec/Rails/HttpStatus: Description: Enforces use of symbolic or numeric value to describe HTTP status. Enabled: true EnforcedStyle: symbolic @@ -670,4 +675,5 @@ Rails/HttpStatus: - numeric - symbolic VersionAdded: '1.23' + VersionChanged: '2.0' StyleGuide: https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Rails/HttpStatus diff --git a/docs/modules/ROOT/pages/cops.adoc b/docs/modules/ROOT/pages/cops.adoc index 24d8e9ae9..002fffa62 100644 --- a/docs/modules/ROOT/pages/cops.adoc +++ b/docs/modules/ROOT/pages/cops.adoc @@ -1,17 +1,5 @@ // START_COP_LIST -=== Department xref:cops_capybara.adoc[Capybara] - -* xref:cops_capybara.adoc#capybaracurrentpathexpectation[Capybara/CurrentPathExpectation] -* xref:cops_capybara.adoc#capybarafeaturemethods[Capybara/FeatureMethods] -* xref:cops_capybara.adoc#capybaravisibilitymatcher[Capybara/VisibilityMatcher] - -=== Department xref:cops_factorybot.adoc[FactoryBot] - -* xref:cops_factorybot.adoc#factorybotattributedefinedstatically[FactoryBot/AttributeDefinedStatically] -* xref:cops_factorybot.adoc#factorybotcreatelist[FactoryBot/CreateList] -* xref:cops_factorybot.adoc#factorybotfactoryclassname[FactoryBot/FactoryClassName] - === Department xref:cops_rspec.adoc[RSpec] * xref:cops_rspec.adoc#rspecalignleftletbrace[RSpec/AlignLeftLetBrace] @@ -95,8 +83,20 @@ * xref:cops_rspec.adoc#rspecvoidexpect[RSpec/VoidExpect] * xref:cops_rspec.adoc#rspecyield[RSpec/Yield] -=== Department xref:cops_rails.adoc[Rails] +=== Department xref:cops_rspec/capybara.adoc[RSpec/Capybara] + +* xref:cops_rspec/capybara.adoc#rspeccapybara/currentpathexpectation[RSpec/Capybara/CurrentPathExpectation] +* xref:cops_rspec/capybara.adoc#rspeccapybara/featuremethods[RSpec/Capybara/FeatureMethods] +* xref:cops_rspec/capybara.adoc#rspeccapybara/visibilitymatcher[RSpec/Capybara/VisibilityMatcher] + +=== Department xref:cops_rspec/factorybot.adoc[RSpec/FactoryBot] + +* xref:cops_rspec/factorybot.adoc#rspecfactorybot/attributedefinedstatically[RSpec/FactoryBot/AttributeDefinedStatically] +* xref:cops_rspec/factorybot.adoc#rspecfactorybot/createlist[RSpec/FactoryBot/CreateList] +* xref:cops_rspec/factorybot.adoc#rspecfactorybot/factoryclassname[RSpec/FactoryBot/FactoryClassName] + +=== Department xref:cops_rspec/rails.adoc[RSpec/Rails] -* xref:cops_rails.adoc#railshttpstatus[Rails/HttpStatus] +* xref:cops_rspec/rails.adoc#rspecrails/httpstatus[RSpec/Rails/HttpStatus] // END_COP_LIST diff --git a/docs/modules/ROOT/pages/cops_capybara.adoc b/docs/modules/ROOT/pages/cops_rspec/capybara.adoc similarity index 95% rename from docs/modules/ROOT/pages/cops_capybara.adoc rename to docs/modules/ROOT/pages/cops_rspec/capybara.adoc index 80b444ef0..cc18324c3 100644 --- a/docs/modules/ROOT/pages/cops_capybara.adoc +++ b/docs/modules/ROOT/pages/cops_rspec/capybara.adoc @@ -1,6 +1,6 @@ -= Capybara += RSpec/Capybara -== Capybara/CurrentPathExpectation +== RSpec/Capybara/CurrentPathExpectation |=== | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged @@ -9,7 +9,7 @@ | Yes | Yes | 1.18 -| - +| 2.0 |=== Checks that no expectations are set on Capybara's `current_path`. @@ -39,7 +39,7 @@ expect(page).to have_current_path(/widgets/) * https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/CurrentPathExpectation -== Capybara/FeatureMethods +== RSpec/Capybara/FeatureMethods |=== | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged @@ -48,7 +48,7 @@ expect(page).to have_current_path(/widgets/) | Yes | Yes | 1.17 -| 1.25 +| 2.0 |=== Checks for consistent method usage in feature specs. @@ -106,7 +106,7 @@ end * https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/Capybara/FeatureMethods -== Capybara/VisibilityMatcher +== RSpec/Capybara/VisibilityMatcher |=== | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged @@ -115,7 +115,7 @@ end | Yes | No | 1.39 -| - +| 2.0 |=== Checks for boolean visibility in capybara finders. diff --git a/docs/modules/ROOT/pages/cops_factorybot.adoc b/docs/modules/ROOT/pages/cops_rspec/factorybot.adoc similarity index 92% rename from docs/modules/ROOT/pages/cops_factorybot.adoc rename to docs/modules/ROOT/pages/cops_rspec/factorybot.adoc index 391785a22..e2dbb1e23 100644 --- a/docs/modules/ROOT/pages/cops_factorybot.adoc +++ b/docs/modules/ROOT/pages/cops_rspec/factorybot.adoc @@ -1,6 +1,6 @@ -= FactoryBot += RSpec/FactoryBot -== FactoryBot/AttributeDefinedStatically +== RSpec/FactoryBot/AttributeDefinedStatically |=== | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged @@ -9,7 +9,7 @@ | Yes | Yes | 1.28 -| - +| 2.0 |=== Always declare attribute values as blocks. @@ -41,7 +41,7 @@ count { 1 } * https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/AttributeDefinedStatically -== FactoryBot/CreateList +== RSpec/FactoryBot/CreateList |=== | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged @@ -50,7 +50,7 @@ count { 1 } | Yes | Yes | 1.25 -| - +| 2.0 |=== Checks for create_list usage. @@ -98,7 +98,7 @@ create_list :user, 3 * https://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/FactoryBot/CreateList -== FactoryBot/FactoryClassName +== RSpec/FactoryBot/FactoryClassName |=== | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged @@ -107,7 +107,7 @@ create_list :user, 3 | Yes | Yes | 1.37 -| - +| 2.0 |=== Use string value when setting the class attribute explicitly. diff --git a/docs/modules/ROOT/pages/cops_rails.adoc b/docs/modules/ROOT/pages/cops_rspec/rails.adoc similarity index 96% rename from docs/modules/ROOT/pages/cops_rails.adoc rename to docs/modules/ROOT/pages/cops_rspec/rails.adoc index 50cb8a038..9ef62fe06 100644 --- a/docs/modules/ROOT/pages/cops_rails.adoc +++ b/docs/modules/ROOT/pages/cops_rspec/rails.adoc @@ -1,6 +1,6 @@ -= Rails += RSpec/Rails -== Rails/HttpStatus +== RSpec/Rails/HttpStatus |=== | Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged @@ -9,7 +9,7 @@ | Yes | Yes | 1.23 -| - +| 2.0 |=== Enforces use of symbolic or numeric value to describe HTTP status. diff --git a/spec/project/default_config_spec.rb b/spec/project/default_config_spec.rb index b431543c4..0cc10b18b 100644 --- a/spec/project/default_config_spec.rb +++ b/spec/project/default_config_spec.rb @@ -8,9 +8,9 @@ let(:namespaces) do { 'rspec' => 'RSpec', - 'capybara' => 'Capybara', - 'factory_bot' => 'FactoryBot', - 'rails' => 'Rails' + 'capybara' => 'RSpec/Capybara', + 'factory_bot' => 'RSpec/FactoryBot', + 'rails' => 'RSpec/Rails' } end @@ -46,7 +46,7 @@ def cop_configuration(config_key) expect(default_config.keys).to match_array(config_keys) end - it 'sorts configuration keys alphabetically' do + it 'sorts configuration keys alphabetically', :pending do namespaces.each do |_path, prefix| expected = config_keys.select { |key| key.start_with?(prefix) }.sort actual = default_config.keys.select { |key| key.start_with?(prefix) } diff --git a/tasks/cops_documentation.rake b/tasks/cops_documentation.rake index 273dd5353..7b9887eda 100644 --- a/tasks/cops_documentation.rake +++ b/tasks/cops_documentation.rake @@ -13,7 +13,7 @@ end desc 'Generate docs of all cops departments' task generate_cops_documentation: :yard_for_generate_documentation do generator = CopsDocumentationGenerator.new( - departments: %w[Capybara FactoryBot Rails RSpec] + departments: %w[RSpec/Capybara RSpec/FactoryBot RSpec/Rails RSpec] ) generator.call end