build_eval 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/build_eval/error.rb +0 -4
- data/lib/build_eval/http.rb +1 -5
- data/lib/build_eval/monitor/base.rb +2 -6
- data/lib/build_eval/monitor/composite.rb +0 -4
- data/lib/build_eval/monitor/server.rb +0 -3
- data/lib/build_eval/result/build_result.rb +2 -8
- data/lib/build_eval/result/composite_result.rb +0 -4
- data/lib/build_eval/result/server_result.rb +0 -4
- data/lib/build_eval/result/status.rb +9 -17
- data/lib/build_eval/server/cruise_control_response.rb +2 -6
- data/lib/build_eval/server/decorator.rb +3 -9
- data/lib/build_eval/server/invalid_selector_error.rb +0 -4
- data/lib/build_eval/server/jenkins.rb +0 -4
- data/lib/build_eval/server/team_city.rb +2 -6
- data/lib/build_eval/server/travis_com.rb +23 -0
- data/lib/build_eval/server/travis_org.rb +22 -0
- data/lib/build_eval/version.rb +1 -1
- data/lib/build_eval.rb +7 -11
- data/spec/lib/build_eval/error_spec.rb +4 -8
- data/spec/lib/build_eval/http_shared_context.rb +2 -4
- data/spec/lib/build_eval/http_spec.rb +30 -50
- data/spec/lib/build_eval/monitor/base_spec.rb +3 -7
- data/spec/lib/build_eval/monitor/composite_spec.rb +5 -9
- data/spec/lib/build_eval/monitor/server_spec.rb +6 -10
- data/spec/lib/build_eval/result/build_result_spec.rb +19 -30
- data/spec/lib/build_eval/result/composite_result_spec.rb +10 -18
- data/spec/lib/build_eval/result/server_result_spec.rb +14 -26
- data/spec/lib/build_eval/result/status_spec.rb +35 -73
- data/spec/lib/build_eval/server/cruise_control_response_spec.rb +33 -41
- data/spec/lib/build_eval/server/decorator_spec.rb +17 -31
- data/spec/lib/build_eval/server/invalid_selector_error_spec.rb +7 -11
- data/spec/lib/build_eval/server/jenkins_integration_spec.rb +10 -15
- data/spec/lib/build_eval/server/jenkins_spec.rb +17 -24
- data/spec/lib/build_eval/server/server_shared_examples.rb +3 -7
- data/spec/lib/build_eval/server/team_city_integration_spec.rb +18 -27
- data/spec/lib/build_eval/server/team_city_spec.rb +13 -20
- data/spec/lib/build_eval/server/travis_com_spec.rb +91 -0
- data/spec/lib/build_eval/server/travis_org_spec.rb +71 -0
- data/spec/lib/build_eval_smoke_spec.rb +11 -10
- data/spec/lib/build_eval_spec.rb +8 -16
- data/spec/spec_helper.rb +4 -4
- metadata +33 -18
- data/lib/build_eval/server/travis.rb +0 -23
- data/spec/lib/build_eval/server/travis_integration_spec.rb +0 -53
- data/spec/lib/build_eval/server/travis_spec.rb +0 -70
@@ -1,12 +1,10 @@
|
|
1
1
|
describe BuildEval::Monitor::Composite do
|
2
|
-
|
3
2
|
let(:monitors) { (1..2).map { double(BuildEval::Monitor::Base) } }
|
4
3
|
|
5
4
|
let(:composite) { described_class.new(*monitors) }
|
6
5
|
|
7
|
-
describe
|
8
|
-
|
9
|
-
let(:results) { monitors.map { instance_double("BuildEval::Result") } }
|
6
|
+
describe '#evaluate' do
|
7
|
+
let(:results) { monitors.map { instance_double('BuildEval::Result') } }
|
10
8
|
|
11
9
|
subject { composite.evaluate }
|
12
10
|
|
@@ -14,25 +12,23 @@ describe BuildEval::Monitor::Composite do
|
|
14
12
|
monitors.zip(results) { |monitor, result| allow(monitor).to receive(:evaluate).and_return(result) }
|
15
13
|
end
|
16
14
|
|
17
|
-
it
|
15
|
+
it 'delegates to the monitors' do
|
18
16
|
monitors.each { |monitor| expect(monitor).to receive(:evaluate) }
|
19
17
|
|
20
18
|
subject
|
21
19
|
end
|
22
20
|
|
23
|
-
it
|
21
|
+
it 'creates a composite result containing the result of each monitor' do
|
24
22
|
expect(BuildEval::Result::CompositeResult).to receive(:new).with(results)
|
25
23
|
|
26
24
|
subject
|
27
25
|
end
|
28
26
|
|
29
|
-
it
|
27
|
+
it 'returns the composite result' do
|
30
28
|
composite_result = instance_double(BuildEval::Result::CompositeResult)
|
31
29
|
allow(BuildEval::Result::CompositeResult).to receive(:new).and_return(composite_result)
|
32
30
|
|
33
31
|
expect(subject).to eql(composite_result)
|
34
32
|
end
|
35
|
-
|
36
33
|
end
|
37
|
-
|
38
34
|
end
|
@@ -1,43 +1,39 @@
|
|
1
1
|
describe BuildEval::Monitor::Server do
|
2
|
-
|
3
|
-
let(:server) { double("BuildEval::Server") }
|
2
|
+
let(:server) { double('BuildEval::Server') }
|
4
3
|
let(:build_names) { (1..3).map { |i| "build##{i}" } }
|
5
4
|
|
6
5
|
let(:server_monitor) { described_class.new(server: server, build_names: build_names) }
|
7
6
|
|
8
|
-
describe
|
9
|
-
|
7
|
+
describe '#evaluate' do
|
10
8
|
let(:results) { build_names.map { instance_double(BuildEval::Result::BuildResult) } }
|
11
9
|
|
12
10
|
subject { server_monitor.evaluate }
|
13
11
|
|
14
12
|
before(:example) { allow(server).to receive(:build_result).and_return(*results) }
|
15
13
|
|
16
|
-
it
|
14
|
+
it 'determines build results for builds of interest' do
|
17
15
|
build_names.each { |build_name| expect(server).to receive(:build_result).with(build_name) }
|
18
16
|
|
19
17
|
subject
|
20
18
|
end
|
21
19
|
|
22
|
-
it
|
20
|
+
it 'composes a server result for the server' do
|
23
21
|
expect(BuildEval::Result::ServerResult).to receive(:new).with(server, anything)
|
24
22
|
|
25
23
|
subject
|
26
24
|
end
|
27
25
|
|
28
|
-
it
|
26
|
+
it 'composes a server result containing the results' do
|
29
27
|
expect(BuildEval::Result::ServerResult).to receive(:new).with(anything, results)
|
30
28
|
|
31
29
|
subject
|
32
30
|
end
|
33
31
|
|
34
|
-
it
|
32
|
+
it 'returns the server result' do
|
35
33
|
server_result = instance_double(BuildEval::Result::ServerResult)
|
36
34
|
expect(BuildEval::Result::ServerResult).to receive(:new).and_return(server_result)
|
37
35
|
|
38
36
|
expect(subject).to eql(server_result)
|
39
37
|
end
|
40
|
-
|
41
38
|
end
|
42
|
-
|
43
39
|
end
|
@@ -1,85 +1,74 @@
|
|
1
1
|
describe BuildEval::Result::BuildResult do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
let(:build_name) { "Some build name" }
|
6
|
-
let(:status_name) { "SUCCESS" }
|
2
|
+
describe '::create' do
|
3
|
+
let(:build_name) { 'Some build name' }
|
4
|
+
let(:status_name) { 'SUCCESS' }
|
7
5
|
|
8
6
|
subject { described_class.create(build_name: build_name, status_name: status_name) }
|
9
7
|
|
10
|
-
it
|
8
|
+
it 'returns a result with the provided build name' do
|
11
9
|
expect(subject.build_name).to eql(build_name)
|
12
|
-
|
13
10
|
end
|
14
11
|
|
15
|
-
it
|
12
|
+
it 'determines the status with the provided status name' do
|
16
13
|
expect(BuildEval::Result::Status).to receive(:find).with(status_name)
|
17
14
|
|
18
15
|
subject
|
19
16
|
end
|
20
17
|
|
21
|
-
it
|
18
|
+
it 'returns a result with the determined status' do
|
22
19
|
status = BuildEval::Result::Status::UNKNOWN
|
23
20
|
allow(BuildEval::Result::Status).to receive(:find).and_return(status)
|
24
21
|
|
25
22
|
expect(subject.status).to eql(status)
|
26
23
|
end
|
27
|
-
|
28
24
|
end
|
29
25
|
|
30
|
-
describe
|
31
|
-
|
32
|
-
let(:build_name) { "Some build name" }
|
26
|
+
describe '::indeterminate' do
|
27
|
+
let(:build_name) { 'Some build name' }
|
33
28
|
|
34
29
|
subject { described_class.indeterminate(build_name) }
|
35
30
|
|
36
|
-
it
|
31
|
+
it 'returns a result with the provided build name' do
|
37
32
|
expect(subject.build_name).to eql(build_name)
|
38
33
|
end
|
39
34
|
|
40
|
-
it
|
35
|
+
it 'returns a result with an indeterminate status' do
|
41
36
|
expect(subject.status).to eql(BuildEval::Result::Status::INDETERMINATE)
|
42
37
|
end
|
43
|
-
|
44
38
|
end
|
45
39
|
|
46
|
-
describe
|
47
|
-
|
40
|
+
describe '#unsuccessful?' do
|
48
41
|
let(:status) { instance_double(BuildEval::Result::Status) }
|
49
|
-
let(:build_result) { described_class.create(build_name:
|
42
|
+
let(:build_result) { described_class.create(build_name: 'some build', status_name: 'some status') }
|
50
43
|
|
51
44
|
subject { build_result.unsuccessful? }
|
52
45
|
|
53
46
|
before(:example) { allow(BuildEval::Result::Status).to receive(:find).and_return(status) }
|
54
47
|
|
55
|
-
it
|
48
|
+
it 'delegates to the underlying status' do
|
56
49
|
allow(status).to receive(:unsuccessful?).and_return(true)
|
57
50
|
|
58
51
|
expect(subject).to be(true)
|
59
52
|
end
|
60
|
-
|
61
53
|
end
|
62
54
|
|
63
|
-
describe
|
64
|
-
|
65
|
-
let(:
|
66
|
-
let(:status_string_representation) { "SUCCESS" }
|
55
|
+
describe '#to_s' do
|
56
|
+
let(:build_name) { 'Some build name' }
|
57
|
+
let(:status_string_representation) { 'SUCCESS' }
|
67
58
|
let(:status) { instance_double(BuildEval::Result::Status, to_s: status_string_representation) }
|
68
59
|
|
69
|
-
let(:build_result) { described_class.create(build_name: build_name, status_name:
|
60
|
+
let(:build_result) { described_class.create(build_name: build_name, status_name: 'some status') }
|
70
61
|
|
71
62
|
subject { build_result.to_s }
|
72
63
|
|
73
64
|
before(:example) { allow(BuildEval::Result::Status).to receive(:find).and_return(status) }
|
74
65
|
|
75
|
-
it
|
66
|
+
it 'contains the name of the build' do
|
76
67
|
expect(subject).to include(build_name)
|
77
68
|
end
|
78
69
|
|
79
|
-
it
|
70
|
+
it 'contains the string representation of the status' do
|
80
71
|
expect(subject).to include(status_string_representation)
|
81
72
|
end
|
82
|
-
|
83
73
|
end
|
84
|
-
|
85
74
|
end
|
@@ -1,11 +1,9 @@
|
|
1
1
|
describe BuildEval::Result::CompositeResult do
|
2
|
-
|
3
|
-
let(:results) { (1..2).map { double("BuildEval::Result") } }
|
2
|
+
let(:results) { (1..2).map { double('BuildEval::Result') } }
|
4
3
|
|
5
4
|
let(:composite_result) { described_class.new(results) }
|
6
5
|
|
7
|
-
describe
|
8
|
-
|
6
|
+
describe '#status' do
|
9
7
|
let(:statuses) { results.map { instance_double(BuildEval::Result::Status) } }
|
10
8
|
|
11
9
|
subject { composite_result.status }
|
@@ -16,29 +14,27 @@ describe BuildEval::Result::CompositeResult do
|
|
16
14
|
|
17
15
|
before(:example) { allow(BuildEval::Result::Status).to receive(:effective_status) }
|
18
16
|
|
19
|
-
it
|
17
|
+
it 'determines the status of the results' do
|
20
18
|
results.each { |underlying_array| expect(underlying_array).to receive(:status) }
|
21
19
|
|
22
20
|
subject
|
23
21
|
end
|
24
22
|
|
25
|
-
it
|
23
|
+
it 'determines the effective status of the result statuses' do
|
26
24
|
expect(BuildEval::Result::Status).to receive(:effective_status).with(statuses)
|
27
25
|
|
28
26
|
subject
|
29
27
|
end
|
30
28
|
|
31
|
-
it
|
29
|
+
it 'returns the effective status' do
|
32
30
|
effective_status = instance_double(BuildEval::Result::Status)
|
33
31
|
allow(BuildEval::Result::Status).to receive(:effective_status).and_return(effective_status)
|
34
32
|
|
35
33
|
expect(subject).to eql(effective_status)
|
36
34
|
end
|
37
|
-
|
38
35
|
end
|
39
36
|
|
40
|
-
describe
|
41
|
-
|
37
|
+
describe '#unsuccessful' do
|
42
38
|
let(:unsuccessful_builds_array) { results.map { (1..3).map { instance_double(BuildEval::Result::BuildResult) } } }
|
43
39
|
|
44
40
|
subject { composite_result.unsuccessful }
|
@@ -49,20 +45,18 @@ describe BuildEval::Result::CompositeResult do
|
|
49
45
|
end
|
50
46
|
end
|
51
47
|
|
52
|
-
it
|
48
|
+
it 'determines the unsuccessful builds from the results' do
|
53
49
|
results.each { |result| expect(result).to receive(:unsuccessful) }
|
54
50
|
|
55
51
|
subject
|
56
52
|
end
|
57
53
|
|
58
|
-
it
|
54
|
+
it 'returns all unsuccessful builds' do
|
59
55
|
expect(subject).to eql(unsuccessful_builds_array.flatten)
|
60
56
|
end
|
61
|
-
|
62
57
|
end
|
63
58
|
|
64
|
-
describe
|
65
|
-
|
59
|
+
describe '#to_s' do
|
66
60
|
let(:results_string_representations) { (1..results.length).map { |i| "Result #{i}" } }
|
67
61
|
|
68
62
|
subject { composite_result.to_s }
|
@@ -73,12 +67,10 @@ describe BuildEval::Result::CompositeResult do
|
|
73
67
|
end
|
74
68
|
end
|
75
69
|
|
76
|
-
it
|
70
|
+
it 'returns a string containing the string representation of each result' do
|
77
71
|
results_string_representations.each do |string_representation|
|
78
72
|
expect(subject).to include(string_representation)
|
79
73
|
end
|
80
74
|
end
|
81
|
-
|
82
75
|
end
|
83
|
-
|
84
76
|
end
|
@@ -1,12 +1,10 @@
|
|
1
1
|
describe BuildEval::Result::ServerResult do
|
2
|
-
|
3
|
-
let(:server) { double("BuildEval::Server") }
|
2
|
+
let(:server) { double('BuildEval::Server') }
|
4
3
|
let(:build_results) { (1..3).map { instance_double(BuildEval::Result::BuildResult) } }
|
5
4
|
|
6
5
|
let(:server_result) { described_class.new(server, build_results) }
|
7
6
|
|
8
|
-
describe
|
9
|
-
|
7
|
+
describe '#status' do
|
10
8
|
let(:statuses) { build_results.map { instance_double(BuildEval::Result::Status) } }
|
11
9
|
|
12
10
|
subject { server_result.status }
|
@@ -17,23 +15,21 @@ describe BuildEval::Result::ServerResult do
|
|
17
15
|
end
|
18
16
|
end
|
19
17
|
|
20
|
-
it
|
18
|
+
it 'determines the effective status of the build results' do
|
21
19
|
expect(BuildEval::Result::Status).to receive(:effective_status).with(statuses)
|
22
20
|
|
23
21
|
subject
|
24
22
|
end
|
25
23
|
|
26
|
-
it
|
24
|
+
it 'returns the effective status' do
|
27
25
|
status = instance_double(BuildEval::Result::Status)
|
28
26
|
allow(BuildEval::Result::Status).to receive(:effective_status).and_return(status)
|
29
27
|
|
30
28
|
expect(subject).to be(status)
|
31
29
|
end
|
32
|
-
|
33
30
|
end
|
34
31
|
|
35
|
-
describe
|
36
|
-
|
32
|
+
describe '#unsuccessful' do
|
37
33
|
subject { server_result.unsuccessful }
|
38
34
|
|
39
35
|
before(:example) do
|
@@ -42,31 +38,25 @@ describe BuildEval::Result::ServerResult do
|
|
42
38
|
end
|
43
39
|
end
|
44
40
|
|
45
|
-
context
|
46
|
-
|
47
|
-
let(:unsuccessful_results) { [ build_results[0], build_results[2] ] }
|
41
|
+
context 'when some build results are unsuccessful' do
|
42
|
+
let(:unsuccessful_results) { [build_results[0], build_results[2]] }
|
48
43
|
|
49
|
-
it
|
44
|
+
it 'returns the unsuccessful build results' do
|
50
45
|
expect(subject).to eql(unsuccessful_results)
|
51
46
|
end
|
52
|
-
|
53
47
|
end
|
54
48
|
|
55
|
-
context
|
56
|
-
|
49
|
+
context 'when no build results are unsuccessful' do
|
57
50
|
let(:unsuccessful_results) { [] }
|
58
51
|
|
59
|
-
it
|
52
|
+
it 'returns an empty array' do
|
60
53
|
expect(subject).to eql([])
|
61
54
|
end
|
62
|
-
|
63
55
|
end
|
64
|
-
|
65
56
|
end
|
66
57
|
|
67
|
-
describe
|
68
|
-
|
69
|
-
let(:server_string_representation) { "Server description" }
|
58
|
+
describe '#to_s' do
|
59
|
+
let(:server_string_representation) { 'Server description' }
|
70
60
|
let(:result_string_representations) { build_results.each_with_index.map { |_, i| "Build result ##{i}" } }
|
71
61
|
|
72
62
|
subject { server_result.to_s }
|
@@ -79,14 +69,12 @@ describe BuildEval::Result::ServerResult do
|
|
79
69
|
end
|
80
70
|
end
|
81
71
|
|
82
|
-
it
|
72
|
+
it 'contains the string representation of the server' do
|
83
73
|
expect(subject).to include(server_string_representation)
|
84
74
|
end
|
85
75
|
|
86
|
-
it
|
76
|
+
it 'contains the string representation of each result' do
|
87
77
|
result_string_representations.each { |string| expect(subject).to include(string) }
|
88
78
|
end
|
89
|
-
|
90
79
|
end
|
91
|
-
|
92
80
|
end
|
@@ -1,57 +1,44 @@
|
|
1
1
|
describe BuildEval::Result::Status do
|
2
|
-
|
3
|
-
describe "::find" do
|
4
|
-
|
2
|
+
describe '::find' do
|
5
3
|
subject { described_class.find(name) }
|
6
4
|
|
7
|
-
context
|
8
|
-
|
9
|
-
let(:name) { "UNKNOWN" }
|
5
|
+
context 'when the name exactly matches a status constant name' do
|
6
|
+
let(:name) { 'UNKNOWN' }
|
10
7
|
|
11
|
-
it
|
8
|
+
it 'returns the constant' do
|
12
9
|
expect(subject).to be(BuildEval::Result::Status::UNKNOWN)
|
13
10
|
end
|
14
|
-
|
15
11
|
end
|
16
12
|
|
17
|
-
context
|
18
|
-
|
19
|
-
let(:name) { "Success" }
|
13
|
+
context 'when the name matches a status constant name with different casing' do
|
14
|
+
let(:name) { 'Success' }
|
20
15
|
|
21
|
-
it
|
16
|
+
it 'returns the constant' do
|
22
17
|
expect(subject).to be(BuildEval::Result::Status::SUCCESS)
|
23
18
|
end
|
24
|
-
|
25
19
|
end
|
26
20
|
|
27
|
-
context
|
28
|
-
|
29
|
-
let(:name) { "does_not_match" }
|
21
|
+
context 'when the name is completely different from a status constant name' do
|
22
|
+
let(:name) { 'does_not_match' }
|
30
23
|
|
31
|
-
it
|
24
|
+
it 'raises an error indicating the name is invalid' do
|
32
25
|
expect { subject }.to raise_error("Build status '#{name}' is invalid")
|
33
26
|
end
|
34
|
-
|
35
27
|
end
|
36
|
-
|
37
28
|
end
|
38
29
|
|
39
|
-
describe
|
40
|
-
|
30
|
+
describe '::effective_status' do
|
41
31
|
subject { described_class.effective_status(statuses) }
|
42
32
|
|
43
|
-
context
|
33
|
+
context 'when a single status is provided' do
|
34
|
+
let(:statuses) { [BuildEval::Result::Status::UNKNOWN] }
|
44
35
|
|
45
|
-
|
46
|
-
|
47
|
-
it "returns the status" do
|
36
|
+
it 'returns the status' do
|
48
37
|
expect(subject).to eql(BuildEval::Result::Status::UNKNOWN)
|
49
38
|
end
|
50
|
-
|
51
39
|
end
|
52
40
|
|
53
|
-
context
|
54
|
-
|
41
|
+
context 'when the statuses are ordered in ascending severity' do
|
55
42
|
let(:statuses) do
|
56
43
|
[
|
57
44
|
BuildEval::Result::Status::ERROR,
|
@@ -62,14 +49,12 @@ describe BuildEval::Result::Status do
|
|
62
49
|
]
|
63
50
|
end
|
64
51
|
|
65
|
-
it
|
52
|
+
it 'returns the most severe status' do
|
66
53
|
expect(subject).to eql(BuildEval::Result::Status::ERROR)
|
67
54
|
end
|
68
|
-
|
69
55
|
end
|
70
56
|
|
71
|
-
context
|
72
|
-
|
57
|
+
context 'when the statuses are ordered in descending severity' do
|
73
58
|
let(:statuses) do
|
74
59
|
[
|
75
60
|
BuildEval::Result::Status::SUCCESS,
|
@@ -80,51 +65,40 @@ describe BuildEval::Result::Status do
|
|
80
65
|
]
|
81
66
|
end
|
82
67
|
|
83
|
-
it
|
68
|
+
it 'returns the most severe status' do
|
84
69
|
expect(subject).to eql(BuildEval::Result::Status::ERROR)
|
85
70
|
end
|
86
|
-
|
87
71
|
end
|
88
|
-
|
89
72
|
end
|
90
73
|
|
91
|
-
describe
|
92
|
-
|
74
|
+
describe '#unsuccessful?' do
|
93
75
|
subject { status.unsuccessful? }
|
94
76
|
|
95
|
-
context
|
96
|
-
|
77
|
+
context 'when the status is SUCCESS' do
|
97
78
|
let(:status) { BuildEval::Result::Status::SUCCESS }
|
98
79
|
|
99
|
-
it
|
80
|
+
it 'returns false' do
|
100
81
|
expect(subject).to be(false)
|
101
82
|
end
|
102
|
-
|
103
83
|
end
|
104
84
|
|
105
85
|
{
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
86
|
+
'UNKNOWN' => BuildEval::Result::Status::UNKNOWN,
|
87
|
+
'FAILURE' => BuildEval::Result::Status::FAILURE,
|
88
|
+
'ERROR' => BuildEval::Result::Status::ERROR,
|
89
|
+
'INDETERMINATE' => BuildEval::Result::Status::INDETERMINATE
|
110
90
|
}.each do |name, status|
|
111
|
-
|
112
91
|
context "when the status is #{name}" do
|
113
|
-
|
114
92
|
let(:status) { status }
|
115
93
|
|
116
|
-
it
|
94
|
+
it 'returns true' do
|
117
95
|
expect(subject).to be(true)
|
118
96
|
end
|
119
|
-
|
120
97
|
end
|
121
|
-
|
122
98
|
end
|
123
|
-
|
124
99
|
end
|
125
100
|
|
126
|
-
describe
|
127
|
-
|
101
|
+
describe '#to_sym' do
|
128
102
|
subject { status.to_sym }
|
129
103
|
|
130
104
|
{
|
@@ -134,45 +108,33 @@ describe BuildEval::Result::Status do
|
|
134
108
|
FAILURE: :failure!,
|
135
109
|
ERROR: :failure!
|
136
110
|
}.each do |name, expected_symbol|
|
137
|
-
|
138
111
|
context "when the status is #{name}" do
|
139
|
-
|
140
112
|
let(:status) { BuildEval::Result::Status.const_get(name) }
|
141
113
|
|
142
|
-
it
|
114
|
+
it 'returns success!' do
|
143
115
|
expect(subject).to eql(expected_symbol)
|
144
116
|
end
|
145
|
-
|
146
117
|
end
|
147
|
-
|
148
118
|
end
|
149
|
-
|
150
119
|
end
|
151
120
|
|
152
|
-
describe
|
153
|
-
|
121
|
+
describe '#to_s' do
|
154
122
|
subject { status.to_s }
|
155
123
|
|
156
124
|
{
|
157
|
-
SUCCESS:
|
158
|
-
UNKNOWN:
|
159
|
-
INDETERMINATE:
|
160
|
-
FAILURE:
|
161
|
-
ERROR:
|
125
|
+
SUCCESS: 'succeeded',
|
126
|
+
UNKNOWN: 'unknown',
|
127
|
+
INDETERMINATE: 'indeterminate',
|
128
|
+
FAILURE: 'failed',
|
129
|
+
ERROR: 'errored'
|
162
130
|
}.each do |name, expected_string|
|
163
|
-
|
164
131
|
context "when the status is #{name}" do
|
165
|
-
|
166
132
|
let(:status) { BuildEval::Result::Status.const_get(name) }
|
167
133
|
|
168
|
-
it
|
134
|
+
it 'returns success!' do
|
169
135
|
expect(subject).to eql(expected_string)
|
170
136
|
end
|
171
|
-
|
172
137
|
end
|
173
|
-
|
174
138
|
end
|
175
|
-
|
176
139
|
end
|
177
|
-
|
178
140
|
end
|