diff options
author | David Rodriguez <deivid.rodriguez@riseup.net> | 2024-05-06 15:56:37 +0200 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2024-05-13 10:35:57 +0000 |
commit | a86ad47c940dee19bfe74a374c5ac61752026b7c (patch) | |
tree | ea3850400c90f7d647e62976928a44c17f169da7 /test/rubygems/test_gem_uninstaller.rb | |
parent | 899568cce9f2929c765738bf52fcadaead953187 (diff) |
[rubygems/rubygems] Improve plugin removal test
Instead of unit testing the `remove_plugins` method, test the whole
removal process.
https://github.com/rubygems/rubygems/commit/bfdc60af98
Diffstat (limited to 'test/rubygems/test_gem_uninstaller.rb')
-rw-r--r-- | test/rubygems/test_gem_uninstaller.rb | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/test/rubygems/test_gem_uninstaller.rb b/test/rubygems/test_gem_uninstaller.rb index 9e0c1aa3d8..cd6d560ece 100644 --- a/test/rubygems/test_gem_uninstaller.rb +++ b/test/rubygems/test_gem_uninstaller.rb @@ -188,20 +188,29 @@ class TestGemUninstaller < Gem::InstallerTestCase refute File.exist?(plugin_path), "plugin not removed" end - def test_remove_plugins_with_install_dir + def test_uninstall_with_install_dir_removes_plugins write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io| io.write "# do nothing" end @spec.files += %w[lib/rubygems_plugin.rb] - Gem::Installer.at(Gem::Package.build(@spec), force: true).install + package = Gem::Package.build(@spec) + + Gem::Installer.at(package, force: true).install plugin_path = File.join Gem.plugindir, "a_plugin.rb" assert File.exist?(plugin_path), "plugin not written" - Dir.mkdir "#{@gemhome}2" - Gem::Uninstaller.new(nil, install_dir: "#{@gemhome}2").remove_plugins @spec + install_dir = "#{@gemhome}2" + + Gem::Installer.at(package, force: true, install_dir: install_dir).install + + install_dir_plugin_path = File.join install_dir, "plugins/a_plugin.rb" + assert File.exist?(install_dir_plugin_path), "plugin not written" + + Gem::Specification.dirs = [install_dir] + Gem::Uninstaller.new(@spec.name, executables: true, install_dir: install_dir).uninstall assert File.exist?(plugin_path), "plugin unintentionally removed" end |