aboutsummaryrefslogtreecommitdiffstats
path: root/spec/bundler
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2022-06-25 21:40:34 +0200
committergit <svn-admin@ruby-lang.org>2022-06-27 23:35:45 +0900
commitf9f85a513b9b6580dcff03872391cf387d0105b5 (patch)
treedfb7c6845a69098fca8ca0ac3c47e791e8149fc3 /spec/bundler
parent8c6c3e30f3a86ba0b697a0d99efe8ff4585c4a42 (diff)
downloadruby-f9f85a513b9b6580dcff03872391cf387d0105b5.tar.gz
[rubygems/rubygems] Print error messages just once in verbose mode
When running a command with the `--verbose` flag that ends up raising a `BundlerError`, Bundler will unnecessarily print the error twice. This commit fixes the issue by removing the duplicate logging. https://github.com/rubygems/rubygems/commit/689004a164
Diffstat (limited to 'spec/bundler')
-rw-r--r--spec/bundler/bundler/friendly_errors_spec.rb1
-rw-r--r--spec/bundler/install/gemfile/specific_platform_spec.rb40
2 files changed, 30 insertions, 11 deletions
diff --git a/spec/bundler/bundler/friendly_errors_spec.rb b/spec/bundler/bundler/friendly_errors_spec.rb
index 496191f891..69fba7b826 100644
--- a/spec/bundler/bundler/friendly_errors_spec.rb
+++ b/spec/bundler/bundler/friendly_errors_spec.rb
@@ -104,7 +104,6 @@ RSpec.describe Bundler, "friendly errors" do
expect(Bundler.ui).to receive(:error).with(error.message, :wrap => true)
Bundler::FriendlyErrors.log_error(error)
end
- it_behaves_like "Bundler.ui receive trace", Bundler::BundlerError.new
end
context "Thor::Error" do
diff --git a/spec/bundler/install/gemfile/specific_platform_spec.rb b/spec/bundler/install/gemfile/specific_platform_spec.rb
index 113a0a1352..3e5a0a6270 100644
--- a/spec/bundler/install/gemfile/specific_platform_spec.rb
+++ b/spec/bundler/install/gemfile/specific_platform_spec.rb
@@ -294,17 +294,27 @@ RSpec.describe "bundle install with specific platforms" do
gem "sorbet-static", "0.5.6433"
G
- simulate_platform "arm64-darwin-21" do
- bundle "install", :raise_on_error => false
- end
-
- expect(err).to include <<~ERROR.rstrip
+ error_message = <<~ERROR.strip
Could not find gem 'sorbet-static (= 0.5.6433) arm64-darwin-21' in rubygems repository #{file_uri_for(gem_repo2)}/ or installed locally.
The source contains the following gems matching 'sorbet-static (= 0.5.6433)':
* sorbet-static-0.5.6433-universal-darwin-20
* sorbet-static-0.5.6433-x86_64-linux
ERROR
+
+ simulate_platform "arm64-darwin-21" do
+ bundle "install", :raise_on_error => false
+ end
+
+ expect(err).to include(error_message).once
+
+ # Make sure it doesn't print error twice in verbose mode
+
+ simulate_platform "arm64-darwin-21" do
+ bundle "install --verbose", :raise_on_error => false
+ end
+
+ expect(err).to include(error_message).once
end
it "does not resolve if the current platform does not match any of available platform specific variants for a transitive dependency" do
@@ -320,17 +330,27 @@ RSpec.describe "bundle install with specific platforms" do
gem "sorbet", "0.5.6433"
G
- simulate_platform "arm64-darwin-21" do
- bundle "install", :raise_on_error => false
- end
-
- expect(err).to include <<~ERROR.rstrip
+ error_message = <<~ERROR.strip
Could not find gem 'sorbet-static (= 0.5.6433) arm64-darwin-21', which is required by gem 'sorbet (= 0.5.6433)', in rubygems repository #{file_uri_for(gem_repo2)}/ or installed locally.
The source contains the following gems matching 'sorbet-static (= 0.5.6433)':
* sorbet-static-0.5.6433-universal-darwin-20
* sorbet-static-0.5.6433-x86_64-linux
ERROR
+
+ simulate_platform "arm64-darwin-21" do
+ bundle "install", :raise_on_error => false
+ end
+
+ expect(err).to include(error_message).once
+
+ # Make sure it doesn't print error twice in verbose mode
+
+ simulate_platform "arm64-darwin-21" do
+ bundle "install --verbose", :raise_on_error => false
+ end
+
+ expect(err).to include(error_message).once
end
private