Port test_warn_zeitwerk.rb to RSpec example
This commit is contained in:
parent
5bd0dfbf2e
commit
a6f25023ac
Notes:
git
2024-11-15 08:50:46 +00:00
@ -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'"
|
||||
|
@ -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"
|
1
tool/test_for_warn_bundled_gems/.gitignore
vendored
1
tool/test_for_warn_bundled_gems/.gitignore
vendored
@ -1 +0,0 @@
|
||||
tmp
|
@ -1,3 +0,0 @@
|
||||
This directory contains tests for the bundled gems warning under the Bundler.
|
||||
|
||||
see [test.sh](./test.sh) for details.
|
@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "* Show warning with zeitwerk"
|
||||
ruby test_warn_zeitwerk.rb
|
||||
echo
|
@ -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'
|
Loading…
x
Reference in New Issue
Block a user