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 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) do |corrector| CreateListCorrector.new(node.send_node).call(corrector) end end
def on_send(node)
def on_send(node) return unless style == :n_times factory_list_call(node) do |count| message = format(MSG_N_TIMES, number: count) add_offense(node.loc.selector, message: message) do |corrector| TimesCorrector.new(node).call(corrector) end end end