This repository has been archived by the owner on Mar 1, 2019. It is now read-only.
forked from cucumber/aruba
-
Notifications
You must be signed in to change notification settings - Fork 1
/
command_runtime_environment.feature
129 lines (97 loc) · 3.65 KB
/
command_runtime_environment.feature
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
Feature: Define default process environment
Say you want to have a default set of environment variables, then use this
code.
~~~ruby
Aruba.configure do |config|
config.command_runtime_environment = { 'MY_VARIABLE' => 'x' }
end
~~~
This can be changed via `#set_environment_variable`,
`#append_environment_variable`, `#delete_environment_variable` or
`#prepend_environment_variable`.
Background:
Given I use the fixture "cli-app"
Scenario: Overwrite existing variable with new default value
Given a file named "spec/environment_spec.rb" with:
"""ruby
require 'spec_helper'
ENV['LONG_LONG_VARIABLE'] = 'y'
Aruba.configure do |config|
config.command_runtime_environment = { 'LONG_LONG_VARIABLE' => 'x' }
end
RSpec.describe 'Environment command', :type => :aruba do
before(:each) { run('env') }
before(:each) { stop_all_commands }
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=x' }
end
"""
When I run `rspec`
Then the specs should all pass
Scenario: Overwrite default value for variable
Given a file named "spec/environment_spec.rb" with:
"""ruby
require 'spec_helper'
ENV['LONG_LONG_VARIABLE'] = 'y'
Aruba.configure do |config|
config.command_runtime_environment = { 'LONG_LONG_VARIABLE' => 'x' }
end
RSpec.describe 'Environment command', :type => :aruba do
before(:each) { set_environment_variable 'LONG_LONG_VARIABLE', 'z' }
before(:each) { run('env') }
before(:each) { stop_all_commands }
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=z' }
end
"""
When I run `rspec`
Then the specs should all pass
Scenario: Append value to default value
Given a file named "spec/environment_spec.rb" with:
"""ruby
require 'spec_helper'
ENV['LONG_LONG_VARIABLE'] = 'y'
Aruba.configure do |config|
config.command_runtime_environment = { 'LONG_LONG_VARIABLE' => 'x' }
end
RSpec.describe 'Environment command', :type => :aruba do
before(:each) { append_environment_variable 'LONG_LONG_VARIABLE', 'z' }
before(:each) { run('env') }
before(:each) { stop_all_commands }
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=xz' }
end
"""
When I run `rspec`
Then the specs should all pass
Scenario: Prepend value
Given a file named "spec/environment_spec.rb" with:
"""ruby
require 'spec_helper'
ENV['LONG_LONG_VARIABLE'] = 'y'
Aruba.configure do |config|
config.command_runtime_environment = { 'LONG_LONG_VARIABLE' => 'x' }
end
RSpec.describe 'Environment command', :type => :aruba do
before(:each) { prepend_environment_variable 'LONG_LONG_VARIABLE', 'z' }
before(:each) { run('env') }
before(:each) { stop_all_commands }
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=zx' }
end
"""
When I run `rspec`
Then the specs should all pass
Scenario: Remove variable from default set of variables
Given a file named "spec/environment_spec.rb" with:
"""ruby
require 'spec_helper'
ENV['LONG_LONG_VARIABLE'] = 'y'
Aruba.configure do |config|
config.command_runtime_environment = { 'LONG_LONG_VARIABLE' => 'x' }
end
RSpec.describe 'Environment command', :type => :aruba do
before(:each) { delete_environment_variable 'LONG_LONG_VARIABLE' }
before(:each) { run('env') }
before(:each) { stop_all_commands }
it { expect(last_command_started.output).not_to include 'LONG_LONG_VARIABLE' }
end
"""
When I run `rspec`
Then the specs should all pass