diff options
-rw-r--r-- | spec/bundled_gems_spec.rb | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/spec/bundled_gems_spec.rb b/spec/bundled_gems_spec.rb index eda2ac41f6..9a2f0be402 100644 --- a/spec/bundled_gems_spec.rb +++ b/spec/bundled_gems_spec.rb @@ -55,14 +55,19 @@ RSpec.configure do |config| end RSpec.describe "bundled_gems.rb" do - def script(code, options = {}) - options[:artifice] ||= "compact_index" - code = <<~RUBY + let(:stub_code) { + <<~STUB Gem::BUNDLED_GEMS.send(:remove_const, :LIBDIR) Gem::BUNDLED_GEMS.send(:remove_const, :ARCHDIR) Gem::BUNDLED_GEMS.const_set(:LIBDIR, File.expand_path(File.join(__dir__, "../../..", "lib")) + "/") Gem::BUNDLED_GEMS.const_set(:ARCHDIR, File.expand_path($LOAD_PATH.find{|path| path.include?(".ext/common") }) + "/") + STUB + } + def script(code, options = {}) + options[:artifice] ||= "compact_index" + code = <<~RUBY + #{stub_code} require 'bundler/inline' #{code} @@ -143,6 +148,7 @@ RSpec.describe "bundled_gems.rb" do it "Show warning when bundle exec with ruby and script" do code = <<-RUBY + #{stub_code} require "ostruct" RUBY create_file("script.rb", code) @@ -151,7 +157,7 @@ RSpec.describe "bundled_gems.rb" do bundle "exec ruby script.rb" expect(err).to include(/ostruct was loaded from (.*) from Ruby 3.5.0/) - expect(err).to include(/script\.rb:1/) + expect(err).to include(/script\.rb:6/) end it "Show warning when bundle exec with shebang's script" do @@ -159,6 +165,7 @@ RSpec.describe "bundled_gems.rb" do code = <<-RUBY #!/usr/bin/env ruby + #{stub_code} require "ostruct" RUBY create_file("script.rb", code) @@ -168,12 +175,13 @@ RSpec.describe "bundled_gems.rb" do bundle "exec ./script.rb" expect(err).to include(/ostruct was loaded from (.*) from Ruby 3.5.0/) - expect(err).to include(/script\.rb:2/) + expect(err).to include(/script\.rb:7/) end it "Show warning when bundle exec with -r option" do + create_file("stub.rb", stub_code) create_file("Gemfile", "source 'https://rubygems.org'") - bundle "exec ruby -rostruct -e ''" + bundle "exec ruby -r./stub -rostruct -e ''" expect(err).to include(/ostruct was loaded from (.*) from Ruby 3.5.0/) end @@ -298,6 +306,7 @@ RSpec.describe "bundled_gems.rb" do it "Show warning with zeitwerk" do libpath = Dir[File.expand_path("../.bundle/gems/{zeitwerk}-*/lib", __dir__)].map(&:to_s).first code = <<-RUBY + #{stub_code} $LOAD_PATH.unshift("#{libpath}") require "zeitwerk" loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false) @@ -310,7 +319,7 @@ RSpec.describe "bundled_gems.rb" do bundle "exec ruby script.rb" expect(err).to include(/ostruct was loaded from (.*) from Ruby 3.5.0/) - expect(err).to include(/script\.rb:6/) + expect(err).to include(/script\.rb:11/) end it "Don't show warning fiddle/import when fiddle on Gemfile" do @@ -353,8 +362,9 @@ RSpec.describe "bundled_gems.rb" do end it "Don't show warning for reline when using irb from standard library" do + create_file("stub.rb", stub_code) create_file("Gemfile", "source 'https://rubygems.org'") - bundle "exec ruby -rirb -e ''" + bundle "exec ruby -r./stub -rirb -e ''" expect(err).to include(/irb was loaded from (.*) from Ruby 3.5.0/) expect(err).to_not include(/reline was loaded from (.*) from Ruby 3.5.0/) |