[前][次][番号順一覧][スレッド一覧]

ruby-changes:70942

From: Yusuke <ko1@a...>
Date: Thu, 20 Jan 2022 01:05:10 +0900 (JST)
Subject: [ruby-changes:70942] 4e955b2e37 (master): [rubygems/rubygems] Create minitest file to underscored path in "bundle gem" command

https://git.ruby-lang.org/ruby.git/commit/?id=4e955b2e37

From 4e955b2e379a550cebd27e5d66fd5bcd98c70cf7 Mon Sep 17 00:00:00 2001
From: Yusuke Nakamura <yusuke1994525@g...>
Date: Mon, 10 Jan 2022 21:51:51 +0900
Subject: [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
---
 lib/bundler/cli/gem.rb                                       |  2 +-
 lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt |  2 +-
 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 31e3af55806..6174e40bc0e 100644
--- a/lib/bundler/cli/gem.rb
+++ b/lib/bundler/cli/gem.rb
@@ -106,7 +106,7 @@ module Bundler https://github.com/ruby/ruby/blob/trunk/lib/bundler/cli/gem.rb#L106
         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 5eb8fcbf9d9..971285c21d7 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 @@ https://github.com/ruby/ruby/blob/trunk/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt#L2
 
 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 ddefe0ba25b..45bd3d5d4eb 100644
--- a/spec/bundler/commands/newgem_spec.rb
+++ b/spec/bundler/commands/newgem_spec.rb
@@ -696,18 +696,22 @@ RSpec.describe "bundle gem" do https://github.com/ruby/ruby/blob/trunk/spec/bundler/commands/newgem_spec.rb#L696
     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 https://github.com/ruby/ruby/blob/trunk/spec/bundler/commands/newgem_spec.rb#L726
       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 https://github.com/ruby/ruby/blob/trunk/spec/bundler/commands/newgem_spec.rb#L735
       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
 
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]