1
0
Fork 0
mirror of https://github.com/thoughtbot/factory_bot_rails.git synced 2022-11-09 11:49:18 -05:00
Commit graph

23 commits

Author SHA1 Message Date
Daniel Colson
c1d0a7887b Add back loading definitions in after_initialize
We removed the call to `FactoryBot.load_definitions` in the
`after_initialize` hook in dcfc9f6 because the other changes in that
commit were causing us to sometimes call `FactoryBot.load_definitions`
after `FactoryBot.reload`.

We could have changed `FactoryBot.load_definitions` to
`FactoryBot.reload`, which is what this PR does, but it didn't seem
necessary at the time since all the tests were still passing.

We fixed a problem in 9b83f48 that was causing us to watch the root
directory of the project. This fix caused a test failure, but I ended up
changing the test in 2b7bca0 because it seemed like an unlikely
scenario.

This PR adds back the original test case. Although I do think it
unlikely, I would rather not risk making a breaking change in the next
patch release.
2019-04-14 10:50:43 -04:00
Daniel Colson
2b7bca0094 Test more realistic scenario for 3rd-party engine
With factory_bot 5 we changed the official way to include factory_bot
definitions in an engine from using an initializer to using the
`config.factory_bot.definition_file_paths` configuration.
We left these tests with the initializer around because we wanted to
avoid breaking existing engines.

With #331 if none of the paths in
`config.factory_bot.definition_file_paths` exist we won't load any
factory definitions at all.

Before this PR this test was failing with #311 because none of the paths
in `config.factory_bot.definition_file_paths` existed, and so the
definition file in the engine never got loaded.

I am changing this test because there scenario is unlike. If somebody is
using factory_bot definitions from an engine, they will most likely have
their own factory definitions as well, defined in one of the
`config.factory_bot.definition_file_paths`.

If it turns out somebody is using factory_bot definitions from an engine
without also using definitions in their own project, there are a couple
of workarounds:

- Add an empty factory file (e.g. test/factories.rb)
- Manually call `FactoryBot.reload`
- Update the engine to use the official `config.factory_bot.definition_file_paths` instead of an initializer
2019-04-09 10:39:35 -04:00
yuuji.yaginuma
e6509920a6 Use compatible sqlite3 version in test application
Currently, the `sqlite3` in `Gemfile` generated by `rails new` is not
compatible with Rails.

To solve this issue, modified it to use compatible `sqlite3` using
template.
Ref: https://github.com/rails/rails/issues/35161
2019-02-06 09:18:41 -05:00
Daniel Colson
4e730548cb Introduce definition file path configuration
Fixes #165 and closes #166

Currently the only way to customize the factory definition file
paths is to do it in an initializer right after the
"factory_bot.set_factory_paths" initializer. With this commit,
we can customize factory definition file paths by
setting `config.factory_bot.definition_file_paths`
in config/application.rb or the appropriate environment file.

Once we update the documentation to include this new configuration, we
should be able to close #149 and #180 as well, since using this
configuration can replace the initializer solution for sharing factories
in an engine (the initializer solution will still work, but with the new
configuration you don't need to know anything about the
fbr railtie).

This will also allow us to close #192, since we can use this
configuration with an empty array to disable automatic loading
of factories in development.
2018-09-14 20:09:10 +00:00
Atul Bhosale
01a23ffbe1 Update ModelGenerator to generate dynamic attributes 2018-09-03 15:37:26 +00:00
Daniel Colson
c9fc696325
Test against Rails 5.1 and 5.2 (#278)
- Add Rails 5.1 and 5.2 to Appraisal
- Avoid running combinations we know are going to fail by moving to
"exclude" instead of "allow_failures"
- Use updated migration class for Rails 5.1+
2018-06-22 13:33:59 -04:00
Avielle Wolfe
c5d11518d7 Rename all girl -> bot
* Rename files and code
* Change factory_girl dependency to factory_bot

This change will bring _rails name in line with factory_bot
c716ce01b4
2017-10-20 18:21:52 -04:00
Rodolfo Spalenza
c761d47c93 Fix when use fixture_replacement with suffix option.
Fix #113
2015-03-14 20:53:35 -04:00
Joshua Clayton
531e68193f Get suite green on Ruby 2.2.0 2015-03-13 22:39:10 -04:00
Dan Croak
00cb2eabb1 Test against Rails 3.2, 4.0, 4.1
* Remove gemfiles from version control to match same testing style as
  Clearance and Suspenders.
* MiniTest does not need to be manually included as it is automatically
  included by Rails by default.
* Add spring for Rails 4.1.
* Disable Spring to get specs to pass on Rails 4.1.
* Add therubyrhino for JRuby.
* Remove old references to Rails 3.
* Fix JRuby test where output is "1 runs", not "1 tests".
* Remove Rails 3.0 reference to "turn".
2014-05-27 00:41:24 -07:00
Matt Jankowski
a179d7f366 Newer versions of activerecord-jdbcsqlite3-adapter work without a specially named db driver in database.yml 2013-01-07 15:49:11 -05:00
Matt Jankowski
51cc9ed402 Instead of modifying the environment, run bundle install in a new process
JRuby does not support setting/unsetting environment variables.

Thus, we will launch an entirely new process without the parents env when
we run `bundle install` inside the generated rails apps, forcing them to
use their own Gemfile, instead of the BUNDLE_GEMFILE setting from the main
gem codebase.
2012-12-21 11:08:37 -05:00
Matt Jankowski
cc921652d0 Rails 3.1 adds the Turn gem to the gemfile, which impacts the format that results are reported in, and we must verify that format 2012-12-19 15:04:29 -05:00
Matt Jankowski
95eaa4af9a Improve the way we switch between project Gemfile and appraisal gemfiles
Previously, the railties required by the project gemspec was in conflict with
the rails versions being pulled in by Appraisal.

There were situations where a newer rails app was generated by `rails new...`
even though the Appraisal gemfiles/ value should have been setting it correctly.

We need to be able to use the versions of things specified in the appraisal gemfiles/
specify the version of rails for the initial generation of the applications,
but subsequently allow those applications to point to the `Gemfile` within
the newly generated rails apps, rather than wherever BUNDLE_GEMFILE was previously
set by Appraisal.
2012-12-19 14:46:21 -05:00
Matt Jankowski
742f38dc9e jruby needs a separate sqlite3 adapter 2012-12-13 16:41:16 -05:00
Artem Ignatyev
06861a9fdb cucumber scenario to test Tweaked factory_girls_initialization process 2011-12-02 11:23:51 -06:00
Joshua Clayton
a5aee1abed Update gem dependency versions 2011-06-29 12:30:28 -04:00
Joshua Clayton
eb93acd292 Update feature to use factory_girl 2.0 syntax 2011-06-29 11:35:22 -04:00
Mike Burns
7cdd05d67f Lock down the Rails version so we're not influenced by the very newest version of Rails when we're trying to fix an unrelated bug. 2011-06-10 09:55:55 -04:00
Joe Ferris
3c691f2717 Use bundler for dependencies (based on patches from Mike Gehard) 2010-11-11 11:44:49 -05:00
Joe Ferris
98b00ce10a Use aruba (based on patches from Mike Gehard) 2010-11-11 11:44:41 -05:00
Joe Ferris
c340abd5ec Depend on factory_girl 2 beta; use Rails 3 stable 2010-11-10 15:55:44 -05:00
Joe Ferris
dd737af03e Added Rails 3 integration 2010-06-09 11:42:48 -04:00