restful_resource 2.3.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,40 +16,40 @@ RSpec.describe RestfulResource::HttpClient do
16
16
  end
17
17
 
18
18
  describe 'Basic HTTP' do
19
- it 'should execute get' do
19
+ it 'executes get' do
20
20
  connection = faraday_connection do |stubs|
21
- stubs.get('http://httpbin.org/get') { |env| [200, {}, nil] }
21
+ stubs.get('http://httpbin.org/get') { |_env| [200, {}, nil] }
22
22
  end
23
23
 
24
24
  response = http_client(connection).get('http://httpbin.org/get')
25
25
  expect(response.status).to eq 200
26
26
  end
27
27
 
28
- it 'should execute put' do
28
+ it 'executes put' do
29
29
  connection = faraday_connection do |stubs|
30
30
  # Note: request body is serialized as url-encoded so the stub body must be in the same format to match
31
- stubs.put('http://httpbin.org/put', 'name=Alfred') { |env| [200, {}, nil] }
31
+ stubs.put('http://httpbin.org/put', 'name=Alfred') { |_env| [200, {}, nil] }
32
32
  end
33
33
 
34
34
  response = http_client(connection).put('http://httpbin.org/put', data: { name: 'Alfred' })
35
35
  expect(response.status).to eq 200
36
36
  end
37
37
 
38
- it 'should execute post' do
38
+ it 'executes post' do
39
39
  connection = faraday_connection do |stubs|
40
40
  # Note: request body is serialized as url-encoded so the stub body must be in the same format to match
41
- stubs.post('http://httpbin.org/post', 'name=Alfred') { |env| [200, {}, %{"name": "Alfred"}] }
41
+ stubs.post('http://httpbin.org/post', 'name=Alfred') { |_env| [200, {}, %("name": "Alfred")] }
42
42
  end
43
43
 
44
44
  response = http_client(connection).post('http://httpbin.org/post', data: { name: 'Alfred' })
45
45
 
46
- expect(response.body).to include "name\": \"Alfred"
46
+ expect(response.body).to include 'name": "Alfred'
47
47
  expect(response.status).to eq 200
48
48
  end
49
49
 
50
- it 'should execute delete' do
50
+ it 'executes delete' do
51
51
  connection = faraday_connection do |stubs|
52
- stubs.delete('http://httpbin.org/delete') { |env| [200, {}, nil] }
52
+ stubs.delete('http://httpbin.org/delete') { |_env| [200, {}, nil] }
53
53
  end
54
54
 
55
55
  response = http_client(connection).delete('http://httpbin.org/delete')
@@ -59,7 +59,7 @@ RSpec.describe RestfulResource::HttpClient do
59
59
 
60
60
  it 'put should raise error 409' do
61
61
  connection = faraday_connection do |stubs|
62
- stubs.put('http://httpbin.org/status/409') { |env| [409, {}, nil] }
62
+ stubs.put('http://httpbin.org/status/409') { |_env| [409, {}, nil] }
63
63
  end
64
64
 
65
65
  expect { http_client(connection).put('http://httpbin.org/status/409') }.to raise_error(RestfulResource::HttpClient::Conflict)
@@ -67,7 +67,7 @@ RSpec.describe RestfulResource::HttpClient do
67
67
 
68
68
  it 'put should raise error 422' do
69
69
  connection = faraday_connection do |stubs|
70
- stubs.put('http://httpbin.org/status/422') { |env| [422, {}, nil] }
70
+ stubs.put('http://httpbin.org/status/422') { |_env| [422, {}, nil] }
71
71
  end
72
72
 
73
73
  expect { http_client(connection).put('http://httpbin.org/status/422') }.to raise_error(RestfulResource::HttpClient::UnprocessableEntity)
@@ -75,7 +75,7 @@ RSpec.describe RestfulResource::HttpClient do
75
75
 
76
76
  it 'post should raise error 422' do
77
77
  connection = faraday_connection do |stubs|
78
- stubs.post('http://httpbin.org/status/422') { |env| [422, {}, nil] }
78
+ stubs.post('http://httpbin.org/status/422') { |_env| [422, {}, nil] }
79
79
  end
80
80
 
81
81
  expect { http_client(connection).post('http://httpbin.org/status/422') }.to raise_error(RestfulResource::HttpClient::UnprocessableEntity)
@@ -83,7 +83,7 @@ RSpec.describe RestfulResource::HttpClient do
83
83
 
84
84
  it 'post should raise error 429' do
85
85
  connection = faraday_connection do |stubs|
86
- stubs.post('http://httpbin.org/status/429') { |env| [429, {}, nil] }
86
+ stubs.post('http://httpbin.org/status/429') { |_env| [429, {}, nil] }
87
87
  end
88
88
 
89
89
  expect { http_client(connection).post('http://httpbin.org/status/429') }.to raise_error(RestfulResource::HttpClient::TooManyRequests)
@@ -91,7 +91,7 @@ RSpec.describe RestfulResource::HttpClient do
91
91
 
92
92
  it 'put should raise error 502' do
93
93
  connection = faraday_connection do |stubs|
94
- stubs.put('http://httpbin.org/status/502') { |env| [502, {}, nil] }
94
+ stubs.put('http://httpbin.org/status/502') { |_env| [502, {}, nil] }
95
95
  end
96
96
 
97
97
  expect { http_client(connection).put('http://httpbin.org/status/502') }.to raise_error(RestfulResource::HttpClient::BadGateway)
@@ -99,7 +99,7 @@ RSpec.describe RestfulResource::HttpClient do
99
99
 
100
100
  it 'post should raise error 502' do
101
101
  connection = faraday_connection do |stubs|
102
- stubs.post('http://httpbin.org/status/502') { |env| [502, {}, nil] }
102
+ stubs.post('http://httpbin.org/status/502') { |_env| [502, {}, nil] }
103
103
  end
104
104
 
105
105
  expect { http_client(connection).post('http://httpbin.org/status/502') }.to raise_error(RestfulResource::HttpClient::BadGateway)
@@ -107,7 +107,7 @@ RSpec.describe RestfulResource::HttpClient do
107
107
 
108
108
  it 'put should raise error 503' do
109
109
  connection = faraday_connection do |stubs|
110
- stubs.put('http://httpbin.org/status/503') { |env| [503, {}, nil] }
110
+ stubs.put('http://httpbin.org/status/503') { |_env| [503, {}, nil] }
111
111
  end
112
112
 
113
113
  expect { http_client(connection).put('http://httpbin.org/status/503') }.to raise_error(RestfulResource::HttpClient::ServiceUnavailable)
@@ -115,18 +115,18 @@ RSpec.describe RestfulResource::HttpClient do
115
115
 
116
116
  it 'post should raise error 503' do
117
117
  connection = faraday_connection do |stubs|
118
- stubs.post('http://httpbin.org/status/503') { |env| [503, {}, nil] }
118
+ stubs.post('http://httpbin.org/status/503') { |_env| [503, {}, nil] }
119
119
  end
120
120
 
121
121
  expect { http_client(connection).post('http://httpbin.org/status/503') }.to raise_error(RestfulResource::HttpClient::ServiceUnavailable)
122
122
  end
123
123
 
124
- it 'should raise error on 404' do
124
+ it 'raises error on 404' do
125
125
  connection = faraday_connection do |stubs|
126
- stubs.get('http://httpbin.org/status/404') { |env| [404, {}, nil] }
127
- stubs.post('http://httpbin.org/status/404') { |env| [404, {}, nil] }
128
- stubs.put('http://httpbin.org/status/404') { |env| [404, {}, nil] }
129
- stubs.delete('http://httpbin.org/status/404') { |env| [404, {}, nil] }
126
+ stubs.get('http://httpbin.org/status/404') { |_env| [404, {}, nil] }
127
+ stubs.post('http://httpbin.org/status/404') { |_env| [404, {}, nil] }
128
+ stubs.put('http://httpbin.org/status/404') { |_env| [404, {}, nil] }
129
+ stubs.delete('http://httpbin.org/status/404') { |_env| [404, {}, nil] }
130
130
  end
131
131
 
132
132
  expect { http_client(connection).get('http://httpbin.org/status/404') }.to raise_error(RestfulResource::HttpClient::ResourceNotFound)
@@ -135,17 +135,17 @@ RSpec.describe RestfulResource::HttpClient do
135
135
  expect { http_client(connection).post('http://httpbin.org/status/404', data: { name: 'Mad cow' }) }.to raise_error(RestfulResource::HttpClient::ResourceNotFound)
136
136
  end
137
137
 
138
- it 'should raise Faraday::ConnectionFailed errors' do
138
+ it 'raises Faraday::ConnectionFailed errors' do
139
139
  connection = faraday_connection do |stubs|
140
- stubs.get('https://localhost:3005') {|env| raise Faraday::ConnectionFailed.new(nil) }
140
+ stubs.get('https://localhost:3005') { |_env| raise Faraday::ConnectionFailed, nil }
141
141
  end
142
142
 
143
143
  expect { http_client(connection).get('https://localhost:3005') }.to raise_error(Faraday::ConnectionFailed)
144
144
  end
145
145
 
146
- it 'should raise Timeout error' do
146
+ it 'raises Timeout error' do
147
147
  connection = faraday_connection do |stubs|
148
- stubs.get('https://localhost:3005') {|env| raise Faraday::TimeoutError.new(nil) }
148
+ stubs.get('https://localhost:3005') { |_env| raise Faraday::TimeoutError, nil }
149
149
  end
150
150
 
151
151
  expect { http_client(connection).get('https://localhost:3005') }.to raise_error(RestfulResource::HttpClient::Timeout)
@@ -153,7 +153,7 @@ RSpec.describe RestfulResource::HttpClient do
153
153
 
154
154
  it 'raises ClientError when a client errors with no response' do
155
155
  connection = faraday_connection do |stubs|
156
- stubs.get('https://localhost:3005') {|env| raise Faraday::ClientError.new(nil) }
156
+ stubs.get('https://localhost:3005') { |_env| raise Faraday::ClientError, nil }
157
157
  end
158
158
 
159
159
  expect { http_client(connection).get('https://localhost:3005') }.to raise_error(RestfulResource::HttpClient::ClientError)
@@ -161,7 +161,7 @@ RSpec.describe RestfulResource::HttpClient do
161
161
 
162
162
  it 'raises OtherHttpError for other status response codes' do
163
163
  connection = faraday_connection do |stubs|
164
- stubs.get('http://httpbin.org/status/418') { |env| [418, {}, nil] }
164
+ stubs.get('http://httpbin.org/status/418') { |_env| [418, {}, nil] }
165
165
  end
166
166
 
167
167
  expect { http_client(connection).get('http://httpbin.org/status/418') }.to raise_error(RestfulResource::HttpClient::OtherHttpError)
@@ -174,12 +174,12 @@ RSpec.describe RestfulResource::HttpClient do
174
174
  described_class.new(connection: connection, username: 'user', password: 'passwd')
175
175
  end
176
176
 
177
- it 'should execute authenticated get' do
177
+ it 'executes authenticated get' do
178
178
  connection = faraday_connection do |stubs|
179
- stubs.get('http://httpbin.org/basic-auth/user/passwd') { |env| [200, {}, nil] }
179
+ stubs.get('http://httpbin.org/basic-auth/user/passwd') { |_env| [200, {}, nil] }
180
180
  end
181
181
 
182
- response = http_client(connection).get('http://httpbin.org/basic-auth/user/passwd', headers: {"Authorization"=>"Basic dXNlcjpwYXNzd2Q="})
182
+ response = http_client(connection).get('http://httpbin.org/basic-auth/user/passwd', headers: { 'Authorization' => 'Basic dXNlcjpwYXNzd2Q=' })
183
183
 
184
184
  expect(response.status).to eq 200
185
185
  end
@@ -190,12 +190,12 @@ RSpec.describe RestfulResource::HttpClient do
190
190
  described_class.new(connection: connection, auth_token: 'abc123')
191
191
  end
192
192
 
193
- it 'should execute authenticated get' do
193
+ it 'executes authenticated get' do
194
194
  connection = faraday_connection do |stubs|
195
- stubs.get('http://httpbin.org/bearer', { 'Authorization' => 'Bearer abc123'} ) { |env| [200, {}, nil] }
195
+ stubs.get('http://httpbin.org/bearer', 'Authorization' => 'Bearer abc123') { |_env| [200, {}, nil] }
196
196
  end
197
197
 
198
- response = http_client(connection).get('http://httpbin.org/bearer', headers: { 'Authorization' => 'Bearer abc123'})
198
+ response = http_client(connection).get('http://httpbin.org/bearer', headers: { 'Authorization' => 'Bearer abc123' })
199
199
 
200
200
  expect(response.status).to eq 200
201
201
  end
@@ -205,7 +205,7 @@ RSpec.describe RestfulResource::HttpClient do
205
205
  describe 'Headers' do
206
206
  it 'uses custom headers' do
207
207
  connection = faraday_connection do |stubs|
208
- stubs.get('http://httpbin.org/get', { 'Cache-Control' => 'no-cache' }) { |env| [200, {}, nil] }
208
+ stubs.get('http://httpbin.org/get', 'Cache-Control' => 'no-cache') { |_env| [200, {}, nil] }
209
209
  end
210
210
 
211
211
  response = http_client(connection).get('http://httpbin.org/get', headers: { cache_control: 'no-cache' })
@@ -221,7 +221,7 @@ RSpec.describe RestfulResource::HttpClient do
221
221
  it 'sets a default user-agent header' do
222
222
  connection = faraday_connection do |stubs|
223
223
  user_agent = "carwow/internal RestfulResource/#{RestfulResource::VERSION} Faraday/#{Faraday::VERSION}"
224
- stubs.get('http://httpbin.org/get', { 'User-Agent' => user_agent }) { |env| [200, {}, nil] }
224
+ stubs.get('http://httpbin.org/get', 'User-Agent' => user_agent) { |_env| [200, {}, nil] }
225
225
  end
226
226
 
227
227
  response = http_client(connection).get('http://httpbin.org/get')
@@ -232,10 +232,10 @@ RSpec.describe RestfulResource::HttpClient do
232
232
  it 'sets a default user-agent header including app name' do
233
233
  connection = faraday_connection do |stubs|
234
234
  user_agent = "carwow/internal RestfulResource/#{RestfulResource::VERSION} (my-app) Faraday/#{Faraday::VERSION}"
235
- stubs.get('http://httpbin.org/get', { 'User-Agent' => user_agent }) { |env| [200, {}, nil] }
235
+ stubs.get('http://httpbin.org/get', 'User-Agent' => user_agent) { |_env| [200, {}, nil] }
236
236
  end
237
237
 
238
- response = http_client(connection, app_name: "my-app").get('http://httpbin.org/get')
238
+ response = http_client(connection, app_name: 'my-app').get('http://httpbin.org/get')
239
239
 
240
240
  expect(response.status).to eq 200
241
241
  end
@@ -1,23 +1,23 @@
1
1
  require_relative '../spec_helper'
2
2
 
3
3
  describe RestfulResource::OpenObject do
4
- it "should act as an openstruct" do
5
- object = RestfulResource::OpenObject.new(name: 'David', surname: 'Santoro')
4
+ it 'acts as an openstruct' do
5
+ object = described_class.new(name: 'David', surname: 'Santoro')
6
6
 
7
7
  expect(object.name).to eq 'David'
8
8
  expect(object.surname).to eq 'Santoro'
9
9
  end
10
10
 
11
- it "should raise an error when accessing a field that doesn't exist" do
12
- object = RestfulResource::OpenObject.new({name: 'David', surname: 'Santoro'})
11
+ it "raises an error when accessing a field that doesn't exist" do
12
+ object = described_class.new(name: 'David', surname: 'Santoro')
13
13
 
14
14
  expect { object.age }.to raise_error(NoMethodError)
15
15
  end
16
16
 
17
- it "should implement equality operators correctly" do
18
- a = RestfulResource::OpenObject.new({name: 'Joe', age: 13})
19
- b = RestfulResource::OpenObject.new({name: 'Joe', age: 13})
20
- c = RestfulResource::OpenObject.new({name: 'Mike', age: 13})
17
+ it 'implements equality operators correctly' do
18
+ a = described_class.new(name: 'Joe', age: 13)
19
+ b = described_class.new(name: 'Joe', age: 13)
20
+ c = described_class.new(name: 'Mike', age: 13)
21
21
 
22
22
  list = [a, b, c]
23
23
 
@@ -1,176 +1,176 @@
1
1
  require_relative '../spec_helper'
2
2
 
3
3
  RSpec.describe RestfulResource::RailsValidations do
4
- before :each do
5
- @mock_http = double("mock_http")
6
- RestfulResource::Base.configure(base_url: "http://api.carwow.co.uk/")
4
+ before do
5
+ @mock_http = double('mock_http')
6
+ RestfulResource::Base.configure(base_url: 'http://api.carwow.co.uk/')
7
7
  allow(RestfulResource::Base).to receive(:http).and_return(@mock_http)
8
8
  end
9
9
 
10
- context "#put without errors" do
11
- before :each do
12
- data = {name: 'Barak'}
13
- expected_response = RestfulResource::Response.new(body: {name: 'Barak'}.to_json)
14
- expect_put("http://api.carwow.co.uk/dealers/1", expected_response, data: data)
10
+ context '#put without errors' do
11
+ before do
12
+ data = { name: 'Barak' }
13
+ expected_response = RestfulResource::Response.new(body: { name: 'Barak' }.to_json)
14
+ expect_put('http://api.carwow.co.uk/dealers/1', expected_response, data: data)
15
15
 
16
16
  @object = Dealer.put(1, data: data)
17
17
  end
18
18
 
19
- it 'should return object' do
19
+ it 'returns object' do
20
20
  expect(@object.name).to eq 'Barak'
21
21
  end
22
22
 
23
- it 'should return valid object' do
24
- expect(@object.valid?).to be_truthy
23
+ it 'returns valid object' do
24
+ expect(@object).to be_valid
25
25
  end
26
26
  end
27
27
 
28
- context "#put with errors" do
28
+ context '#put with errors' do
29
29
  before do
30
- data = {name: 'Leonardo'}
30
+ data = { name: 'Leonardo' }
31
31
  @error = 'Cannot use Ninja Turtles names'
32
- expected_response = RestfulResource::Response.new(body: {errors: [@error]}.to_json)
33
- expect_put_with_unprocessable_entity("http://api.carwow.co.uk/dealers/1", expected_response, data: data)
32
+ expected_response = RestfulResource::Response.new(body: { errors: [@error] }.to_json)
33
+ expect_put_with_unprocessable_entity('http://api.carwow.co.uk/dealers/1', expected_response, data: data)
34
34
 
35
35
  @object = Dealer.put(1, data: data)
36
36
  end
37
37
 
38
- it "should have an error" do
38
+ it 'has an error' do
39
39
  expect(@object.errors.count).to eq 1
40
40
  end
41
41
 
42
- it 'should have correct error' do
42
+ it 'has correct error' do
43
43
  expect(@object.errors.first).to eq @error
44
44
  end
45
45
 
46
- it 'should return properly built object' do
46
+ it 'returns properly built object' do
47
47
  expect(@object.name).to eq 'Leonardo'
48
48
  end
49
49
 
50
- it 'should return not valid object' do
51
- expect(@object.valid?).to be_falsey
50
+ it 'returns not valid object' do
51
+ expect(@object).not_to be_valid
52
52
  end
53
53
 
54
- it 'should handle errors returned as root object' do
55
- data = {name: 'Michelangelo'}
54
+ it 'handles errors returned as root object' do
55
+ data = { name: 'Michelangelo' }
56
56
  expected_response = RestfulResource::Response.new(body: @error.to_json)
57
- expect_put_with_unprocessable_entity("http://api.carwow.co.uk/dealers/1", expected_response, data: data)
57
+ expect_put_with_unprocessable_entity('http://api.carwow.co.uk/dealers/1', expected_response, data: data)
58
58
 
59
59
  @object = Dealer.put(1, data: data)
60
- expect(@object.valid?).to be_falsey
60
+ expect(@object).not_to be_valid
61
61
  expect(@object.errors).to eq @error
62
62
  end
63
63
 
64
- it 'should return the resource id as part of the response' do
65
- data = {name: 'Michelangelo'}
64
+ it 'returns the resource id as part of the response' do
65
+ data = { name: 'Michelangelo' }
66
66
  expected_response = RestfulResource::Response.new(body: @error.to_json)
67
- expect_put_with_unprocessable_entity("http://api.carwow.co.uk/dealers/1", expected_response, data: data)
67
+ expect_put_with_unprocessable_entity('http://api.carwow.co.uk/dealers/1', expected_response, data: data)
68
68
 
69
69
  @object = Dealer.put(1, data: data)
70
- expect(@object.valid?).to be_falsey
70
+ expect(@object).not_to be_valid
71
71
  expect(@object.id).to be(1)
72
72
  end
73
73
  end
74
74
 
75
- context "#post without errors" do
76
- before :each do
77
- data = {name: 'Barak'}
78
- expected_response = RestfulResource::Response.new(body: {name: 'Barak'}.to_json)
79
- expect_post("http://api.carwow.co.uk/dealers", expected_response, data: data)
75
+ context '#post without errors' do
76
+ before do
77
+ data = { name: 'Barak' }
78
+ expected_response = RestfulResource::Response.new(body: { name: 'Barak' }.to_json)
79
+ expect_post('http://api.carwow.co.uk/dealers', expected_response, data: data)
80
80
 
81
81
  @object = Dealer.post(data: data)
82
82
  end
83
83
 
84
- it 'should return object' do
84
+ it 'returns object' do
85
85
  expect(@object.name).to eq 'Barak'
86
86
  end
87
87
 
88
- it 'should return valid object' do
89
- expect(@object.valid?).to be_truthy
88
+ it 'returns valid object' do
89
+ expect(@object).to be_valid
90
90
  end
91
91
  end
92
92
 
93
- context "#post with errors" do
94
- before :each do
95
- data = {name: 'Leonardo'}
93
+ context '#post with errors' do
94
+ before do
95
+ data = { name: 'Leonardo' }
96
96
  @error = 'Cannot use Ninja Turtles names'
97
- expected_response = RestfulResource::Response.new(body: {errors: [@error]}.to_json)
98
- expect_post_with_unprocessable_entity("http://api.carwow.co.uk/dealers", expected_response, data: data)
97
+ expected_response = RestfulResource::Response.new(body: { errors: [@error] }.to_json)
98
+ expect_post_with_unprocessable_entity('http://api.carwow.co.uk/dealers', expected_response, data: data)
99
99
 
100
100
  @object = Dealer.post(data: data)
101
101
  end
102
102
 
103
- it "should have an error" do
103
+ it 'has an error' do
104
104
  expect(@object.errors.count).to eq 1
105
105
  end
106
106
 
107
- it 'should have correct error' do
107
+ it 'has correct error' do
108
108
  expect(@object.errors.first).to eq @error
109
109
  end
110
110
 
111
- it 'should return properly built object' do
111
+ it 'returns properly built object' do
112
112
  expect(@object.name).to eq 'Leonardo'
113
113
  end
114
114
 
115
- it 'should return not valid object' do
116
- expect(@object.valid?).to be_falsey
115
+ it 'returns not valid object' do
116
+ expect(@object).not_to be_valid
117
117
  end
118
118
 
119
- it 'should handle errors returned as root object' do
120
- data = {name: 'Michelangelo'}
119
+ it 'handles errors returned as root object' do
120
+ data = { name: 'Michelangelo' }
121
121
  expected_response = RestfulResource::Response.new(body: @error.to_json)
122
- expect_post_with_unprocessable_entity("http://api.carwow.co.uk/dealers", expected_response, data: data)
122
+ expect_post_with_unprocessable_entity('http://api.carwow.co.uk/dealers', expected_response, data: data)
123
123
 
124
124
  @object = Dealer.post(data: data)
125
- expect(@object.valid?).to be_falsey
125
+ expect(@object).not_to be_valid
126
126
  expect(@object.errors).to eq @error
127
127
  end
128
128
  end
129
129
 
130
- context "#get without errors" do
131
- before :each do
132
- expected_response = RestfulResource::Response.new(body: {name: 'Barak'}.to_json)
133
- expect_get("http://api.carwow.co.uk/dealers", expected_response)
130
+ context '#get without errors' do
131
+ before do
132
+ expected_response = RestfulResource::Response.new(body: { name: 'Barak' }.to_json)
133
+ expect_get('http://api.carwow.co.uk/dealers', expected_response)
134
134
 
135
135
  @object = Dealer.get
136
136
  end
137
137
 
138
- it 'should return object' do
138
+ it 'returns object' do
139
139
  expect(@object.name).to eq 'Barak'
140
140
  end
141
141
 
142
- it 'should return valid object' do
143
- expect(@object.valid?).to be_truthy
142
+ it 'returns valid object' do
143
+ expect(@object).to be_valid
144
144
  end
145
145
  end
146
146
 
147
- context "#get with errors" do
148
- before :each do
147
+ context '#get with errors' do
148
+ before do
149
149
  @error = 'Missing parameter'
150
- expected_response = RestfulResource::Response.new(body: {errors: [@error]}.to_json)
151
- expect_get_with_unprocessable_entity("http://api.carwow.co.uk/dealers", expected_response)
150
+ expected_response = RestfulResource::Response.new(body: { errors: [@error] }.to_json)
151
+ expect_get_with_unprocessable_entity('http://api.carwow.co.uk/dealers', expected_response)
152
152
 
153
153
  @object = Dealer.get
154
154
  end
155
155
 
156
- it "should have an error" do
156
+ it 'has an error' do
157
157
  expect(@object.errors.count).to eq 1
158
158
  end
159
159
 
160
- it 'should have correct error' do
160
+ it 'has correct error' do
161
161
  expect(@object.errors.first).to eq @error
162
162
  end
163
163
 
164
- it 'should return not valid object' do
165
- expect(@object.valid?).to be_falsey
164
+ it 'returns not valid object' do
165
+ expect(@object).not_to be_valid
166
166
  end
167
167
 
168
- it 'should handle errors returned as root object' do
168
+ it 'handles errors returned as root object' do
169
169
  expected_response = RestfulResource::Response.new(body: @error.to_json)
170
- expect_get_with_unprocessable_entity("http://api.carwow.co.uk/dealers", expected_response)
170
+ expect_get_with_unprocessable_entity('http://api.carwow.co.uk/dealers', expected_response)
171
171
 
172
172
  @object = Dealer.get
173
- expect(@object.valid?).to be_falsey
173
+ expect(@object).not_to be_valid
174
174
  expect(@object.errors).to eq @error
175
175
  end
176
176
  end
@@ -2,20 +2,20 @@ require_relative '../spec_helper'
2
2
 
3
3
  RSpec.describe RestfulResource::Redirections do
4
4
  before do
5
- @mock_http = double("mock_http")
5
+ @mock_http = double('mock_http')
6
6
  allow(RestfulResource::Base).to receive(:http).and_return(@mock_http)
7
7
  RestfulResource::Base.configure(base_url: 'http://api.carwow.co.uk/')
8
8
  end
9
9
 
10
- describe "#post" do
11
- let(:data) { {data: 123} }
12
-
10
+ describe '#post' do
13
11
  subject { ModelWithRedirections.post(data: data) }
14
12
 
13
+ let(:data) { { data: 123 } }
14
+
15
15
  context 'with a 200 response' do
16
- it 'should behave as usual' do
17
- expected_response = RestfulResource::Response.new(body: {test_data: 42}.to_json)
18
- expect_post("http://api.carwow.co.uk/model_with_redirections", expected_response, data: data)
16
+ it 'behaves as usual' do
17
+ expected_response = RestfulResource::Response.new(body: { test_data: 42 }.to_json)
18
+ expect_post('http://api.carwow.co.uk/model_with_redirections', expected_response, data: data)
19
19
 
20
20
  expect(subject.test_data).to eq 42
21
21
  end
@@ -25,48 +25,48 @@ RSpec.describe RestfulResource::Redirections do
25
25
  let(:redirect_target) { 'http://api.carwow.co.uk/model_with_redirections/123' }
26
26
 
27
27
  before do
28
- allow(RestfulResource::Redirections).to receive(:wait)
29
- expected_redirect_response = RestfulResource::Response.new(body: 'You are being redirected', status: 303, headers: { location: redirect_target})
30
- expect_post("http://api.carwow.co.uk/model_with_redirections", expected_redirect_response, data: data)
28
+ allow(described_class).to receive(:wait)
29
+ expected_redirect_response = RestfulResource::Response.new(body: 'You are being redirected', status: 303, headers: { location: redirect_target })
30
+ expect_post('http://api.carwow.co.uk/model_with_redirections', expected_redirect_response, data: data)
31
31
  end
32
32
 
33
- it 'should get the resource from the new location' do
34
- expected_get_response = RestfulResource::Response.new(body: {test_data: 42}.to_json, status: 200)
33
+ it 'gets the resource from the new location' do
34
+ expected_get_response = RestfulResource::Response.new(body: { test_data: 42 }.to_json, status: 200)
35
35
  expect_get(redirect_target, expected_get_response)
36
36
 
37
37
  expect(subject.test_data).to eq 42
38
38
  end
39
39
 
40
- it 'should wait 1.0 seconds after first redirect' do
41
- expected_get_response = RestfulResource::Response.new(body: {test_data: 42}.to_json, status: 200)
40
+ it 'waits 1.0 seconds after first redirect' do
41
+ expected_get_response = RestfulResource::Response.new(body: { test_data: 42 }.to_json, status: 200)
42
42
 
43
- expect(RestfulResource::Redirections).to receive(:wait).with(1.0).ordered
43
+ expect(described_class).to receive(:wait).with(1.0).ordered
44
44
  expect_get(redirect_target, expected_get_response).ordered
45
45
 
46
46
  expect(subject.test_data).to eq 42
47
47
  end
48
48
 
49
- it 'should wait 1.0 seconds between retries' do
49
+ it 'waits 1.0 seconds between retries' do
50
50
  resource_not_ready_get_response = RestfulResource::Response.new(body: 'pending', status: 202)
51
- resource_ready_get_response = RestfulResource::Response.new(body: {test_data: 42}.to_json, status: 200)
51
+ resource_ready_get_response = RestfulResource::Response.new(body: { test_data: 42 }.to_json, status: 200)
52
52
 
53
- expect(RestfulResource::Redirections).to receive(:wait).with(1.0).ordered
53
+ expect(described_class).to receive(:wait).with(1.0).ordered
54
54
  expect_get(redirect_target, resource_not_ready_get_response).ordered
55
- expect(RestfulResource::Redirections).to receive(:wait).with(1.0).ordered
55
+ expect(described_class).to receive(:wait).with(1.0).ordered
56
56
  expect_get(redirect_target, resource_ready_get_response).ordered
57
57
 
58
58
  expect(subject.test_data).to eq 42
59
59
  end
60
60
 
61
- it 'should retry 10 times by default' do
61
+ it 'retries 10 times by default' do
62
62
  resource_not_ready_get_response = RestfulResource::Response.new(body: 'pending', status: 202)
63
- resource_ready_get_response = RestfulResource::Response.new(body: {test_data: 42}.to_json, status: 200)
63
+ resource_ready_get_response = RestfulResource::Response.new(body: { test_data: 42 }.to_json, status: 200)
64
64
 
65
65
  9.times do
66
- expect(RestfulResource::Redirections).to receive(:wait).with(1.0).ordered
66
+ expect(described_class).to receive(:wait).with(1.0).ordered
67
67
  expect_get(redirect_target, resource_not_ready_get_response).ordered
68
68
  end
69
- expect(RestfulResource::Redirections).to receive(:wait).with(1.0).ordered
69
+ expect(described_class).to receive(:wait).with(1.0).ordered
70
70
  expect_get(redirect_target, resource_ready_get_response).ordered
71
71
 
72
72
  expect(subject.test_data).to eq 42
@@ -74,14 +74,14 @@ RSpec.describe RestfulResource::Redirections do
74
74
 
75
75
  it 'raise after max_retries value is reached' do
76
76
  resource_not_ready_get_response = RestfulResource::Response.new(body: 'pending', status: 202)
77
- resource_ready_get_response = RestfulResource::Response.new(body: {test_data: 42}.to_json, status: 200)
77
+ resource_ready_get_response = RestfulResource::Response.new(body: { test_data: 42 }.to_json, status: 200)
78
78
 
79
79
  11.times do
80
- expect(RestfulResource::Redirections).to receive(:wait).with(1.0).ordered
80
+ expect(described_class).to receive(:wait).with(1.0).ordered
81
81
  expect_get(redirect_target, resource_not_ready_get_response).ordered
82
82
  end
83
83
 
84
- expect{subject}.to raise_error(RestfulResource::MaximumAttemptsReached)
84
+ expect { subject }.to raise_error(RestfulResource::MaximumAttemptsReached)
85
85
  end
86
86
  end
87
87
  end