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/