1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
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 "--quiet argument" do
it 'shows UI messages without --quiet argument' do
bundle "update"
out.should include("Fetching source")
end
it 'does not show UI messages with --quiet argument' do
bundle "update --quiet"
out.should_not include("Fetching source")
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/i
out.should =~ /current Bundler version/i
out.should =~ /perhaps you need to update bundler/i
end
end
|