diff --git a/lib/bundler/cli/gem.rb b/lib/bundler/cli/gem.rb index 57fc635341..2c2ed2724b 100644 --- a/lib/bundler/cli/gem.rb +++ b/lib/bundler/cli/gem.rb @@ -181,7 +181,7 @@ module Bundler if options[:test] == Bundler.settings["gem.test"] Bundler.ui.info "Bundler is configured to generate test files for #{Bundler.settings["gem.test"]}, "\ "so -t is not needed if you want to continue using it. " \ - "This setting can be changed anytime with bundle config gem.test." + "This setting can be changed anytime with `bundle config gem.test`." end rescue Errno::EEXIST => e raise GenericSystemCallError.new(e, "There was a conflict while creating the new gem.") @@ -222,7 +222,7 @@ module Bundler if test_framework.to_s.empty? Bundler.ui.confirm "Do you want to generate tests with your gem?" result = Bundler.ui.ask "Type 'rspec', 'minitest' or 'test-unit' to generate those test files now. \n" \ - "#{test_framework_help_info} rspec/minitest/test-unit/(none):" + "#{test_framework_hint} rspec/minitest/test-unit/(none):" if result =~ /rspec|minitest|test-unit/ test_framework = result else @@ -237,12 +237,12 @@ module Bundler test_framework end - def test_framework_help_info + def test_framework_hint if Bundler.settings["gem.test"] == false "Your choice will only be applied to this gem." else - "Future bundle gem calls will use your choice. " \ - "This setting can be changed anytime with bundle config gem.test." + "Future `bundle gem` calls will use your choice. " \ + "This setting can be changed anytime with `bundle config gem.test`." end end diff --git a/spec/bundler/commands/newgem_spec.rb b/spec/bundler/commands/newgem_spec.rb index fcefa4d15e..4b7a88bddd 100644 --- a/spec/bundler/commands/newgem_spec.rb +++ b/spec/bundler/commands/newgem_spec.rb @@ -623,18 +623,32 @@ RSpec.describe "bundle gem" do expect(bundled_app("#{gem_name}/spec/spec_helper.rb")).to exist end + it "hints that --test is not needed" do + hint = "Bundler is configured to generate test files for rspec, "\ + "so -t is not needed if you want to continue using it. " \ + "This setting can be changed anytime with `bundle config gem.test`." + expect(last_command.stdout).to match(hint) + end + it_behaves_like "test framework is present" end context "gem.test setting set to false and --test with no arguments" do before do bundle "config set gem.test false" + bundle! "gem #{gem_name} --test" end it "asks to generate test files" do - result = bundle! "gem #{gem_name} --test" - expect(result).to match("Do you want to generate tests with your gem?") + expect(last_command.stdout).to match("Do you want to generate tests with your gem?") end + + it "hints that the choice will only be applied to the current gem" do + hint = "Your choice will only be applied to this gem." + expect(last_command.stdout).to match(hint) + end + + it_behaves_like "test framework is absent" end context "gem.test setting not set and --test with no arguments" do @@ -642,6 +656,12 @@ RSpec.describe "bundle gem" do bundle! "gem #{gem_name} --test" end + it "hints that the choice will be applied to future bundle gem calls" do + hint = "Future `bundle gem` calls will use your choice. " \ + "This setting can be changed anytime with `bundle config gem.test`." + expect(last_command.stdout).to match(hint) + end + it_behaves_like "test framework is absent" end