forked from fastlane/fastlane
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ensure_env_vars_spec.rb
93 lines (82 loc) 路 3.28 KB
/
ensure_env_vars_spec.rb
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
describe Fastlane do
describe Fastlane::FastFile do
describe 'ensure_env_vars' do
context 'when param is valid' do
before :each do
allow(FastlaneCore::UI).to receive(:success).with('Driving the lane \'test\' 馃殌')
end
context 'and env var is set' do
before :each do
allow(ENV).to receive(:[]).and_return('valid')
end
it 'outputs success message' do
expect(FastlaneCore::UI).to receive(:success).with('Environment variable \'FIRST\' is set!')
Fastlane::FastFile.new.parse('lane :test do
ensure_env_vars(env_vars: [\'FIRST\'])
end').runner.execute(:test)
end
end
context 'and env vars are set' do
before :each do
allow(ENV).to receive(:[]).and_return('valid')
end
it 'outputs success message' do
expect(FastlaneCore::UI).to receive(:success).with('Environment variables \'FIRST\', \'SECOND\' are set!')
Fastlane::FastFile.new.parse('lane :test do
ensure_env_vars(env_vars: [\'FIRST\', \'SECOND\'])
end').runner.execute(:test)
end
end
context 'and env var is not set' do
it 'outputs error message' do
expect do
Fastlane::FastFile.new.parse('lane :test do
ensure_env_vars(env_vars: [\'MISSING\'])
end').runner.execute(:test)
end.to raise_error(FastlaneCore::Interface::FastlaneError) do |error|
expect(error.message).to eq('Missing environment variable(s) \'MISSING\'')
end
end
end
context 'and multiple env vars are not set' do
it 'outputs error message' do
expect do
Fastlane::FastFile.new.parse('lane :test do
ensure_env_vars(env_vars: [\'MISSING_FIRST\', \'MISSING_SECOND\'])
end').runner.execute(:test)
end.to raise_error(FastlaneCore::Interface::FastlaneError) do |error|
expect(error.message).to eq('Missing environment variable(s) \'MISSING_FIRST\', \'MISSING_SECOND\'')
end
end
end
context 'and env var is empty' do
before :each do
allow(ENV).to receive(:[]).and_return(' ')
end
it 'outputs error message' do
expect do
Fastlane::FastFile.new.parse('lane :test do
ensure_env_vars(env_vars: [\'MISSING\'])
end').runner.execute(:test)
end.to raise_error(FastlaneCore::Interface::FastlaneError) do |error|
expect(error.message).to eq('Missing environment variable(s) \'MISSING\'')
end
end
end
end
context 'when param is not valid' do
context 'because no env var is passed' do
it 'outputs error message' do
expect do
Fastlane::FastFile.new.parse('lane :test do
ensure_env_vars(env_vars: [])
end').runner.execute(:test)
end.to raise_error(FastlaneCore::Interface::FastlaneError) do |error|
expect(error.message).to eq('Specify at least one environment variable name')
end
end
end
end
end
end
end