class RuboCop::Cop::RSpec::FactoryBot::CreateList
3.times { create :user }
# good
create_list :user, 3
# bad
@example ‘EnforcedStyle: n_times`
3.times { |n| create :user, created_at: n.months.ago }
# good
create_list :user, 3
# good
3.times { create :user }
# bad
@example `EnforcedStyle: create_list`
This cop can be configured using the `EnforcedStyle` option
Checks for create_list usage.
def autocorrect(node)
def autocorrect(node) if style == :create_list CreateListCorrector.new(node) else TimesCorrector.new(node) end end
def contains_only_factory?(node)
def contains_only_factory?(node) if node.block_type? factory_call(node.send_node) else factory_call(node) end end
def on_block(node)
def on_block(node) return unless style == :create_list return unless n_times_block_without_arg?(node) return unless contains_only_factory?(node.body) add_offense(node.send_node, message: MSG_CREATE_LIST) end
def on_send(node)
def on_send(node) return unless style == :n_times factory_list_call(node) do |_receiver, _factory, count, _| add_offense( node, location: :selector, message: format(MSG_N_TIMES, number: count) ) end end