spec/factory_bot/strategy/insert.rb
module FactoryBot
module Strategy
class Insert
def initialize
@strategy = FactoryBot.strategy_by_name(:attributes_for).new
end
delegate :association, to: :@strategy
def result(evaluation)
build_class = evaluation.instance_variable_get(:@attribute_assigner)
.instance_variable_get(:@build_class)
timestamps = { created_at: Time.current, updated_at: Time.current }.select do |attribute, _|
build_class.has_attribute?(attribute)
end
build_class.insert!(timestamps.merge(@strategy.result(evaluation)))
end
end
FactoryBot.register_strategy(:insert, Insert)
end
end