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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/lib/build_eval/error.rb +0 -4
  3. data/lib/build_eval/http.rb +1 -5
  4. data/lib/build_eval/monitor/base.rb +2 -6
  5. data/lib/build_eval/monitor/composite.rb +0 -4
  6. data/lib/build_eval/monitor/server.rb +0 -3
  7. data/lib/build_eval/result/build_result.rb +2 -8
  8. data/lib/build_eval/result/composite_result.rb +0 -4
  9. data/lib/build_eval/result/server_result.rb +0 -4
  10. data/lib/build_eval/result/status.rb +9 -17
  11. data/lib/build_eval/server/cruise_control_response.rb +2 -6
  12. data/lib/build_eval/server/decorator.rb +3 -9
  13. data/lib/build_eval/server/invalid_selector_error.rb +0 -4
  14. data/lib/build_eval/server/jenkins.rb +0 -4
  15. data/lib/build_eval/server/team_city.rb +2 -6
  16. data/lib/build_eval/server/travis_com.rb +23 -0
  17. data/lib/build_eval/server/travis_org.rb +22 -0
  18. data/lib/build_eval/version.rb +1 -1
  19. data/lib/build_eval.rb +7 -11
  20. data/spec/lib/build_eval/error_spec.rb +4 -8
  21. data/spec/lib/build_eval/http_shared_context.rb +2 -4
  22. data/spec/lib/build_eval/http_spec.rb +30 -50
  23. data/spec/lib/build_eval/monitor/base_spec.rb +3 -7
  24. data/spec/lib/build_eval/monitor/composite_spec.rb +5 -9
  25. data/spec/lib/build_eval/monitor/server_spec.rb +6 -10
  26. data/spec/lib/build_eval/result/build_result_spec.rb +19 -30
  27. data/spec/lib/build_eval/result/composite_result_spec.rb +10 -18
  28. data/spec/lib/build_eval/result/server_result_spec.rb +14 -26
  29. data/spec/lib/build_eval/result/status_spec.rb +35 -73
  30. data/spec/lib/build_eval/server/cruise_control_response_spec.rb +33 -41
  31. data/spec/lib/build_eval/server/decorator_spec.rb +17 -31
  32. data/spec/lib/build_eval/server/invalid_selector_error_spec.rb +7 -11
  33. data/spec/lib/build_eval/server/jenkins_integration_spec.rb +10 -15
  34. data/spec/lib/build_eval/server/jenkins_spec.rb +17 -24
  35. data/spec/lib/build_eval/server/server_shared_examples.rb +3 -7
  36. data/spec/lib/build_eval/server/team_city_integration_spec.rb +18 -27
  37. data/spec/lib/build_eval/server/team_city_spec.rb +13 -20
  38. data/spec/lib/build_eval/server/travis_com_spec.rb +91 -0
  39. data/spec/lib/build_eval/server/travis_org_spec.rb +71 -0
  40. data/spec/lib/build_eval_smoke_spec.rb +11 -10
  41. data/spec/lib/build_eval_spec.rb +8 -16
  42. data/spec/spec_helper.rb +4 -4
  43. metadata +33 -18
  44. data/lib/build_eval/server/travis.rb +0 -23
  45. data/spec/lib/build_eval/server/travis_integration_spec.rb +0 -53
  46. data/spec/lib/build_eval/server/travis_spec.rb +0 -70
@@ -1,20 +1,17 @@
1
1
  describe BuildEval::Server::CruiseControlResponse do
2
-
3
- let(:raw_response) { double("RawResponse", body: response_body) }
2
+ let(:raw_response) { double('RawResponse', body: response_body) }
4
3
 
5
4
  let(:cruise_control_response) { described_class.new(raw_response) }
6
5
 
7
- describe "#parse_result" do
8
-
9
- let(:build_name) { "some_build_name" }
6
+ describe '#parse_result' do
7
+ let(:build_name) { 'some_build_name' }
10
8
  let(:response_build_name) { build_name }
11
- let(:project_selector) { "//Project[2]" }
9
+ let(:project_selector) { '//Project[2]' }
12
10
 
13
11
  subject { cruise_control_response.parse_result(project_selector) }
14
12
 
15
- context "when the response is successful, containing projects" do
16
-
17
- let(:latest_build_status) { "Success" }
13
+ context 'when the response is successful, containing projects' do
14
+ let(:latest_build_status) { 'Success' }
18
15
  let(:response_body) do
19
16
  <<-RESPONSE
20
17
  <Projects>
@@ -25,31 +22,26 @@ describe BuildEval::Server::CruiseControlResponse do
25
22
  RESPONSE
26
23
  end
27
24
 
28
- context "and the selector matches a project" do
29
-
30
- context "and the build name in the response is not a path" do
31
-
32
- it "creates a build result with the build name from the response" do
25
+ context 'and the selector matches a project' do
26
+ context 'and the build name in the response is not a path' do
27
+ it 'creates a build result with the build name from the response' do
33
28
  expect(BuildEval::Result::BuildResult).to receive(:create).with(hash_including(build_name: build_name))
34
29
 
35
30
  subject
36
31
  end
37
-
38
32
  end
39
33
 
40
- context "and the build name in the response is a path" do
41
-
34
+ context 'and the build name in the response is a path' do
42
35
  let(:response_build_name) { "some/path/to/#{build_name}" }
43
36
 
44
- it "creates a build result with the build name from the response with the path omitted" do
37
+ it 'creates a build result with the build name from the response with the path omitted' do
45
38
  expect(BuildEval::Result::BuildResult).to receive(:create).with(hash_including(build_name: build_name))
46
39
 
47
40
  subject
48
41
  end
49
-
50
42
  end
51
43
 
52
- it "creates a build result containing the latest build status" do
44
+ it 'creates a build result containing the latest build status' do
53
45
  expect(BuildEval::Result::BuildResult).to(
54
46
  receive(:create).with(hash_including(status_name: latest_build_status))
55
47
  )
@@ -57,59 +49,59 @@ describe BuildEval::Server::CruiseControlResponse do
57
49
  subject
58
50
  end
59
51
 
60
- it "returns the created result" do
52
+ it 'returns the created result' do
61
53
  build_result = instance_double(BuildEval::Result::BuildResult)
62
54
  allow(BuildEval::Result::BuildResult).to receive(:create).and_return(build_result)
63
55
 
64
56
  expect(subject).to eql(build_result)
65
57
  end
66
-
67
58
  end
68
59
 
69
- context "and the selector does not match a project" do
70
-
71
- let(:project_selector) { "does_not_match" }
72
- let(:error) { "an error" }
60
+ context 'and the selector does not match a project' do
61
+ let(:project_selector) { 'does_not_match' }
62
+ let(:error) { 'an error' }
73
63
 
74
64
  before(:example) { allow(BuildEval::Server::InvalidSelectorError).to receive(:new).and_return(error) }
75
65
 
76
- it "creates an invalid selector error" do
66
+ it 'creates an invalid selector error' do
77
67
  expect(BuildEval::Server::InvalidSelectorError).to(
78
68
  receive(:new).with(raw_response, project_selector).and_return(error)
79
69
  )
80
70
 
81
- subject rescue Exception
71
+ begin
72
+ subject
73
+ rescue
74
+ Exception
75
+ end
82
76
  end
83
77
 
84
- it "raises the error" do
78
+ it 'raises the error' do
85
79
  expect { subject }.to raise_error(error)
86
80
  end
87
-
88
81
  end
89
-
90
82
  end
91
83
 
92
- context "when the response is in error" do
93
-
94
- let(:response_body) { { "file" => "not found" }.to_json }
95
- let(:error) { "an error" }
84
+ context 'when the response is in error' do
85
+ let(:response_body) { { 'file' => 'not found' }.to_json }
86
+ let(:error) { 'an error' }
96
87
 
97
88
  before(:example) { allow(BuildEval::Server::InvalidSelectorError).to receive(:new).and_return(error) }
98
89
 
99
- it "creates an invalid selector error" do
90
+ it 'creates an invalid selector error' do
100
91
  expect(BuildEval::Server::InvalidSelectorError).to(
101
92
  receive(:new).with(raw_response, project_selector).and_return(error)
102
93
  )
103
94
 
104
- subject rescue Exception
95
+ begin
96
+ subject
97
+ rescue
98
+ Exception
99
+ end
105
100
  end
106
101
 
107
- it "raises an invalid selector error" do
102
+ it 'raises an invalid selector error' do
108
103
  expect { subject }.to raise_error(error)
109
104
  end
110
-
111
105
  end
112
-
113
106
  end
114
-
115
107
  end
@@ -1,97 +1,83 @@
1
1
  describe BuildEval::Server::Decorator do
2
-
3
- let(:server) { double("BuildEval::Server::Server") }
2
+ let(:server) { double('BuildEval::Server::Server') }
4
3
 
5
4
  let(:decorator) { described_class.new(server) }
6
5
 
7
- describe "#build_result" do
8
-
9
- let(:build_name) { "some build name" }
6
+ describe '#build_result' do
7
+ let(:build_name) { 'some build name' }
10
8
 
11
9
  subject { decorator.build_result(build_name) }
12
10
 
13
- it "delegates to the decorated server" do
11
+ it 'delegates to the decorated server' do
14
12
  expect(server).to receive(:build_result).with(build_name)
15
13
 
16
14
  subject
17
15
  end
18
16
 
19
- context "when the decorated server returns a result" do
20
-
17
+ context 'when the decorated server returns a result' do
21
18
  let(:build_result) { instance_double(BuildEval::Result::BuildResult) }
22
19
 
23
20
  before(:example) { allow(server).to receive(:build_result).and_return(build_result) }
24
21
 
25
- it "returns the result" do
22
+ it 'returns the result' do
26
23
  expect(subject).to eql(build_result)
27
24
  end
28
-
29
25
  end
30
26
 
31
- context "when the decorated server raises an error" do
27
+ context 'when the decorated server raises an error' do
28
+ before(:example) { allow(server).to receive(:build_result).and_raise('Forced error') }
32
29
 
33
- before(:example) { allow(server).to receive(:build_result).and_raise("Forced error") }
34
-
35
- it "creates an indeterminate result" do
30
+ it 'creates an indeterminate result' do
36
31
  expect(BuildEval::Result::BuildResult).to receive(:indeterminate).with(build_name)
37
32
 
38
33
  subject
39
34
  end
40
35
 
41
- it "returns the indeterminate result" do
36
+ it 'returns the indeterminate result' do
42
37
  indeterminate_result = instance_double(BuildEval::Result::BuildResult)
43
38
  allow(BuildEval::Result::BuildResult).to receive(:indeterminate).and_return(indeterminate_result)
44
39
 
45
40
  expect(subject).to eql(indeterminate_result)
46
41
  end
47
-
48
42
  end
49
-
50
43
  end
51
44
 
52
- describe "#monitor" do
53
-
45
+ describe '#monitor' do
54
46
  let(:build_names) { (1..3).map { |i| "build##{i}" } }
55
47
 
56
48
  subject { decorator.monitor(*build_names) }
57
49
 
58
- it "creates a server monitor for the decorated server" do
50
+ it 'creates a server monitor for the decorated server' do
59
51
  expect(BuildEval::Monitor::Server).to receive(:new).with(hash_including(server: server))
60
52
 
61
53
  subject
62
54
  end
63
55
 
64
- it "returns the server monitor" do
56
+ it 'returns the server monitor' do
65
57
  monitor = instance_double(BuildEval::Monitor::Server)
66
58
  allow(BuildEval::Monitor::Server).to receive(:new).and_return(monitor)
67
59
 
68
60
  expect(subject).to eql(monitor)
69
61
  end
70
62
 
71
- context "when an array of build names is provided" do
72
-
63
+ context 'when an array of build names is provided' do
73
64
  subject { decorator.monitor(build_names) }
74
65
 
75
- it "creates a server monitor for the provided build names" do
66
+ it 'creates a server monitor for the provided build names' do
76
67
  expect(BuildEval::Monitor::Server).to receive(:new).with(hash_including(build_names: build_names))
77
68
 
78
69
  subject
79
70
  end
80
-
81
71
  end
82
72
 
83
- context "when variable argument list of build names is provided" do
84
-
73
+ context 'when variable argument list of build names is provided' do
85
74
  subject { decorator.monitor(*build_names) }
86
75
 
87
- it "creates a server monitor for the provided build names" do
76
+ it 'creates a server monitor for the provided build names' do
88
77
  expect(BuildEval::Monitor::Server).to receive(:new).with(hash_including(build_names: build_names))
89
78
 
90
79
  subject
91
80
  end
92
-
93
81
  end
94
-
95
82
  end
96
-
97
83
  end
@@ -1,27 +1,23 @@
1
1
  describe BuildEval::Server::InvalidSelectorError do
2
-
3
- let(:response_message) { "Some response message" }
4
- let(:response) { double("HttpResponse", message: response_message) }
5
- let(:selector) { "some/selector" }
2
+ let(:response_message) { 'Some response message' }
3
+ let(:response) { double('HttpResponse', message: response_message) }
4
+ let(:selector) { 'some/selector' }
6
5
 
7
6
  let(:error) { described_class.new(response, selector) }
8
7
 
9
- describe "#message" do
10
-
8
+ describe '#message' do
11
9
  subject { error.message }
12
10
 
13
- it "indicates the selector was not matched" do
11
+ it 'indicates the selector was not matched' do
14
12
  expect(subject).to match(/response did not match selector/i)
15
13
  end
16
14
 
17
- it "contains a message describing the response" do
15
+ it 'contains a message describing the response' do
18
16
  expect(subject).to include(response_message)
19
17
  end
20
18
 
21
- it "contains the selector that was invalid" do
19
+ it 'contains the selector that was invalid' do
22
20
  expect(subject).to include(selector)
23
21
  end
24
-
25
22
  end
26
-
27
23
  end
@@ -1,22 +1,20 @@
1
- describe BuildEval::Server::Jenkins, "integrating with a response parser", integration: true do
2
- include_context "stubbed http interactions"
1
+ describe BuildEval::Server::Jenkins, 'integrating with a response parser', integration: true do
2
+ include_context 'stubbed http interactions'
3
3
 
4
- let(:uri) { "https://some.jenkins.server" }
4
+ let(:uri) { 'https://some.jenkins.server' }
5
5
 
6
6
  let(:jenkins) { described_class.new(uri: uri) }
7
7
 
8
- describe "#build_result" do
9
-
10
- let(:build_name) { "some_build_name" }
8
+ describe '#build_result' do
9
+ let(:build_name) { 'some_build_name' }
11
10
  let(:response) { instance_double(Net::HTTPResponse, body: response_body) }
12
11
 
13
12
  subject { jenkins.build_result(build_name) }
14
13
 
15
14
  before(:example) { allow(http).to receive(:get).and_return(response) }
16
15
 
17
- context "when the server responds successfully with build results" do
18
-
19
- let(:latest_build_status) { "Failure" }
16
+ context 'when the server responds successfully with build results' do
17
+ let(:latest_build_status) { 'Failure' }
20
18
  let(:response_body) do
21
19
  <<-RESPONSE
22
20
  <Projects>
@@ -27,26 +25,23 @@ describe BuildEval::Server::Jenkins, "integrating with a response parser", integ
27
25
  RESPONSE
28
26
  end
29
27
 
30
- it "creates a build result containing the build name" do
28
+ it 'creates a build result containing the build name' do
31
29
  expect(BuildEval::Result::BuildResult).to receive(:create).with(hash_including(build_name: build_name))
32
30
 
33
31
  subject
34
32
  end
35
33
 
36
- it "creates a build result containing the latest build status" do
34
+ it 'creates a build result containing the latest build status' do
37
35
  expect(BuildEval::Result::BuildResult).to receive(:create).with(hash_including(status_name: latest_build_status))
38
36
  subject
39
37
  end
40
38
 
41
- it "returns the created result" do
39
+ it 'returns the created result' do
42
40
  build_result = instance_double(BuildEval::Result::BuildResult)
43
41
  allow(BuildEval::Result::BuildResult).to receive(:create).and_return(build_result)
44
42
 
45
43
  expect(subject).to eql(build_result)
46
44
  end
47
-
48
45
  end
49
-
50
46
  end
51
-
52
47
  end
@@ -1,20 +1,17 @@
1
1
  describe BuildEval::Server::Jenkins do
2
- include_context "stubbed http interactions"
2
+ include_context 'stubbed http interactions'
3
3
 
4
- let(:uri) { "https://some.jenkins.server" }
4
+ let(:uri) { 'https://some.jenkins.server' }
5
5
  let(:constructor_args) { { uri: uri } }
6
6
 
7
7
  let(:jenkins_server) { described_class.new(constructor_args) }
8
8
 
9
- it_behaves_like "a continuous integration server" do
10
-
9
+ it_behaves_like 'a continuous integration server' do
11
10
  let(:server) { jenkins_server }
12
-
13
11
  end
14
12
 
15
- describe "#build_result" do
16
-
17
- let(:build_name) { "some_build_name" }
13
+ describe '#build_result' do
14
+ let(:build_name) { 'some_build_name' }
18
15
  let(:response) { instance_double(Net::HTTPResponse) }
19
16
  let(:build_result) { instance_double(BuildEval::Result::BuildResult) }
20
17
  let(:cruise_control_response) do
@@ -29,42 +26,38 @@ describe BuildEval::Server::Jenkins do
29
26
  allow(cruise_control_response).to receive(:parse_result).and_return(build_result)
30
27
  end
31
28
 
32
- it "issues a GET request for the build" do
29
+ it 'issues a GET request for the build' do
33
30
  expect(http).to receive(:get).with("#{uri}/cc.xml")
34
31
 
35
32
  subject
36
33
  end
37
34
 
38
- it "creates a Cruise Control response containing the GET request response" do
35
+ it 'creates a Cruise Control response containing the GET request response' do
39
36
  expect(BuildEval::Server::CruiseControlResponse).to receive(:new).with(response)
40
37
 
41
38
  subject
42
39
  end
43
40
 
44
- it "parses the Cruise Control response to return the project with a matching build name" do
41
+ it 'parses the Cruise Control response to return the project with a matching build name' do
45
42
  expect(cruise_control_response).to receive(:parse_result).with(a_string_including(build_name))
46
43
 
47
44
  subject
48
45
  end
49
46
 
50
- it "returns the parsed build result" do
47
+ it 'returns the parsed build result' do
51
48
  expect(subject).to eql(build_result)
52
49
  end
53
-
54
50
  end
55
51
 
56
- describe "#to_s" do
57
-
58
- subject { jenkins_server.to_s }
59
-
60
- it "returns a string indicating it is a Jenkins server" do
61
- expect(subject).to include("Jenkins server")
62
- end
63
-
64
- it "returns a string containing the username" do
65
- expect(subject).to include(uri)
66
- end
52
+ describe '#to_s' do
53
+ subject { jenkins_server.to_s }
67
54
 
55
+ it 'returns a string indicating it is a Jenkins server' do
56
+ expect(subject).to include('Jenkins server')
68
57
  end
69
58
 
59
+ it 'returns a string containing the username' do
60
+ expect(subject).to include(uri)
61
+ end
62
+ end
70
63
  end
@@ -1,15 +1,11 @@
1
- shared_examples_for "a continuous integration server" do
2
-
3
- describe "constructor" do
4
-
1
+ shared_examples_for 'a continuous integration server' do
2
+ describe 'constructor' do
5
3
  subject { server }
6
4
 
7
- it "creates a http object with any provided http configuration options" do
5
+ it 'creates a http object with any provided http configuration options' do
8
6
  expect(BuildEval::Http).to receive(:new).with(constructor_args)
9
7
 
10
8
  subject
11
9
  end
12
-
13
10
  end
14
-
15
11
  end
@@ -1,13 +1,12 @@
1
- describe BuildEval::Server::TeamCity, "integrating with a response parser", integration: true do
2
- include_context "stubbed http interactions"
1
+ describe BuildEval::Server::TeamCity, 'integrating with a response parser', integration: true do
2
+ include_context 'stubbed http interactions'
3
3
 
4
- let(:uri) { "https://some.teamcity.server" }
4
+ let(:uri) { 'https://some.teamcity.server' }
5
5
 
6
6
  let(:team_city_server) { described_class.new(uri: uri) }
7
7
 
8
- describe "#build_result" do
9
-
10
- let(:build_name) { "some_build_name" }
8
+ describe '#build_result' do
9
+ let(:build_name) { 'some_build_name' }
11
10
  let(:response_message) { nil }
12
11
  let(:response_body) { nil }
13
12
  let(:response) { instance_double(Net::HTTPResponse, message: response_message, body: response_body) }
@@ -16,10 +15,9 @@ describe BuildEval::Server::TeamCity, "integrating with a response parser", inte
16
15
 
17
16
  before(:example) { allow(http).to receive(:get).and_return(response) }
18
17
 
19
- context "when the server responds with build results" do
20
-
21
- let(:latest_build_status) { "FAILED" }
22
- let(:response_message) { "OK" }
18
+ context 'when the server responds with build results' do
19
+ let(:latest_build_status) { 'FAILED' }
20
+ let(:response_message) { 'OK' }
23
21
  let(:response_body) do
24
22
  <<-RESPONSE
25
23
  <builds count="3" href="/httpAuth/app/rest/buildTypes/#{build_name}/builds/" nextHref="/httpAuth/app/rest/buildTypes/#{build_name}/builds/?count=3&start=3">
@@ -30,13 +28,13 @@ describe BuildEval::Server::TeamCity, "integrating with a response parser", inte
30
28
  RESPONSE
31
29
  end
32
30
 
33
- it "creates a build result containing the build name" do
31
+ it 'creates a build result containing the build name' do
34
32
  expect(BuildEval::Result::BuildResult).to receive(:create).with(hash_including(build_name: build_name))
35
33
 
36
34
  subject
37
35
  end
38
36
 
39
- it "creates a build result containing the latest build status" do
37
+ it 'creates a build result containing the latest build status' do
40
38
  expect(BuildEval::Result::BuildResult).to(
41
39
  receive(:create).with(hash_including(status_name: latest_build_status))
42
40
  )
@@ -44,29 +42,25 @@ describe BuildEval::Server::TeamCity, "integrating with a response parser", inte
44
42
  subject
45
43
  end
46
44
 
47
- it "returns the created result" do
45
+ it 'returns the created result' do
48
46
  build_result = instance_double(BuildEval::Result::BuildResult)
49
47
  allow(BuildEval::Result::BuildResult).to receive(:create).and_return(build_result)
50
48
 
51
49
  expect(subject).to eql(build_result)
52
50
  end
53
-
54
51
  end
55
52
 
56
- context "when the server authentication request fails" do
53
+ context 'when the server authentication request fails' do
54
+ let(:response_message) { 'Unauthorized' }
55
+ let(:response_body) { 'Incorrect username or password' }
57
56
 
58
- let(:response_message) { "Unauthorized" }
59
- let(:response_body) { "Incorrect username or password" }
60
-
61
- it "raises an error" do
57
+ it 'raises an error' do
62
58
  expect { subject }.to raise_error(/Unauthorized/)
63
59
  end
64
-
65
60
  end
66
61
 
67
- context "when the build is not found" do
68
-
69
- let(:response_message) { "Not Found" }
62
+ context 'when the build is not found' do
63
+ let(:response_message) { 'Not Found' }
70
64
  let(:response_body) do
71
65
  <<-BODY
72
66
  Error has occurred during request processing (Not Found).
@@ -74,12 +68,9 @@ describe BuildEval::Server::TeamCity, "integrating with a response parser", inte
74
68
  BODY
75
69
  end
76
70
 
77
- it "raises an error" do
71
+ it 'raises an error' do
78
72
  expect { subject }.to raise_error(/Not Found/)
79
73
  end
80
-
81
74
  end
82
-
83
75
  end
84
-
85
76
  end
@@ -1,22 +1,19 @@
1
1
  describe BuildEval::Server::TeamCity do
2
- include_context "stubbed http interactions"
2
+ include_context 'stubbed http interactions'
3
3
 
4
- let(:uri) { "https://some.teamcity.server" }
5
- let(:username) { "some_username" }
6
- let(:password) { "some_password" }
4
+ let(:uri) { 'https://some.teamcity.server' }
5
+ let(:username) { 'some_username' }
6
+ let(:password) { 'some_password' }
7
7
  let(:constructor_args) { { uri: uri, username: username, password: password } }
8
8
 
9
9
  let(:team_city_server) { described_class.new(constructor_args) }
10
10
 
11
- it_behaves_like "a continuous integration server" do
12
-
11
+ it_behaves_like 'a continuous integration server' do
13
12
  let(:server) { team_city_server }
14
-
15
13
  end
16
14
 
17
- describe "#build_result" do
18
-
19
- let(:build_name) { "some_build_name" }
15
+ describe '#build_result' do
16
+ let(:build_name) { 'some_build_name' }
20
17
  let(:response_body) do
21
18
  <<-RESPONSE
22
19
  <builds count="3" href="/httpAuth/app/rest/buildTypes/#{build_name}/builds/" nextHref="/httpAuth/app/rest/buildTypes/#{build_name}/builds/?count=3&start=3">
@@ -24,32 +21,28 @@ describe BuildEval::Server::TeamCity do
24
21
  </builds>
25
22
  RESPONSE
26
23
  end
27
- let(:response) { instance_double(Net::HTTPResponse, body: response_body) }
24
+ let(:response) { instance_double(Net::HTTPResponse, body: response_body) }
28
25
 
29
26
  subject { team_city_server.build_result(build_name) }
30
27
 
31
28
  before(:example) { allow(http).to receive(:get).and_return(response) }
32
29
 
33
- it "issues a GET request for the build" do
30
+ it 'issues a GET request for the build' do
34
31
  expect(http).to receive(:get).with("#{uri}/httpAuth/app/rest/buildTypes/id:#{build_name}/builds")
35
32
 
36
33
  subject
37
34
  end
38
-
39
35
  end
40
36
 
41
- describe "#to_s" do
42
-
37
+ describe '#to_s' do
43
38
  subject { team_city_server.to_s }
44
39
 
45
- it "returns a string indicating it is a TeamCity server" do
46
- expect(subject).to include("TeamCity")
40
+ it 'returns a string indicating it is a TeamCity server' do
41
+ expect(subject).to include('TeamCity')
47
42
  end
48
43
 
49
- it "returns a string containing the uri to the server" do
44
+ it 'returns a string containing the uri to the server' do
50
45
  expect(subject).to include(uri)
51
46
  end
52
-
53
47
  end
54
-
55
48
  end