blob: 100889bce71a499fab672145536eaaaaa5533efb (
plain)
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
require "spec_helper"
describe ".bundle/config" do
before :each do
gemfile <<-G
source "file://#{gem_repo1}"
gem "rack", "1.0.0"
G
end
describe "BUNDLE_APP_CONFIG" do
it "can be moved with an environment variable" do
ENV['BUNDLE_APP_CONFIG'] = tmp('foo/bar').to_s
bundle "install --path vendor/bundle"
expect(bundled_app('.bundle')).not_to exist
expect(tmp('foo/bar/config')).to exist
should_be_installed "rack 1.0.0"
end
it "can provide a relative path with the environment variable" do
FileUtils.mkdir_p bundled_app('omg')
Dir.chdir bundled_app('omg')
ENV['BUNDLE_APP_CONFIG'] = "../foo"
bundle "install --path vendor/bundle"
expect(bundled_app(".bundle")).not_to exist
expect(bundled_app("../foo/config")).to exist
should_be_installed "rack 1.0.0"
end
it "removes environment.rb from BUNDLE_APP_CONFIG's path" do
FileUtils.mkdir_p(tmp('foo/bar'))
ENV['BUNDLE_APP_CONFIG'] = tmp('foo/bar').to_s
bundle "install"
FileUtils.touch tmp('foo/bar/environment.rb')
should_be_installed "rack 1.0.0"
expect(tmp('foo/bar/environment.rb')).not_to exist
end
end
describe "global" do
before(:each) { bundle :install }
it "is the default" do
bundle "config foo global"
run "puts Bundler.settings[:foo]"
expect(out).to eq("global")
end
it "can also be set explicitly" do
bundle "config --global foo global"
run "puts Bundler.settings[:foo]"
expect(out).to eq("global")
end
it "has lower precedence than local" do
bundle "config --local foo local"
bundle "config --global foo global"
expect(out).to match(/Your application has set foo to "local"/)
run "puts Bundler.settings[:foo]"
expect(out).to eq("local")
end
it "has lower precedence than env" do
begin
ENV["BUNDLE_FOO"] = "env"
bundle "config --global foo global"
expect(out).to match(/You have a bundler environment variable for foo set to "env"/)
run "puts Bundler.settings[:foo]"
expect(out).to eq("env")
ensure
ENV.delete("BUNDLE_FOO")
end
end
it "can be deleted" do
bundle "config --global foo global"
bundle "config --delete foo"
run "puts Bundler.settings[:foo] == nil"
expect(out).to eq("true")
end
it "warns when overriding" do
bundle "config --global foo previous"
bundle "config --global foo global"
expect(out).to match(/You are replacing the current global value of foo/)
run "puts Bundler.settings[:foo]"
expect(out).to eq("global")
end
it "expands the path at time of setting" do
bundle "config --global local.foo .."
run "puts Bundler.settings['local.foo']"
expect(out).to eq(File.expand_path(Dir.pwd + "/.."))
end
end
describe "local" do
before(:each) { bundle :install }
it "can also be set explicitly" do
bundle "config --local foo local"
run "puts Bundler.settings[:foo]"
expect(out).to eq("local")
end
it "has higher precedence than env" do
begin
ENV["BUNDLE_FOO"] = "env"
bundle "config --local foo local"
run "puts Bundler.settings[:foo]"
expect(out).to eq("local")
ensure
ENV.delete("BUNDLE_FOO")
end
end
it "can be deleted" do
bundle "config --local foo local"
bundle "config --delete foo"
run "puts Bundler.settings[:foo] == nil"
expect(out).to eq("true")
end
it "warns when overriding" do
bundle "config --local foo previous"
bundle "config --local foo local"
expect(out).to match(/You are replacing the current local value of foo/)
run "puts Bundler.settings[:foo]"
expect(out).to eq("local")
end
it "expands the path at time of setting" do
bundle "config --local local.foo .."
run "puts Bundler.settings['local.foo']"
expect(out).to eq(File.expand_path(Dir.pwd + "/.."))
end
end
describe "env" do
before(:each) { bundle :install }
it "can set boolean properties via the environment" do
ENV["BUNDLE_FROZEN"] = "true"
run "if Bundler.settings[:frozen]; puts 'true' else puts 'false' end"
expect(out).to eq("true")
end
it "can set negative boolean properties via the environment" do
run "if Bundler.settings[:frozen]; puts 'true' else puts 'false' end"
expect(out).to eq("false")
ENV["BUNDLE_FROZEN"] = "false"
run "if Bundler.settings[:frozen]; puts 'true' else puts 'false' end"
expect(out).to eq("false")
ENV["BUNDLE_FROZEN"] = "0"
run "if Bundler.settings[:frozen]; puts 'true' else puts 'false' end"
expect(out).to eq("false")
ENV["BUNDLE_FROZEN"] = ""
run "if Bundler.settings[:frozen]; puts 'true' else puts 'false' end"
expect(out).to eq("false")
end
end
end
|