From e97c36adc830c658c6e21fafaa4cecd4590216ed Mon Sep 17 00:00:00 2001 From: Nate Matykiewicz Date: Wed, 22 May 2024 16:56:22 -0500 Subject: [PATCH 1/2] Prevent test suite from modifying contributors' Bundler settings --- lib/ruby_indexer/test/configuration_test.rb | 9 +++--- test/setup_bundler_test.rb | 33 ++++++++++----------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/lib/ruby_indexer/test/configuration_test.rb b/lib/ruby_indexer/test/configuration_test.rb index e7e774e6e..8c3d986f1 100644 --- a/lib/ruby_indexer/test/configuration_test.rb +++ b/lib/ruby_indexer/test/configuration_test.rb @@ -68,12 +68,11 @@ def test_indexables_includes_project_files end def test_indexables_avoids_duplicates_if_bundle_path_is_inside_project - Bundler.settings.set_global("path", "vendor/bundle") - config = Configuration.new + Bundler.settings.temporary(path: "vendor/bundle") do + config = Configuration.new - assert_includes(config.instance_variable_get(:@excluded_patterns), "#{Dir.pwd}/vendor/bundle/**/*.rb") - ensure - Bundler.settings.set_global("path", nil) + assert_includes(config.instance_variable_get(:@excluded_patterns), "#{Dir.pwd}/vendor/bundle/**/*") + end end def test_indexables_does_not_include_gems_own_installed_files diff --git a/test/setup_bundler_test.rb b/test/setup_bundler_test.rb index 3daeae8be..6b9a06fe1 100644 --- a/test/setup_bundler_test.rb +++ b/test/setup_bundler_test.rb @@ -215,16 +215,15 @@ def test_does_only_updates_every_4_hours end def test_uses_absolute_bundle_path_for_bundle_install - Bundler.settings.set_global("path", "vendor/bundle") - Object.any_instance.expects(:system).with( - bundle_env(".ruby-lsp/Gemfile"), - "(bundle check || bundle install) 1>&2", - ).returns(true) - Bundler::LockfileParser.any_instance.expects(:dependencies).returns({}).at_least_once - run_script(expected_path: File.expand_path("vendor/bundle", Dir.pwd)) + Bundler.settings.temporary(path: "vendor/bundle") do + Object.any_instance.expects(:system).with( + bundle_env(".ruby-lsp/Gemfile"), + "(bundle check || bundle install) 1>&2", + ).returns(true) + Bundler::LockfileParser.any_instance.expects(:dependencies).returns({}).at_least_once + run_script(expected_path: File.expand_path("vendor/bundle", Dir.pwd)) + end ensure - # We need to revert the changes to the bundler config or else this actually changes ~/.bundle/config - Bundler.settings.set_global("path", nil) FileUtils.rm_r(".ruby-lsp") end @@ -366,19 +365,17 @@ def test_returns_bundle_app_config_if_there_is_local_config Dir.chdir(dir) do bundle_gemfile = Pathname.new(".ruby-lsp").expand_path(Dir.pwd) + "Gemfile" Bundler.with_unbundled_env do - Bundler.settings.set_local("without", "production") - Object.any_instance.expects(:system).with( - bundle_env(bundle_gemfile.to_s), - "(bundle check || bundle install) 1>&2", - ).returns(true) + Bundler.settings.temporary(without: "production") do + Object.any_instance.expects(:system).with( + bundle_env(bundle_gemfile.to_s), + "(bundle check || bundle install) 1>&2", + ).returns(true) - run_script + run_script + end end end end - ensure - # CI uses a local bundle config and we don't want to delete that - FileUtils.rm_r(File.join(Dir.pwd, ".bundle")) unless ENV["CI"] end def test_custom_bundle_uses_alternative_gemfiles From 469850f587035f49cc93513597a2b2822c6e9daa Mon Sep 17 00:00:00 2001 From: Nate Matykiewicz Date: Thu, 23 May 2024 10:42:42 -0500 Subject: [PATCH 2/2] Fix test --- lib/ruby_indexer/test/configuration_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ruby_indexer/test/configuration_test.rb b/lib/ruby_indexer/test/configuration_test.rb index 8c3d986f1..05609f77a 100644 --- a/lib/ruby_indexer/test/configuration_test.rb +++ b/lib/ruby_indexer/test/configuration_test.rb @@ -71,7 +71,7 @@ def test_indexables_avoids_duplicates_if_bundle_path_is_inside_project Bundler.settings.temporary(path: "vendor/bundle") do config = Configuration.new - assert_includes(config.instance_variable_get(:@excluded_patterns), "#{Dir.pwd}/vendor/bundle/**/*") + assert_includes(config.instance_variable_get(:@excluded_patterns), "#{Dir.pwd}/vendor/bundle/**/*.rb") end end