summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2017-02-21 12:55:25 +1100
committerSamuel Giddins <segiddins@segiddins.me>2017-04-04 13:44:54 -0500
commitf7b670b10a7f7909c6ae06afe176828e0708e5e4 (patch)
tree489a52a9f35cd1fee4e4866187285636c481ef1b
parent0d887b7f826d5b7384069477cdf0c7230dc09168 (diff)
downloadbundler-f7b670b10a7f7909c6ae06afe176828e0708e5e4.tar.gz
Add a spec for not activating any gems during Bundler.setup
-rw-r--r--spec/runtime/setup_spec.rb43
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