summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_dependency.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem_dependency.rb')
-rw-r--r--test/rubygems/test_gem_dependency.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_dependency.rb b/test/rubygems/test_gem_dependency.rb
index 0d501f567f..d7eec3c090 100644
--- a/test/rubygems/test_gem_dependency.rb
+++ b/test/rubygems/test_gem_dependency.rb
@@ -338,6 +338,34 @@ class TestGemDependency < Gem::TestCase
assert_match "Could not find 'a' (= 2.0) - did find: [a-1.0]", e.message
end
+ def test_to_specs_respects_bundler_version
+ b = util_spec 'bundler', '2.0.0.pre.1'
+ b_1 = util_spec 'bundler', '1'
+ install_specs b, b_1
+
+ b_file = File.join b.gem_dir, 'lib', 'bundler', 'setup.rb'
+
+ write_file b_file do |io|
+ io.puts '# setup.rb'
+ end
+
+ dep = Gem::Dependency.new "bundler", ">= 0.a"
+
+ assert_equal [b, b_1], dep.to_specs
+
+ Gem::BundlerVersionFinder.stub(:bundler_version_with_reason, ["3.5", "reason"]) do
+ e = assert_raises Gem::MissingSpecVersionError do
+ dep.to_specs
+ end
+
+ assert_match "Could not find 'bundler' (3.5) required by reason.\nTo update to the lastest version installed on your system, run `bundle update --bundler`.\nTo install the missing version, run `gem install bundler:3.5`\n", e.message
+ end
+
+ Gem::BundlerVersionFinder.stub(:bundler_version_with_reason, ["2.0.0.pre.1", "reason"]) do
+ assert_equal [b], dep.to_specs
+ end
+ end
+
def test_to_specs_indicates_total_gem_set_size
a = util_spec 'a', '1.0'
install_specs a