12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/rspec_database_helper.rb', line 12
def on_send(node)
_, method_name, *args = node.children
factory_attrs = args.map { |e| e.loc.expression.source }.join(', ')
factory_class = 'FactoryGirl' if defined?(FactoryGirl)
factory_class = 'FactoryBot' if defined?(FactoryBot)
case method_name
when /list!$/
replace(node.loc.expression, "let!(:#{method_name.to_s.sub(/_list!$/,'')}) { #{factory_class}.create_list(#{factory_attrs}) }")
when /list$/
replace(node.loc.expression, "let(:#{method_name.to_s.sub(/_list$/,'')}) { #{factory_class}.create_list(#{factory_attrs}) }")
when /!$/
replace(node.loc.expression, "let!(:#{method_name.to_s.sub(/!$/,'')}) { #{factory_class}.create(#{factory_attrs}) }")
else
replace(node.loc.expression, "let(:#{method_name}) { #{factory_class}.create(#{factory_attrs}) }")
end
end
|