Prevent vendorizing gems fixtures in dot directories (like .bundle) from loading when running tests (#50548)

* Fix Issue with vendorized gems loading fixtures from dot directories

* Fixing matching logic to be specifically any dir starting with a dot on the root

Co-authored-by: Rafael Mendonça França <rafael@rubyonrails.org>
This commit is contained in:
Shawn J 2024-01-04 00:19:55 -05:00 committed by GitHub
parent 61af6b78a5
commit f6f6b0542f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -627,7 +627,7 @@ def load_seed
next if is_a?(Rails::Application)
fixtures = config.root.join("test", "fixtures")
if fixtures_in_root_and_not_in_vendor?(fixtures)
if fixtures_in_root_and_not_in_vendor_or_dot_dir?(fixtures)
ActiveSupport.on_load(:active_record_fixtures) { self.fixture_paths |= ["#{fixtures}/"] }
end
end
@ -735,9 +735,10 @@ def _all_load_paths(add_autoload_paths_to_load_path)
end
end
def fixtures_in_root_and_not_in_vendor?(fixtures)
def fixtures_in_root_and_not_in_vendor_or_dot_dir?(fixtures)
fixtures.exist? && fixtures.to_s.start_with?(Rails.root.to_s) &&
!fixtures.to_s.start_with?(Rails.root.join("vendor").to_s)
!fixtures.to_s.start_with?(Rails.root.join("vendor").to_s) &&
!fixtures.to_s.start_with?("#{Rails.root}/.".to_s)
end
def build_request(env)