build_eval 0.0.5 → 0.0.6

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