summaryrefslogtreecommitdiff
path: root/test
diff options
authorDavid Rodríguez <[email protected]>2024-07-23 18:52:03 +0200
committergit <[email protected]>2024-07-30 14:01:43 +0000
commit1164b6a7baeddade88b9eb01c3ac00f83d2066c6 (patch)
tree33bbcf537524d17c7eacf6e72e5f4b0e2fa99e5f /test
parent3d248b2eb3d2b10f9d2ddf614485ceb35089f924 (diff)
[rubygems/rubygems] Fix `gem list` regression when a regular gem shadows a default one
Previously, if you have bundler installed both as a regular gem and a default gem, the default gem would be displayed by `gem list`. https://github.com/rubygems/rubygems/commit/10a6b1736e
Diffstat (limited to 'test')
-rw-r--r--test/rubygems/test_gem_commands_list_command.rb29
1 files changed, 27 insertions, 2 deletions
diff --git a/test/rubygems/test_gem_commands_list_command.rb b/test/rubygems/test_gem_commands_list_command.rb
index c83dd51b67..0b52b54e77 100644
--- a/test/rubygems/test_gem_commands_list_command.rb
+++ b/test/rubygems/test_gem_commands_list_command.rb
@@ -8,7 +8,9 @@ class TestGemCommandsListCommand < Gem::TestCase
super
@cmd = Gem::Commands::ListCommand.new
+ end
+ def test_execute_installed
spec_fetcher do |fetcher|
fetcher.spec "c", 1
end
@@ -16,9 +18,7 @@ class TestGemCommandsListCommand < Gem::TestCase
@fetcher.data["#{@gem_repo}Marshal.#{Gem.marshal_version}"] = proc do
raise Gem::RemoteFetcher::FetchError
end
- end
- def test_execute_installed
@cmd.handle_options %w[c --installed]
assert_raise Gem::MockGemUi::SystemExitException do
@@ -30,4 +30,29 @@ class TestGemCommandsListCommand < Gem::TestCase
assert_equal "true\n", @ui.output
assert_equal "", @ui.error
end
+
+ def test_execute_normal_gem_shadowing_default_gem
+ c1_default = new_default_spec "c", 1
+ install_default_gems c1_default
+
+ c1 = util_spec("c", 1) {|s| s.date = "2024-01-01" }
+ install_gem c1
+
+ Gem::Specification.reset
+
+ @cmd.handle_options %w[c]
+
+ use_ui @ui do
+ @cmd.execute
+ end
+
+ expected = <<-EOF
+
+*** LOCAL GEMS ***
+
+c (1)
+EOF
+
+ assert_equal expected, @ui.output
+ end
end