9e909d5be3
Update Bundler to 1.0.15. Update Rails to 2.3.12. Update rails_xss plugin. The latter two were the source of a considerable amount of grief, as rails_xss is now MUCH stricter about what string methods can be used. Also made it possible to use rake 0.9.x with Instiki. But you probably REALLY want to use ruby bundle exec rake ... instead of just saying rake ....
122 lines
2.5 KiB
Ruby
122 lines
2.5 KiB
Ruby
require "spec_helper"
|
|
|
|
describe "bundle update" do
|
|
before :each do
|
|
build_repo2
|
|
|
|
install_gemfile <<-G
|
|
source "file://#{gem_repo2}"
|
|
gem "activesupport"
|
|
gem "rack-obama"
|
|
G
|
|
end
|
|
|
|
describe "with no arguments" do
|
|
it "updates the entire bundle" do
|
|
update_repo2 do
|
|
build_gem "activesupport", "3.0"
|
|
end
|
|
|
|
bundle "update"
|
|
should_be_installed "rack 1.2", "rack-obama 1.0", "activesupport 3.0"
|
|
end
|
|
|
|
it "doesn't delete the Gemfile.lock file if something goes wrong" do
|
|
gemfile <<-G
|
|
source "file://#{gem_repo2}"
|
|
gem "activesupport"
|
|
gem "rack-obama"
|
|
exit!
|
|
G
|
|
bundle "update"
|
|
bundled_app("Gemfile.lock").should exist
|
|
end
|
|
end
|
|
|
|
describe "with a top level dependency" do
|
|
it "unlocks all child dependencies that are unrelated to other locked dependencies" do
|
|
update_repo2 do
|
|
build_gem "activesupport", "3.0"
|
|
end
|
|
|
|
bundle "update rack-obama"
|
|
should_be_installed "rack 1.2", "rack-obama 1.0", "activesupport 2.3.5"
|
|
end
|
|
end
|
|
|
|
describe "with --local option" do
|
|
it "doesn't hit repo2" do
|
|
FileUtils.rm_rf(gem_repo2)
|
|
|
|
bundle "update --local"
|
|
out.should_not match(/Fetching source index/)
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "bundle update in more complicated situations" do
|
|
before :each do
|
|
build_repo2
|
|
end
|
|
|
|
it "will eagerly unlock dependencies of a specified gem" do
|
|
install_gemfile <<-G
|
|
source "file://#{gem_repo2}"
|
|
|
|
gem "thin"
|
|
gem "rack-obama"
|
|
G
|
|
|
|
update_repo2 do
|
|
build_gem "thin" , '2.0' do |s|
|
|
s.add_dependency "rack"
|
|
end
|
|
end
|
|
|
|
bundle "update thin"
|
|
should_be_installed "thin 2.0", "rack 1.2", "rack-obama 1.0"
|
|
end
|
|
end
|
|
|
|
describe "bundle update without a Gemfile.lock" do
|
|
it "should not explode" do
|
|
build_repo2
|
|
|
|
gemfile <<-G
|
|
source "file://#{gem_repo2}"
|
|
|
|
gem "rack", "1.0"
|
|
G
|
|
|
|
bundle "update"
|
|
|
|
should_be_installed "rack 1.0.0"
|
|
end
|
|
end
|
|
|
|
describe "bundle update when a gem depends on a newer version of bundler" do
|
|
before(:each) do
|
|
build_repo2 do
|
|
build_gem "rails", "3.0.1" do |s|
|
|
s.add_dependency "bundler", Bundler::VERSION.succ
|
|
end
|
|
end
|
|
|
|
gemfile <<-G
|
|
source "file://#{gem_repo2}"
|
|
gem "rails", "3.0.1"
|
|
G
|
|
end
|
|
|
|
it "should not explode" do
|
|
bundle "update"
|
|
err.should be_empty
|
|
end
|
|
|
|
it "should explain that bundler conflicted" do
|
|
bundle "update"
|
|
out.should_not =~ /In snapshot/
|
|
out.should =~ /Current Bundler version/
|
|
end
|
|
end
|