Class: RspecRequestHelpers::Helpers::ClassMethods::DatabaseDSLTranslator

Inherits:
Parser::TreeRewriter
  • Object
show all
Defined in:
lib/rspec_request_helpers/helpers.rb

Instance Method Summary collapse

Instance Method Details

#on_send(node) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/rspec_request_helpers/helpers.rb', line 7

def on_send(node)
  _, method_name, *args = node.children

  factory_attrs = args.map { |e| e.loc.expression.source }.join(', ')

  case method_name
  when /list!$/
    replace(node.loc.expression, "let!(:#{method_name.to_s.sub(/list!$/,'')}) { FactoryBot.create_list(#{factory_attrs}) }")
  when /list$/
    replace(node.loc.expression, "let(:#{method_name.to_s.sub(/list$/,'')}) { FactoryBot.create_list(#{factory_attrs}) }")
  when /!$/
    replace(node.loc.expression, "let!(:#{method_name.to_s.sub(/!$/,'')}) { FactoryBot.create(#{factory_attrs}) }")
  else
    replace(node.loc.expression, "let(:#{method_name}) { FactoryBot.create(#{factory_attrs}) }")
  end
end