Module: TestProf::FactoryDefault::FactoryBotPatch::SyntaxExt

Defined in:
lib/test_prof/factory_default/factory_bot_patch.rb

Instance Method Summary collapse

Instance Method Details

#create_default(name, *args, &block) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/test_prof/factory_default/factory_bot_patch.rb', line 26

def create_default(name, *args, &block)
  options = args.extract_options!
  default_options = {}
  default_options[:preserve_traits] = options.delete(:preserve_traits) if options.key?(:preserve_traits)
  default_options[:preserve_attributes] = options.delete(:preserve_attributes) if options.key?(:preserve_attributes)

  obj = TestProf::FactoryBot.create(name, *args, options, &block)

  # Factory with traits
  name = [name, *args] if args.any?

  set_factory_default(name, obj, **default_options)
end

#get_factory_default(name, *traits, **overrides) ⇒ Object



50
51
52
# File 'lib/test_prof/factory_default/factory_bot_patch.rb', line 50

def get_factory_default(name, *traits, **overrides)
  FactoryDefault.get(name, traits, overrides, skip_stats: true)
end

#set_factory_default(*name, obj, preserve_traits: FactoryDefault.config.preserve_traits, preserve_attributes: FactoryDefault.config.preserve_attributes, **other) ⇒ Object



40
41
42
43
44
45
46
47
48
# File 'lib/test_prof/factory_default/factory_bot_patch.rb', line 40

def set_factory_default(*name, obj, preserve_traits: FactoryDefault.config.preserve_traits, preserve_attributes: FactoryDefault.config.preserve_attributes, **other)
  name = name.first if name.size == 1
  FactoryDefault.register(
    name, obj,
    preserve_traits: preserve_traits,
    preserve_attributes: preserve_attributes,
    **other
  )
end

#skip_factory_default(&block) ⇒ Object



54
55
56
# File 'lib/test_prof/factory_default/factory_bot_patch.rb', line 54

def skip_factory_default(&block)
  FactoryDefault.disable!(&block)
end