Rails 6.0.0 generates a Gemfile with sass-rails at `~> 5`. Our
Appraisals need to match, or else we end up installing version 6 on CI
and the tests fail with the wrong version.
This partially addresses #293. Since rubocop generated quite a few todos, the commits addressing them are split up into a few different PRs that cover different files.
Ruby 2.1 and 2.2 are no longer maintained, and Rails 3.2 and 4.2 are no
longer maintained, so I don't want to go out of our way to continue
supporting them in FactoryBot 5+. Hooray for faster test runs!
- 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+
* support latest Ruby 2.1
* support latest Ruby 2.2
* support latest Rails 4.2
* drop testing of Ruby 2.0
* drop testing of Rails 4.0
* fix JRuby support
* 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".
Rails 3.1.x has code which checks which version of ruby is being run,
and based on the result, selects a version of turn.
For 1.9.3+, it selects "~> 0.8.3"; for everything else, it selects "0.8.2".
If we remove turn from the Appraisals, but have travis install both versions
that rails might potentially need, the in-generated-app Gemfile building should
work correctly.
Some features test the factory_girl_rails integration with minitest-rails.
Other features just test normal integration with rails generators.
When minitest-rails is *always* in our gemfiles, minitest's generator
gets run during the features which generate new rails apps.
Because minitest doesnt support namespaced models, this fails. But, also,
we don't actually want to run minitest during anything other than the specific
areas where we are testing that integration.
Thus, we need the gem present on the system, but not in the gemfiles during
any times other than when it's pulled in specifically by those features.
This allows us to test factory_girl_rails against each minor release of
Rails 3. To run the full suite, run
$ bundle exec rake
To view all the rake tasks Appraisal provides, run
$ bundle exec rake -T appraisal