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
/
Copy pathstop.feature
131 lines (111 loc) · 3.12 KB
/
stop.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
130
131
Feature: Stop command
To stop commands via API you can do the following:
- `last_command_started.stop`
- `find_command('command').stop`
But normally there's no need to stop a command manually. All matchers
handling commands make sure, that they stop ALL command before check actual
against expected.
Background:
Given I use a fixture named "cli-app"
Scenario: Stop command started last
Given an executable named "bin/aruba-test-cli" with:
"""bash
#!/bin/bash
function term {
exit 0
}
trap term TERM
while [ true ]; do sleep 1; done
"""
And a file named "spec/run_spec.rb" with:
"""ruby
require 'spec_helper'
RSpec.describe 'Run command', :type => :aruba do
before(:each) { run('cli') }
before(:each) { last_command_started.stop }
it { expect(last_command_started).to be_successfully_executed }
end
"""
When I run `rspec`
Then the specs should all pass
Scenario: Find and stop command
Given an executable named "bin/aruba-test-cli" with:
"""bash
#!/bin/bash
function term {
exit 0
}
trap term TERM
while [ true ]; do sleep 1; done
"""
And a file named "spec/run_spec.rb" with:
"""ruby
require 'spec_helper'
RSpec.describe 'Run command', :type => :aruba do
before(:each) { run('cli') }
before(:each) { find_command('cli').stop }
it { expect(last_command_started).to be_successfully_executed }
end
"""
When I run `rspec`
Then the specs should all pass
Scenario: Stop successful command with configured signal
Given an executable named "bin/aruba-test-cli" with:
"""bash
#!/bin/bash
function hup {
echo "Exit..."
exit 0
}
function term {
echo "No! No exit here. Try HUP. I stop the command with exit 1."
exit 1
}
trap hup HUP
trap term TERM
while [ true ]; do sleep 1; done
"""
And a file named "spec/run_spec.rb" with:
"""ruby
require 'spec_helper'
Aruba.configure do |config|
config.stop_signal = 'HUP'
config.exit_timeout = 1
end
RSpec.describe 'Run command', :type => :aruba do
before(:each) { run('cli') }
it { expect(last_command_started).to be_successfully_executed }
end
"""
When I run `rspec`
Then the specs should all pass
Scenario: Stop unsuccessful command with configured signal
Given an executable named "bin/aruba-test-cli" with:
"""bash
#!/bin/bash
function hup {
echo "Exit..."
exit 2
}
function term {
echo "No! No exit here. Try HUP. I stop the command with exit 1."
exit 1
}
trap hup HUP
trap term TERM
while [ true ]; do sleep 1; done
"""
And a file named "spec/run_spec.rb" with:
"""ruby
require 'spec_helper'
Aruba.configure do |config|
config.stop_signal = 'HUP'
config.exit_timeout = 1
end
RSpec.describe 'Run command', :type => :aruba do
before(:each) { run('cli') }
it { expect(last_command_started).to have_exit_status 2 }
end
"""
When I run `rspec`
Then the specs should all pass