build_eval 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|