mirror of
https://github.com/thoughtbot/factory_bot_rails.git
synced 2022-11-09 11:49:18 -05:00
Tweaked factory_girls_initialization process to allow other engines to advertise its factories for use in a recipient project
When a (mountable) engine defines models and factories to test the models, sometimes it is convenient to use this factories from a project which depends on the engine. But current factory_girl_rail initialization processes do not allow to do so without hacks. (after_initializer resets all FactoryGirl.definition_file_paths to defaults with = [paths]) When this change introduces the engine can advertise some factories in an its own railtie, i.e.: module ModelCore class Engine < Rails::Engine initializer "model_core.factories", :after => "factory_girl.set_factory_paths" do FactoryGirl.definition_file_paths << File.expand_path('../../../spec/factories', __FILE__) if defined?(FactoryGirl) end end end
This commit is contained in:
parent
1e47af0319
commit
191ce5e47e
1 changed files with 4 additions and 1 deletions
|
@ -14,12 +14,15 @@ module FactoryGirl
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
config.after_initialize do
|
initializer "factory_girl.set_factory_paths" do
|
||||||
FactoryGirl.definition_file_paths = [
|
FactoryGirl.definition_file_paths = [
|
||||||
File.join(Rails.root, 'factories'),
|
File.join(Rails.root, 'factories'),
|
||||||
File.join(Rails.root, 'test', 'factories'),
|
File.join(Rails.root, 'test', 'factories'),
|
||||||
File.join(Rails.root, 'spec', 'factories')
|
File.join(Rails.root, 'spec', 'factories')
|
||||||
]
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
config.after_initialize do
|
||||||
FactoryGirl.find_definitions
|
FactoryGirl.find_definitions
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue