Class: RuboCop::Cop::Momocop::FactoryBotClassExistence

Inherits:
Base
  • Object
show all
Extended by:
AutoCorrector
Includes:
Momocop::Helpers::FactoryBotHelper, Momocop::Helpers::RailsHelper
Defined in:
lib/rubocop/cop/momocop/factory_bot_class_existence.rb

Overview

Ensures that FactoryBot factories has a valid class option.

Examples:

# bad (if 'app/models/user.rb' does not exist)
factory :user, class: 'User' do
end

# good (if 'app/models/admin.rb' exists)
factory :user, class: 'Admin' do
end

Constant Summary collapse

MSG =
'Specified class does not exist. Please make sure that the class exists.'
RESTRICT_ON_SEND =
%i[factory].freeze

Constants included from Momocop::Helpers::RailsHelper

Momocop::Helpers::RailsHelper::RESTRICTED_COLUMNS

Constants included from Momocop::Helpers::FactoryBotHelper

Momocop::Helpers::FactoryBotHelper::RUBOCOP_HELPER_METHODS

Instance Method Summary collapse

Instance Method Details

#on_send(node) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/rubocop/cop/momocop/factory_bot_class_existence.rb', line 33

def on_send(node)
  return unless inside_factory_bot_define?(node)

  class_node = factory_class_option_symbol?(node) || factory_class_option_string?(node)

  return unless class_node

  class_name = class_node.value.to_s

  return if class_exists?(class_name)

  add_offense(class_node)
end