зеркало из https://github.com/github/ruby.git
[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
This commit is contained in:
Родитель
3d248b2eb3
Коммит
1164b6a7ba
|
@ -132,7 +132,7 @@ module Gem::QueryUtils
|
|||
version_matches = show_prereleases? || !s.version.prerelease?
|
||||
|
||||
name_matches && version_matches
|
||||
end
|
||||
end.uniq(&:full_name)
|
||||
|
||||
spec_tuples = specs.map do |spec|
|
||||
[spec.name_tuple, spec]
|
||||
|
|
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче