diff options
author | Yusuke Nakamura <yusuke1994525@gmail.com> | 2022-01-10 21:51:51 +0900 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2022-01-20 01:04:52 +0900 |
commit | 4e955b2e379a550cebd27e5d66fd5bcd98c70cf7 (patch) | |
tree | b71b8a0eca3e317b1ce1faae2c0deef42e5bc990 | |
parent | 5c4734d1eff9322f9f21d9c21577978ab6e0d044 (diff) |
[rubygems/rubygems] Create minitest file to underscored path in "bundle gem" command
...with dashed gem name
In "bundle gem" command with dashed name gem (e.g. foo-bar) generates
`test/test_foo/bar.rb`, but this file contains undefined class `TestFoo`
and moreover, does not include in "bundle exec rake test" target.
Therefore, intentially the first test after gem created is fail, but in
case of gem name contains dash character is not.
The change doings...
(when "bundle gem foo-bar" called)
* create `test/test_foo_bar.rb`
* define `TestFooBar` class in `test/test_foo_bar.rb`
https://github.com/rubygems/rubygems/commit/5d9a69fc0f
-rw-r--r-- | lib/bundler/cli/gem.rb | 2 | ||||
-rw-r--r-- | lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt | 2 | ||||
-rw-r--r-- | spec/bundler/commands/newgem_spec.rb | 12 |
3 files changed, 10 insertions, 6 deletions
diff --git a/lib/bundler/cli/gem.rb b/lib/bundler/cli/gem.rb index 31e3af5580..6174e40bc0 100644 --- a/lib/bundler/cli/gem.rb +++ b/lib/bundler/cli/gem.rb @@ -106,7 +106,7 @@ module Bundler when "minitest" templates.merge!( "test/minitest/test_helper.rb.tt" => "test/test_helper.rb", - "test/minitest/test_newgem.rb.tt" => "test/test_#{namespaced_path}.rb" + "test/minitest/test_newgem.rb.tt" => "test/test_#{underscored_name}.rb" ) config[:test_task] = :test when "test-unit" 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 5eb8fcbf9d..971285c21d 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] %> < Minitest::Test +class Test<%= config[:constant_name].gsub('::', '') %> < 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 ddefe0ba25..45bd3d5d4e 100644 --- a/spec/bundler/commands/newgem_spec.rb +++ b/spec/bundler/commands/newgem_spec.rb @@ -696,18 +696,22 @@ RSpec.describe "bundle gem" do end context "gem.test setting set to rspec and --test is set to minitest" do + let(:underscored_require_path) { require_path.tr("/", "_") } + before do bundle "config set gem.test rspec" bundle "gem #{gem_name} --test=minitest" end it "builds spec skeleton" do - expect(bundled_app("#{gem_name}/test/test_#{require_path}.rb")).to exist + expect(bundled_app("#{gem_name}/test/test_#{underscored_require_path}.rb")).to exist expect(bundled_app("#{gem_name}/test/test_helper.rb")).to exist end end context "--test parameter set to minitest" do + let(:underscored_require_path) { require_path.tr("/", "_") } + before do bundle "gem #{gem_name} --test=minitest" end @@ -722,7 +726,7 @@ RSpec.describe "bundle gem" do end it "builds spec skeleton" do - expect(bundled_app("#{gem_name}/test/test_#{require_path}.rb")).to exist + expect(bundled_app("#{gem_name}/test/test_#{underscored_require_path}.rb")).to exist expect(bundled_app("#{gem_name}/test/test_helper.rb")).to exist end @@ -731,11 +735,11 @@ RSpec.describe "bundle gem" do end it "requires 'test_helper'" do - expect(bundled_app("#{gem_name}/test/test_#{require_path}.rb").read).to include(%(require "test_helper")) + expect(bundled_app("#{gem_name}/test/test_#{underscored_require_path}.rb").read).to include(%(require "test_helper")) end it "creates a default test which fails" do - expect(bundled_app("#{gem_name}/test/test_#{require_path}.rb").read).to include("assert false") + expect(bundled_app("#{gem_name}/test/test_#{underscored_require_path}.rb").read).to include("assert false") end end |