From 580e165873c727b9248e1ba7d3ac0af9b121a235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Fri, 24 May 2019 20:28:25 +0200 Subject: [bundler/bundler] Respect color option when instantiating shells Thor's base shell will be memoized the first time it is set. So if we instantiate a no-color shell first, further instantiations of a bundler shell will be initialized with a no-color shell by default. This is caused some sources specs to fail, depending on the order they run. See for example https://travis-ci.org/bundler/bundler/builds/500328994. What we do to fix it is to reset the shell unless no-color is explicitly specified. That way, further instantiations will rerun thor's internal logic to choose the default shell. https://github.com/bundler/bundler/commit/786b5d9894 --- spec/bundler/bundler/source_spec.rb | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'spec') diff --git a/spec/bundler/bundler/source_spec.rb b/spec/bundler/bundler/source_spec.rb index d70fd7e549..9ef8e7e50f 100644 --- a/spec/bundler/bundler/source_spec.rb +++ b/spec/bundler/bundler/source_spec.rb @@ -60,10 +60,6 @@ RSpec.describe Bundler::Source do before { Bundler.ui = Bundler::UI::Shell.new } it "should return a string with the spec name and version and locked spec version" do - if Bundler.ui.instance_variable_get(:@shell).is_a?(Bundler::Thor::Shell::Basic) - skip "tty color is not supported with Thor::Shell::Basic environment." - end - expect(subject.version_message(spec)).to eq("nokogiri >= 1.6\e[32m (was < 1.5)\e[0m") end end @@ -83,10 +79,6 @@ RSpec.describe Bundler::Source do before { Bundler.ui = Bundler::UI::Shell.new } it "should return a string with the locked spec version in yellow" do - if Bundler.ui.instance_variable_get(:@shell).is_a?(Bundler::Thor::Shell::Basic) - skip "tty color is not supported with Thor::Shell::Basic environment." - end - expect(subject.version_message(spec)).to eq("nokogiri 1.6.1\e[33m (was 1.7.0)\e[0m") end end @@ -100,10 +92,6 @@ RSpec.describe Bundler::Source do before { Bundler.ui = Bundler::UI::Shell.new } it "should return a string with the locked spec version in green" do - if Bundler.ui.instance_variable_get(:@shell).is_a?(Bundler::Thor::Shell::Basic) - skip "tty color is not supported with Thor::Shell::Basic environment." - end - expect(subject.version_message(spec)).to eq("nokogiri 1.7.1\e[32m (was 1.7.0)\e[0m") end end -- cgit v1.2.3