Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use FactoryGirl factories from an engine

We have two web apps that share the same database and models. To keep it DRY we created an engine that contains all those models. This engine is included in the respective apps via the Gemfile. We do have tests with RSpec and FactoryGirl inside the engine.

Now we are trying to write integration tests and we would like to use the factories from the engine without copying or symlinking. Is there a way to achieve this programmatically?

like image 566
Wukerplank Avatar asked Nov 28 '13 08:11

Wukerplank


1 Answers

Ok so this works: https://github.com/thoughtbot/factory_girl_rails/pull/42

As it says on that pull request, include that code snippet in your core engine.

In the core engine you also need to modify your ".gemspec" file to add in the "spec/factories" files:

s.files = Dir["{app,config,db,lib}/**/*", "spec/factories/**/*", "LICENSE", "Rakefile", "README.md"]

Then those factories will be available in the application that includes your engine.

like image 68
nashape Avatar answered Oct 26 '22 11:10

nashape