From 2f6ab46973675161a143a0c008788ecf8e8b5c01 Mon Sep 17 00:00:00 2001 From: Yuji Yaginuma Date: Fri, 27 Oct 2023 13:59:39 +0900 Subject: [PATCH] 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. --- features/support/rails_template | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/features/support/rails_template b/features/support/rails_template index 6b085b77..6c21fc8a 100644 --- a/features/support/rails_template +++ b/features/support/rails_template @@ -3,3 +3,11 @@ if Rails.gem_version < Gem::Version.new('6') end gsub_file "Gemfile", /^ gem 'spring'$/, ' gem "spring", "!= 2.1.1"' + +if Rails.gem_version >= Gem::Version.new('7.1') + append_to_file File.join("config", "application.rb"), <<~RUBY + class TestApp::Application + config.autoload_lib(ignore: %w(some_railtie)) + end + RUBY +end