summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorAndre Arko <andre@arko.net>2013-10-19 17:07:42 -0700
committerAndre Arko <andre@arko.net>2013-10-19 17:18:18 -0700
commitc402caa94bd3394e1004b99ee70812a7e0f9b3fd (patch)
treebb3d5056fbb7f5bd93a7cc7a78c7cf4354e4e22c /spec
parent3940c747b87e2187616aa62558003bec6677d8ad (diff)
downloadbundler-c402caa94bd3394e1004b99ee70812a7e0f9b3fd.tar.gz
pull out some group specs
Diffstat (limited to 'spec')
-rw-r--r--spec/install/gems/groups_spec.rb413
-rw-r--r--spec/install/gems/simple_case_spec.rb58
2 files changed, 236 insertions, 235 deletions
diff --git a/spec/install/gems/groups_spec.rb b/spec/install/gems/groups_spec.rb
index 70b571ccbc..4321787c7b 100644
--- a/spec/install/gems/groups_spec.rb
+++ b/spec/install/gems/groups_spec.rb
@@ -1,249 +1,308 @@
require "spec_helper"
-describe "bundle install with gem sources" do
- describe "with groups" do
- describe "installing with no options" do
+describe "bundle install with groups" do
+
+ describe "installing with no options" do
+ before :each do
+ install_gemfile <<-G
+ source "file://#{gem_repo1}"
+ gem "rack"
+ group :emo do
+ gem "activesupport", "2.3.5"
+ end
+ gem "thin", :groups => [:emo]
+ G
+ end
+
+ it "installs gems in the default group" do
+ should_be_installed "rack 1.0.0"
+ end
+
+ it "installs gems in a group block into that group" do
+ should_be_installed "activesupport 2.3.5"
+
+ load_error_run <<-R, 'activesupport', :default
+ require 'activesupport'
+ puts ACTIVESUPPORT
+ R
+
+ expect(err).to eq("ZOMG LOAD ERROR")
+ end
+
+ it "installs gems with inline :groups into those groups" do
+ should_be_installed "thin 1.0"
+
+ load_error_run <<-R, 'thin', :default
+ require 'thin'
+ puts THIN
+ R
+
+ expect(err).to eq("ZOMG LOAD ERROR")
+ end
+
+ it "sets up everything if Bundler.setup is used with no groups" do
+ out = run("require 'rack'; puts RACK")
+ expect(out).to eq('1.0.0')
+
+ out = run("require 'activesupport'; puts ACTIVESUPPORT")
+ expect(out).to eq('2.3.5')
+
+ out = run("require 'thin'; puts THIN")
+ expect(out).to eq('1.0')
+ end
+
+ it "removes old groups when new groups are set up" do
+ load_error_run <<-RUBY, 'thin', :emo
+ Bundler.setup(:default)
+ require 'thin'
+ puts THIN
+ RUBY
+
+ expect(err).to eq("ZOMG LOAD ERROR")
+ end
+
+ it "sets up old groups when they have previously been removed" do
+ out = run <<-RUBY, :emo
+ Bundler.setup(:default)
+ Bundler.setup(:default, :emo)
+ require 'thin'; puts THIN
+ RUBY
+ expect(out).to eq('1.0')
+ end
+ end
+
+ describe "installing --without" do
+ describe "with gems assigned to a single group" do
before :each do
- install_gemfile <<-G
+ gemfile <<-G
source "file://#{gem_repo1}"
gem "rack"
group :emo do
gem "activesupport", "2.3.5"
end
- gem "thin", :groups => [:emo]
G
end
it "installs gems in the default group" do
- should_be_installed "rack 1.0.0"
+ bundle :install, :without => "emo"
+ should_be_installed "rack 1.0.0", :groups => [:default]
end
- it "installs gems in a group block into that group" do
- should_be_installed "activesupport 2.3.5"
+ it "does not install gems from the excluded group" do
+ bundle :install, :without => "emo"
+ should_not_be_installed "activesupport 2.3.5", :groups => [:default]
+ end
- load_error_run <<-R, 'activesupport', :default
- require 'activesupport'
- puts ACTIVESUPPORT
- R
+ it "does not install gems from the previously excluded group" do
+ bundle :install, :without => "emo"
+ should_not_be_installed "activesupport 2.3.5"
+ bundle :install
+ should_not_be_installed "activesupport 2.3.5"
+ end
- expect(err).to eq("ZOMG LOAD ERROR")
+ it "does not say it installed gems from the excluded group" do
+ bundle :install, :without => "emo"
+ expect(out).not_to include("activesupport")
end
- it "installs gems with inline :groups into those groups" do
- should_be_installed "thin 1.0"
+ it "allows Bundler.setup for specific groups" do
+ bundle :install, :without => "emo"
+ run("require 'rack'; puts RACK", :default)
+ expect(out).to eq('1.0.0')
+ end
- load_error_run <<-R, 'thin', :default
- require 'thin'
- puts THIN
- R
+ it "does not effect the resolve" do
+ gemfile <<-G
+ source "file://#{gem_repo1}"
+ gem "activesupport"
+ group :emo do
+ gem "rails", "2.3.2"
+ end
+ G
- expect(err).to eq("ZOMG LOAD ERROR")
+ bundle :install, :without => "emo"
+ should_be_installed "activesupport 2.3.2", :groups => [:default]
end
- it "sets up everything if Bundler.setup is used with no groups" do
- out = run("require 'rack'; puts RACK")
- expect(out).to eq('1.0.0')
+ it "still works on a different machine and excludes gems" do
+ bundle :install, :without => "emo"
- out = run("require 'activesupport'; puts ACTIVESUPPORT")
- expect(out).to eq('2.3.5')
+ simulate_new_machine
+ bundle :install, :without => "emo"
- out = run("require 'thin'; puts THIN")
- expect(out).to eq('1.0')
+ should_be_installed "rack 1.0.0", :groups => [:default]
+ should_not_be_installed "activesupport 2.3.5", :groups => [:default]
end
- it "removes old groups when new groups are set up" do
- load_error_run <<-RUBY, 'thin', :emo
- Bundler.setup(:default)
- require 'thin'
- puts THIN
- RUBY
+ it "still works when BUNDLE_WITHOUT is set" do
+ ENV["BUNDLE_WITHOUT"] = "emo"
- expect(err).to eq("ZOMG LOAD ERROR")
+ bundle :install
+ expect(out).not_to include("activesupport")
+
+ should_be_installed "rack 1.0.0", :groups => [:default]
+ should_not_be_installed "activesupport 2.3.5", :groups => [:default]
+
+ ENV["BUNDLE_WITHOUT"] = nil
end
- it "sets up old groups when they have previously been removed" do
- out = run <<-RUBY, :emo
- Bundler.setup(:default)
- Bundler.setup(:default, :emo)
- require 'thin'; puts THIN
- RUBY
- expect(out).to eq('1.0')
+ it "clears without when passed an empty list" do
+ bundle :install, :without => "emo"
+
+ bundle 'install --without ""'
+ should_be_installed "activesupport 2.3.5"
+ end
+
+ it "doesn't clear without when nothing is passed" do
+ bundle :install, :without => "emo"
+
+ bundle :install
+ should_not_be_installed "activesupport 2.3.5"
end
end
- describe "installing --without" do
- describe "with gems assigned to a single group" do
+ describe "with gems assigned to multiple groups" do
+ before :each do
+ gemfile <<-G
+ source "file://#{gem_repo1}"
+ gem "rack"
+ group :emo, :lolercoaster do
+ gem "activesupport", "2.3.5"
+ end
+ G
+ end
+
+ it "installs gems in the default group" do
+ bundle :install, :without => "emo lolercoaster"
+ should_be_installed "rack 1.0.0"
+ end
+
+ it "installs the gem if any of its groups are installed" do
+ bundle "install --without emo"
+ should_be_installed "rack 1.0.0", "activesupport 2.3.5"
+ end
+
+ describe "with a gem defined multiple times in different groups" do
before :each do
gemfile <<-G
source "file://#{gem_repo1}"
gem "rack"
+
group :emo do
gem "activesupport", "2.3.5"
end
- G
- end
-
- it "installs gems in the default group" do
- bundle :install, :without => "emo"
- should_be_installed "rack 1.0.0", :groups => [:default]
- end
-
- it "does not install gems from the excluded group" do
- bundle :install, :without => "emo"
- should_not_be_installed "activesupport 2.3.5", :groups => [:default]
- end
-
- it "does not install gems from the previously excluded group" do
- bundle :install, :without => "emo"
- should_not_be_installed "activesupport 2.3.5"
- bundle :install
- should_not_be_installed "activesupport 2.3.5"
- end
-
- it "does not say it installed gems from the excluded group" do
- bundle :install, :without => "emo"
- expect(out).not_to include("activesupport")
- end
- it "allows Bundler.setup for specific groups" do
- bundle :install, :without => "emo"
- run("require 'rack'; puts RACK", :default)
- expect(out).to eq('1.0.0')
- end
-
- it "does not effect the resolve" do
- gemfile <<-G
- source "file://#{gem_repo1}"
- gem "activesupport"
- group :emo do
- gem "rails", "2.3.2"
+ group :lolercoaster do
+ gem "activesupport", "2.3.5"
end
G
-
- bundle :install, :without => "emo"
- should_be_installed "activesupport 2.3.2", :groups => [:default]
end
- it "still works on a different machine and excludes gems" do
- bundle :install, :without => "emo"
-
- simulate_new_machine
- bundle :install, :without => "emo"
-
- should_be_installed "rack 1.0.0", :groups => [:default]
- should_not_be_installed "activesupport 2.3.5", :groups => [:default]
- end
-
- it "still works when BUNDLE_WITHOUT is set" do
- ENV["BUNDLE_WITHOUT"] = "emo"
-
- bundle :install
- expect(out).not_to include("activesupport")
-
- should_be_installed "rack 1.0.0", :groups => [:default]
- should_not_be_installed "activesupport 2.3.5", :groups => [:default]
-
- ENV["BUNDLE_WITHOUT"] = nil
+ it "installs the gem w/ option --without emo" do
+ bundle "install --without emo"
+ should_be_installed "activesupport 2.3.5"
end
- it "clears without when passed an empty list" do
- bundle :install, :without => "emo"
-
- bundle 'install --without ""'
+ it "installs the gem w/ option --without lolercoaster" do
+ bundle "install --without lolercoaster"
should_be_installed "activesupport 2.3.5"
end
- it "doesn't clear without when nothing is passed" do
- bundle :install, :without => "emo"
+ it "does not install the gem w/ option --without emo lolercoaster" do
+ bundle "install --without emo lolercoaster"
+ should_not_be_installed "activesupport 2.3.5"
+ end
- bundle :install
+ it "does not install the gem w/ option --without 'emo lolercoaster'" do
+ bundle "install --without 'emo lolercoaster'"
should_not_be_installed "activesupport 2.3.5"
end
end
+ end
- describe "with gems assigned to multiple groups" do
- before :each do
- gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack"
- group :emo, :lolercoaster do
+ describe "nesting groups" do
+ before :each do
+ gemfile <<-G
+ source "file://#{gem_repo1}"
+ gem "rack"
+ group :emo do
+ group :lolercoaster do
gem "activesupport", "2.3.5"
end
- G
- end
-
- it "installs gems in the default group" do
- bundle :install, :without => "emo lolercoaster"
- should_be_installed "rack 1.0.0"
- end
+ end
+ G
+ end
- it "installs the gem if any of its groups are installed" do
- bundle "install --without emo"
- should_be_installed "rack 1.0.0", "activesupport 2.3.5"
- end
+ it "installs gems in the default group" do
+ bundle :install, :without => "emo lolercoaster"
+ should_be_installed "rack 1.0.0"
+ end
- describe "with a gem defined multiple times in different groups" do
- before :each do
- gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack"
+ it "installs the gem if any of its groups are installed" do
+ bundle "install --without emo"
+ should_be_installed "rack 1.0.0", "activesupport 2.3.5"
+ end
- group :emo do
- gem "activesupport", "2.3.5"
- end
+ end
+ end
- group :lolercoaster do
- gem "activesupport", "2.3.5"
- end
- G
- end
+ describe "when loading only the default group" do
+ it "should not load all groups" do
+ install_gemfile <<-G
+ source "file://#{gem_repo1}"
+ gem "rack"
+ gem "activesupport", :groups => :development
+ G
+
+ ruby <<-R
+ require "bundler"
+ Bundler.setup :default
+ Bundler.require :default
+ puts RACK
+ begin
+ require "activesupport"
+ rescue LoadError
+ puts "no activesupport"
+ end
+ R
- it "installs the gem w/ option --without emo" do
- bundle "install --without emo"
- should_be_installed "activesupport 2.3.5"
- end
+ expect(out).to include("1.0")
+ expect(out).to include("no activesupport")
+ end
+ end
- it "installs the gem w/ option --without lolercoaster" do
- bundle "install --without lolercoaster"
- should_be_installed "activesupport 2.3.5"
- end
- it "does not install the gem w/ option --without emo lolercoaster" do
- bundle "install --without emo lolercoaster"
- should_not_be_installed "activesupport 2.3.5"
- end
+ describe "when locked and installed with --without" do
+ before(:each) do
+ build_repo2
+ system_gems "rack-0.9.1" do
+ install_gemfile <<-G, :without => :rack
+ source "file://#{gem_repo2}"
+ gem "rack"
- it "does not install the gem w/ option --without 'emo lolercoaster'" do
- bundle "install --without 'emo lolercoaster'"
- should_not_be_installed "activesupport 2.3.5"
+ group :rack do
+ gem "rack_middleware"
end
- end
+ G
end
+ end
- describe "nesting groups" do
- before :each do
- gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack"
- group :emo do
- group :lolercoaster do
- gem "activesupport", "2.3.5"
- end
- end
- G
- end
+ it "uses the correct versions even if --without was used on the original" do
+ should_be_installed "rack 0.9.1"
+ should_not_be_installed "rack_middleware 1.0"
+ simulate_new_machine
- it "installs gems in the default group" do
- bundle :install, :without => "emo lolercoaster"
- should_be_installed "rack 1.0.0"
- end
+ bundle :install
- it "installs the gem if any of its groups are installed" do
- bundle "install --without emo"
- should_be_installed "rack 1.0.0", "activesupport 2.3.5"
- end
+ should_be_installed "rack 0.9.1"
+ should_be_installed "rack_middleware 1.0"
+ end
- end
+ it "does not hit the remote a second time" do
+ FileUtils.rm_rf gem_repo2
+ bundle "install --without rack"
+ expect(err).to be_empty
end
end
-end
+
+end \ No newline at end of file
diff --git a/spec/install/gems/simple_case_spec.rb b/spec/install/gems/simple_case_spec.rb
index be81ada807..63a6d31289 100644
--- a/spec/install/gems/simple_case_spec.rb
+++ b/spec/install/gems/simple_case_spec.rb
@@ -397,31 +397,6 @@ describe "bundle install with gem sources" do
end
end
- describe "when loading only the default group" do
- it "should not load all groups" do
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack"
- gem "activesupport", :groups => :development
- G
-
- ruby <<-R
- require "bundler"
- Bundler.setup :default
- Bundler.require :default
- puts RACK
- begin
- require "activesupport"
- rescue LoadError
- puts "no activesupport"
- end
- R
-
- expect(out).to include("1.0")
- expect(out).to include("no activesupport")
- end
- end
-
describe "when a gem has a YAML gemspec" do
before :each do
build_repo2 do
@@ -589,39 +564,6 @@ describe "bundle install with gem sources" do
end
end
- describe "when locked and installed with --without" do
- before(:each) do
- build_repo2
- system_gems "rack-0.9.1" do
- install_gemfile <<-G, :without => :rack
- source "file://#{gem_repo2}"
- gem "rack"
-
- group :rack do
- gem "rack_middleware"
- end
- G
- end
- end
-
- it "uses the correct versions even if --without was used on the original" do
- should_be_installed "rack 0.9.1"
- should_not_be_installed "rack_middleware 1.0"
- simulate_new_machine
-
- bundle :install
-
- should_be_installed "rack 0.9.1"
- should_be_installed "rack_middleware 1.0"
- end
-
- it "does not hit the remote a second time" do
- FileUtils.rm_rf gem_repo2
- bundle "install --without rack"
- expect(err).to be_empty
- end
- end
-
describe "when system_bindir is set" do
# On OS X, Gem.bindir defaults to /usr/bin, so system_bindir is useful if
# you want to avoid sudo installs for system gems with OS X's default ruby