[rubygems/rubygems] Fix gem info tagging some non default gems as default

https://github.com/rubygems/rubygems/commit/7585825c57
This commit is contained in:
David Rodríguez 2024-12-12 17:42:02 +01:00 committed by git
parent c4d35040f4
commit d0968b1b4c
2 changed files with 36 additions and 1 deletions

View File

@ -311,7 +311,7 @@ module Gem::QueryUtils
label = "Installed at"
specs.each do |s|
version = s.version.to_s
default = ", default" if s.default_gem?
default = s.default_gem? ? ", default" : ""
entry << "\n" << " #{label} (#{version}#{default}): #{s.base_dir}"
label = " " * label.length
end

View File

@ -67,4 +67,39 @@ class TestGemCommandsInfoCommand < Gem::TestCase
assert_equal expected, @ui.output
end
def test_execute_with_default_gem
@gem = new_default_spec("foo", "1.0.0", nil, "default/gem.rb")
install_default_gems @gem
@cmd.handle_options %w[foo]
use_ui @ui do
@cmd.execute
end
assert_include(@ui.output, "#{@gem.name} (#{@gem.version})\n")
assert_include(@ui.output, "Installed at (default): #{@gem.base_dir}\n")
assert_match "", @ui.error
end
def test_execute_with_default_gem_and_regular_gem
@default = new_default_spec("foo", "1.0.1", nil, "default/gem.rb")
install_default_gems @default
@regular = gem "foo", "1.0.0"
@cmd.handle_options %w[foo]
use_ui @ui do
@cmd.execute
end
assert_include(@ui.output, "foo (1.0.1, 1.0.0)\n")
assert_include(@ui.output, "Installed at (1.0.1, default): #{@default.base_dir}\n")
assert_include(@ui.output, " (1.0.0): #{@default.base_dir}\n")
assert_match "", @ui.error
end
end