1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[rubygems/rubygems] Add user hint specs for bundle gem --test

1d2292a88f
This commit is contained in:
Frank Lam 2020-05-23 01:00:00 +08:00 committed by Hiroshi SHIBATA
parent 58267fa59e
commit 154c2717da
Notes: git 2020-06-05 07:33:54 +09:00
2 changed files with 27 additions and 7 deletions

View file

@ -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

View file

@ -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