diff options
author | Samuel Giddins <segiddins@segiddins.me> | 2017-02-21 12:55:25 +1100 |
---|---|---|
committer | Samuel Giddins <segiddins@segiddins.me> | 2017-04-04 13:44:54 -0500 |
commit | f7b670b10a7f7909c6ae06afe176828e0708e5e4 (patch) | |
tree | 489a52a9f35cd1fee4e4866187285636c481ef1b | |
parent | 0d887b7f826d5b7384069477cdf0c7230dc09168 (diff) | |
download | bundler-f7b670b10a7f7909c6ae06afe176828e0708e5e4.tar.gz |
Add a spec for not activating any gems during Bundler.setup
-rw-r--r-- | spec/runtime/setup_spec.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/spec/runtime/setup_spec.rb b/spec/runtime/setup_spec.rb index be0c7a1593..e7b258460a 100644 --- a/spec/runtime/setup_spec.rb +++ b/spec/runtime/setup_spec.rb @@ -1132,6 +1132,49 @@ end RUBY expect(out).to eq("undefined\nconstant") end + + describe "default gem activation" do + let(:code) { strip_whitespace(<<-RUBY) } + require "rubygems" + Gem::Specification.send(:alias_method, :bundler_spec_activate, :activate) + Gem::Specification.send(:define_method, :activate) do + warn '-' * 80 + warn "activating \#{full_name}" + warn *caller + warn '*' * 80 + bundler_spec_activate + end + require "bundler/setup" + require "pp" + loaded_specs = Gem.loaded_specs.dup + loaded_specs.delete("bundler") + pp loaded_specs + RUBY + + it "activates no gems with -rbundler/setup" do + install_gemfile! "" + ruby!(code) + expect(err).to eq("") + expect(out).to eq("{}") + end + + it "activates no gems with bundle exec" do + install_gemfile! "" + create_file("script.rb", code) + bundle! "exec ruby ./script.rb" + expect(err).to eq("") + expect(out).to eq("{}") + end + + it "activates no gems with bundle exec that is loaded" do + install_gemfile! "" + create_file("script.rb", "#!/usr/bin/env ruby\n\n#{code}") + FileUtils.chmod(0o777, bundled_app("script.rb")) + bundle! "exec ./script.rb" + expect(err).to eq("") + expect(out).to eq("{}") + end + end end describe "after setup" do |