diff --git a/lib/bundler/cli/gem.rb b/lib/bundler/cli/gem.rb index 2c22ff8bab..c4c76d1b69 100644 --- a/lib/bundler/cli/gem.rb +++ b/lib/bundler/cli/gem.rb @@ -38,6 +38,7 @@ module Bundler namespaced_path = name.tr("-", "/") constant_name = name.gsub(/-[_-]*(?![_-]|$)/) { "::" }.gsub(/([_-]+|(::)|^)(.|$)/) { $2.to_s + $3.upcase } constant_array = constant_name.split("::") + minitest_constant_name = constant_array.clone.tap {|a| a[-1] = "Test#{a[-1]}" }.join("::") # Foo::Bar => Foo::TestBar use_git = Bundler.git_present? && options[:git] @@ -69,6 +70,7 @@ module Bundler :git => use_git, :github_username => github_username.empty? ? "[USERNAME]" : github_username, :required_ruby_version => required_ruby_version, + :minitest_constant_name => minitest_constant_name, } ensure_safe_gem_name(name, constant_array) diff --git a/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt b/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt index 971285c21d..4b35a63071 100644 --- a/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +++ b/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt @@ -2,7 +2,7 @@ require "test_helper" -class Test<%= config[:constant_name].gsub('::', '') %> < Minitest::Test +class <%= config[:minitest_constant_name] %> < Minitest::Test def test_that_it_has_a_version_number refute_nil ::<%= config[:constant_name] %>::VERSION end diff --git a/spec/bundler/commands/newgem_spec.rb b/spec/bundler/commands/newgem_spec.rb index 49ab4a366d..55a04b69c5 100644 --- a/spec/bundler/commands/newgem_spec.rb +++ b/spec/bundler/commands/newgem_spec.rb @@ -1369,7 +1369,7 @@ RSpec.describe "bundle gem" do let(:minitest_test_file_path) { "test/test/test_gem.rb" } - let(:minitest_test_class_name) { "class TestTestGem < Minitest::Test" } + let(:minitest_test_class_name) { "class Test::TestGem < Minitest::Test" } it "nests constants so they work" do bundle "gem #{gem_name}"