summaryrefslogtreecommitdiff
path: root/spec/bundler
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2022-07-30 10:07:45 +0200
committergit <svn-admin@ruby-lang.org>2022-08-02 16:10:19 +0900
commit3e4fedca4e0b068908137d44bcf5a567cb8445d0 (patch)
tree2784d61481b6a0d37ad8d10b0c6931dfef662d2b /spec/bundler
parentbc90090672450a4ba3ba1025fbbad8991ee84b0e (diff)
[rubygems/rubygems] Preserve the previous behavior of raising an error when in frozen mode
https://github.com/rubygems/rubygems/commit/6e35a6edfe
Diffstat (limited to 'spec/bundler')
-rw-r--r--spec/bundler/install/gems/resolving_spec.rb87
1 files changed, 50 insertions, 37 deletions
diff --git a/spec/bundler/install/gems/resolving_spec.rb b/spec/bundler/install/gems/resolving_spec.rb
index 069fa273b4..9c0d6bfe56 100644
--- a/spec/bundler/install/gems/resolving_spec.rb
+++ b/spec/bundler/install/gems/resolving_spec.rb
@@ -241,55 +241,68 @@ RSpec.describe "bundle install with install-time dependencies" do
expect(the_bundle).to include_gems("rack 1.2")
end
- it "automatically updates lockfile to use the older version" do
- build_repo2 do
- build_gem "parallel_tests", "3.7.0" do |s|
- s.required_ruby_version = ">= #{current_ruby_minor}"
- end
+ context "when there is a lockfile using the newer incompatible version" do
+ before do
+ build_repo2 do
+ build_gem "parallel_tests", "3.7.0" do |s|
+ s.required_ruby_version = ">= #{current_ruby_minor}"
+ end
- build_gem "parallel_tests", "3.8.0" do |s|
- s.required_ruby_version = ">= #{next_ruby_minor}"
+ build_gem "parallel_tests", "3.8.0" do |s|
+ s.required_ruby_version = ">= #{next_ruby_minor}"
+ end
end
- end
- gemfile <<-G
- source "http://localgemserver.test/"
- gem 'parallel_tests'
- G
+ gemfile <<-G
+ source "http://localgemserver.test/"
+ gem 'parallel_tests'
+ G
- lockfile <<~L
- GEM
- remote: http://localgemserver.test/
- specs:
- parallel_tests (3.8.0)
+ lockfile <<~L
+ GEM
+ remote: http://localgemserver.test/
+ specs:
+ parallel_tests (3.8.0)
- PLATFORMS
- #{lockfile_platforms}
+ PLATFORMS
+ #{lockfile_platforms}
- DEPENDENCIES
- parallel_tests
+ DEPENDENCIES
+ parallel_tests
- BUNDLED WITH
- #{Bundler::VERSION}
- L
+ BUNDLED WITH
+ #{Bundler::VERSION}
+ L
+ end
- bundle "install --verbose", :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo2.to_s }
+ it "automatically updates lockfile to use the older version" do
+ bundle "install --verbose", :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo2.to_s }
- expect(lockfile).to eq <<~L
- GEM
- remote: http://localgemserver.test/
- specs:
- parallel_tests (3.7.0)
+ expect(lockfile).to eq <<~L
+ GEM
+ remote: http://localgemserver.test/
+ specs:
+ parallel_tests (3.7.0)
- PLATFORMS
- #{lockfile_platforms}
+ PLATFORMS
+ #{lockfile_platforms}
- DEPENDENCIES
- parallel_tests
+ DEPENDENCIES
+ parallel_tests
- BUNDLED WITH
- #{Bundler::VERSION}
- L
+ BUNDLED WITH
+ #{Bundler::VERSION}
+ L
+ end
+
+ it "gives a meaningful error if we're in frozen mode" do
+ expect do
+ bundle "install --verbose", :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo2.to_s, "BUNDLE_FROZEN" => "true" }, :raise_on_error => false
+ end.not_to change { lockfile }
+
+ expect(err).to include("parallel_tests-3.8.0 requires ruby version >= #{next_ruby_minor}")
+ expect(err).not_to include("That means the author of parallel_tests (3.8.0) has removed it.")
+ end
end
it "gives a meaningful error on ruby version mismatches between dependencies" do