Port test_warn_zeitwerk.rb to RSpec example

This commit is contained in:
Hiroshi SHIBATA 2024-11-15 15:13:51 +09:00
parent 5bd0dfbf2e
commit a6f25023ac
Notes: git 2024-11-15 08:50:46 +00:00
6 changed files with 22 additions and 24 deletions

View File

@ -223,6 +223,25 @@ RSpec.describe "bundled_gems.rb" do
# $GEM_HOME/gems/childprocess-5.0.0/lib/childprocess.rb:7: warning:
end
it "Show warning with zeitwerk" do
libpath = Dir[Spec::Path.base_system_gem_path.join("gems/{zeitwerk}-*/lib")].map(&:to_s).first
code = <<-RUBY
$LOAD_PATH.unshift("#{libpath}")
require "zeitwerk"
loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
loader.setup
require 'ostruct'
RUBY
create_file("script.rb", code)
create_file("Gemfile", "source 'https://rubygems.org'")
bundle "exec ruby script.rb"
expect(err).to include(/ostruct was loaded from (.*) from Ruby 3.5.0/)
# TODO: We should assert caller location like below:
# test_warn_zeitwerk.rb:15: warning: ...
end
it "Don't show warning fiddle/import when fiddle on Gemfile" do
build_lib "fiddle", "1.0.0" do |s|
s.write "lib/fiddle.rb", "puts 'fiddle'"

View File

@ -13,3 +13,6 @@ gem "rake", "~> 13.1"
gem "builder", "~> 3.2"
gem "rb_sys"
gem "rubygems-generate_index", "~> 1.1"
# for bundled_gems_spec.rb
gem "zeitwerk", "~> 2.7"

View File

@ -1 +0,0 @@
tmp

View File

@ -1,3 +0,0 @@
This directory contains tests for the bundled gems warning under the Bundler.
see [test.sh](./test.sh) for details.

View File

@ -1,5 +0,0 @@
#!/bin/bash
echo "* Show warning with zeitwerk"
ruby test_warn_zeitwerk.rb
echo

View File

@ -1,15 +0,0 @@
require "bundler"
Bundler::Definition.no_lock = true
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "zeitwerk", require: false
end
require "zeitwerk"
loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
loader.setup
require 'csv'