class RuboCop::Cop::RSpec::FactoryBot::FactoryClassName
Use string value when setting the class attribute explicitly.
This cop would promote faster tests by lazy-loading of application files. Also, this could help you suppress potential bugs in combination with external libraries by avoiding a preload of application files from the factory files.
@example
# bad factory :foo, class: Foo do end # good factory :foo, class: 'Foo' do end
Constants
- ALLOWED_CONSTANTS
- MSG
- RESTRICT_ON_SEND
Public Instance Methods
on_send(node)
click to toggle source
# File lib/rubocop/cop/rspec/factory_bot/factory_class_name.rb, line 35 def on_send(node) class_name(node) do |cn| next if allowed?(cn.const_name) msg = format(MSG, class_name: cn.const_name) add_offense(cn, message: msg) do |corrector| corrector.replace(cn, "'#{cn.source}'") end end end
Private Instance Methods
allowed?(const_name)
click to toggle source
# File lib/rubocop/cop/rspec/factory_bot/factory_class_name.rb, line 48 def allowed?(const_name) ALLOWED_CONSTANTS.include?(const_name) end