From 2e291e3ffdea1cba747119ff58cf253f4c4a87c8 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Mon, 2 May 2022 19:42:57 +0900 Subject: Merge RubyGems-3.3.12 and Bundler-2.3.12 --- spec/bundler/bundler/dsl_spec.rb | 5 ++-- spec/bundler/bundler/ruby_version_spec.rb | 26 -------------------- spec/bundler/install/gems/resolving_spec.rb | 37 +++++++++++++++++++++++------ 3 files changed, 33 insertions(+), 35 deletions(-) (limited to 'spec/bundler') diff --git a/spec/bundler/bundler/dsl_spec.rb b/spec/bundler/bundler/dsl_spec.rb index a44a12924c..4802b62a58 100644 --- a/spec/bundler/bundler/dsl_spec.rb +++ b/spec/bundler/bundler/dsl_spec.rb @@ -137,8 +137,9 @@ RSpec.describe Bundler::Dsl do end describe "#gem" do - [:ruby, :ruby_18, :ruby_19, :ruby_20, :ruby_21, :ruby_22, :ruby_23, :ruby_24, :ruby_25, :ruby_26, :mri, :mri_18, :mri_19, - :mri_20, :mri_21, :mri_22, :mri_23, :mri_24, :mri_25, :mri_26, :jruby, :rbx, :truffleruby].each do |platform| + [:ruby, :ruby_18, :ruby_19, :ruby_20, :ruby_21, :ruby_22, :ruby_23, :ruby_24, :ruby_25, :ruby_26, :ruby_27, + :ruby_30, :ruby_31, :mri, :mri_18, :mri_19, :mri_20, :mri_21, :mri_22, :mri_23, :mri_24, :mri_25, :mri_26, + :mri_27, :mri_30, :mri_31, :jruby, :rbx, :truffleruby].each do |platform| it "allows #{platform} as a valid platform" do subject.gem("foo", :platform => platform) end diff --git a/spec/bundler/bundler/ruby_version_spec.rb b/spec/bundler/bundler/ruby_version_spec.rb index 8c6c071d7f..3e3850031c 100644 --- a/spec/bundler/bundler/ruby_version_spec.rb +++ b/spec/bundler/bundler/ruby_version_spec.rb @@ -498,31 +498,5 @@ RSpec.describe "Bundler::RubyVersion and its subclasses" do end end end - - describe "#to_gem_version_with_patchlevel" do - shared_examples_for "the patchlevel is omitted" do - it "does not include a patch level" do - expect(subject.to_gem_version_with_patchlevel.to_s).to eq(version) - end - end - - context "with nil patch number" do - let(:patchlevel) { nil } - - it_behaves_like "the patchlevel is omitted" - end - - context "with negative patch number" do - let(:patchlevel) { -1 } - - it_behaves_like "the patchlevel is omitted" - end - - context "with a valid patch number" do - it "uses the specified patchlevel as patchlevel" do - expect(subject.to_gem_version_with_patchlevel.to_s).to eq("#{version}.#{patchlevel}") - end - end - end end end diff --git a/spec/bundler/install/gems/resolving_spec.rb b/spec/bundler/install/gems/resolving_spec.rb index 209996f61f..83f1e60806 100644 --- a/spec/bundler/install/gems/resolving_spec.rb +++ b/spec/bundler/install/gems/resolving_spec.rb @@ -301,7 +301,28 @@ RSpec.describe "bundle install with install-time dependencies" do end let(:ruby_requirement) { %("#{RUBY_VERSION}") } - let(:error_message_requirement) { "~> #{RUBY_VERSION}.0" } + let(:error_message_requirement) { "= #{RUBY_VERSION}" } + + it "raises a proper error that mentions the current Ruby version during resolution" do + install_gemfile <<-G, :artifice => "compact_index", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo2.to_s }, :raise_on_error => false + source "http://localgemserver.test/" + gem 'require_ruby' + G + + expect(out).to_not include("Gem::InstallError: require_ruby requires Ruby version > 9000") + + nice_error = strip_whitespace(<<-E).strip + Bundler found conflicting requirements for the Ruby\0 version: + In Gemfile: + require_ruby was resolved to 1.0, which depends on + Ruby\0 (> 9000) + + Current Ruby\0 version: + Ruby\0 (#{error_message_requirement}) + + E + expect(err).to end_with(nice_error) + end shared_examples_for "ruby version conflicts" do it "raises an error during resolution" do @@ -316,10 +337,12 @@ RSpec.describe "bundle install with install-time dependencies" do nice_error = strip_whitespace(<<-E).strip Bundler found conflicting requirements for the Ruby\0 version: In Gemfile: - Ruby\0 (#{error_message_requirement}) - require_ruby was resolved to 1.0, which depends on Ruby\0 (> 9000) + + Current Ruby\0 version: + Ruby\0 (#{error_message_requirement}) + E expect(err).to end_with(nice_error) end @@ -329,7 +352,6 @@ RSpec.describe "bundle install with install-time dependencies" do describe "with a < requirement" do let(:ruby_requirement) { %("< 5000") } - let(:error_message_requirement) { "< 5000" } it_behaves_like "ruby version conflicts" end @@ -337,7 +359,6 @@ RSpec.describe "bundle install with install-time dependencies" do describe "with a compound requirement" do let(:reqs) { ["> 0.1", "< 5000"] } let(:ruby_requirement) { reqs.map(&:dump).join(", ") } - let(:error_message_requirement) { Gem::Requirement.new(reqs).to_s } it_behaves_like "ruby version conflicts" end @@ -361,10 +382,12 @@ RSpec.describe "bundle install with install-time dependencies" do nice_error = strip_whitespace(<<-E).strip Bundler found conflicting requirements for the RubyGems\0 version: In Gemfile: - RubyGems\0 (= #{Gem::VERSION}) - require_rubygems was resolved to 1.0, which depends on RubyGems\0 (> 9000) + + Current RubyGems\0 version: + RubyGems\0 (= #{Gem::VERSION}) + E expect(err).to end_with(nice_error) end -- cgit v1.2.3