lib/rubocop/cop/rspec/factory_bot/syntax_methods.rb in rubocop-rspec-2.21.0 vs lib/rubocop/cop/rspec/factory_bot/syntax_methods.rb in rubocop-rspec-2.22.0

- old
+ new

@@ -2,88 +2,54 @@ module RuboCop module Cop module RSpec module FactoryBot - # Use shorthands from `FactoryBot::Syntax::Methods` in your specs. - # - # @safety - # The autocorrection is marked as unsafe because the cop - # cannot verify whether you already include - # `FactoryBot::Syntax::Methods` in your test suite. - # - # If you're using Rails, add the following configuration to - # `spec/support/factory_bot.rb` and be sure to require that file in - # `rails_helper.rb`: - # - # [source,ruby] - # ---- - # RSpec.configure do |config| - # config.include FactoryBot::Syntax::Methods - # end - # ---- - # - # If you're not using Rails: - # - # [source,ruby] - # ---- - # RSpec.configure do |config| - # config.include FactoryBot::Syntax::Methods - # - # config.before(:suite) do - # FactoryBot.find_definitions - # end - # end - # ---- - # - # @example - # # bad - # FactoryBot.create(:bar) - # FactoryBot.build(:bar) - # FactoryBot.attributes_for(:bar) - # - # # good - # create(:bar) - # build(:bar) - # attributes_for(:bar) - # - class SyntaxMethods < Base - extend AutoCorrector - include InsideExampleGroup - include RangeHelp - include RuboCop::RSpec::FactoryBot::Language - - MSG = 'Use `%<method>s` from `FactoryBot::Syntax::Methods`.' - - RESTRICT_ON_SEND = RuboCop::RSpec::FactoryBot::Language::METHODS - - def on_send(node) - return unless factory_bot?(node.receiver) - return unless inside_example_group?(node) - - message = format(MSG, method: node.method_name) - - add_offense(crime_scene(node), message: message) do |corrector| - corrector.remove(offense(node)) - end - end - - private - - def crime_scene(node) - range_between( - node.source_range.begin_pos, - node.loc.selector.end_pos - ) - end - - def offense(node) - range_between( - node.source_range.begin_pos, - node.loc.selector.begin_pos - ) - end - end + # @!parse + # # Use shorthands from `FactoryBot::Syntax::Methods` in your specs. + # # + # # @safety + # # The autocorrection is marked as unsafe because the cop + # # cannot verify whether you already include + # # `FactoryBot::Syntax::Methods` in your test suite. + # # + # # If you're using Rails, add the following configuration to + # # `spec/support/factory_bot.rb` and be sure to require that file + # # in `rails_helper.rb`: + # # + # # [source,ruby] + # # ---- + # # RSpec.configure do |config| + # # config.include FactoryBot::Syntax::Methods + # # end + # # ---- + # # + # # If you're not using Rails: + # # + # # [source,ruby] + # # ---- + # # RSpec.configure do |config| + # # config.include FactoryBot::Syntax::Methods + # # + # # config.before(:suite) do + # # FactoryBot.find_definitions + # # end + # # end + # # ---- + # # + # # @example + # # # bad + # # FactoryBot.create(:bar) + # # FactoryBot.build(:bar) + # # FactoryBot.attributes_for(:bar) + # # + # # # good + # # create(:bar) + # # build(:bar) + # # attributes_for(:bar) + # # + # class SyntaxMethods < ::RuboCop::Cop::Base; end + SyntaxMethods = ::RuboCop::Cop::FactoryBot::SyntaxMethods end end end end