-
-
Notifications
You must be signed in to change notification settings - Fork 373
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* CI against Rails 7.1 * Ignore the directory that keeps factory files under the `lib` Some tests put factory files under the `lib`. But since Rails 7.1, Rails loads `lib` directory by default in a new application. https://guides.rubyonrails.org/7_1_release_notes.html#introducing-config-autoload-lib-and-config-autoload-lib-once-for-enhanced-autoloading But factory files don't follow the naming rule of Zeitwerk. So Zeitwerk raises `Zeitwerk::NameError`. To avoid the error, this changed to ignore the directory that puts factory files. * Remove the route that is defined by default Some test code loads the route file twice. This wasn't a problem before Rails 7.0 because we didn't have a route. But, Rails 7.1 has one route by default. So the test application raises the following error during the load. ``` Invalid route name, already in use: 'rails_health_check' (ArgumentError) You may have defined two routes with the same name using the `:as` option, or you may be overriding a route already defined by a resource with the same naming. For the latter, you can restrict the routes created with `resources` as explained here: https://guides.rubyonrails.org/routing.html#restricting-the-routes-created ``` The routing isn't a matter of this gem, so just ignore that for running the test. * Prevent warning about deprecated cache_format_version * Wrap ActiveRecord configuration into initializer `Rails.application` is not available when the railties are collected, so we move the ActiveRecord configuration into the initializer phase. ``` NoMethodError: undefined method `config' for nil:NilClass (NoMethodError) application.config ^^^^^^^ /project/app/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8/lib/rails.rb:47:in `configuration' /project/app/vendor/bundle/ruby/3.2.0/gems/factory_bot_rails-6.4.0/lib/factory_bot_rails/railtie.rb:25:in `block in <class:Railtie>' ``` * Provide non regression feature test when ActiveRecord::Base is loaded It happens if the AR::Base as already been loaded. For example: DatabaseCleaner/database_cleaner-active_record#91 --------- Co-authored-by: Yuji Yaginuma <yuuji.yaginuma@gmail.com> Co-authored-by: Leo Arnold <github@leoarnold.de>
- Loading branch information
1 parent
8b2a78e
commit 79d1ad2
Showing
7 changed files
with
68 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
Feature: properly integrate with Rails and other gems | ||
|
||
Background: | ||
When I create a new rails application | ||
And I add "factory_bot_rails" from this project as a dependency | ||
And I run `bundle install` with a clean environment | ||
|
||
Scenario: handle already loaded ActiveRecord::Base by another gems earlier | ||
When I run the following commands: | ||
"""bash | ||
cat config/application.rb | ||
sed -i -e '/require "rails\/test_unit\/railtie"/a\'$'\n''require "active_record/base"' config/application.rb | ||
""" | ||
When I run `bundle exec rake test` with a clean environment | ||
Then the output should contain "0 runs" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# This file was generated by Appraisal | ||
|
||
source "https://rubygems.org" | ||
|
||
gem "appraisal" | ||
gem "aruba" | ||
gem "cucumber" | ||
gem "error_highlight", ">= 0.4.0" | ||
gem "rake" | ||
gem "rspec-rails" | ||
gem "standard" | ||
gem "byebug" | ||
gem "listen", "~> 3.2" | ||
gem "puma", "~> 6.0" | ||
gem "rails", "~> 7.1.0" | ||
gem "spring", "!= 2.1.1" | ||
gem "spring-watcher-listen", "~> 2.0.0" | ||
gem "sqlite3", "~> 1.4" | ||
|
||
gemspec name: "factory_bot_rails", path: "../" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters