braque 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a98f34cb71d248a703cb08b321109252638cd0c5
4
- data.tar.gz: c08a5b5527ffae9cb00e0722919397a78a937036
3
+ metadata.gz: 7e576d0ca74ea35d912a52c67e9971a7740a0dfa
4
+ data.tar.gz: 5d52452de3a6ed8611a2b127ed002d5ebee8c3e9
5
5
  SHA512:
6
- metadata.gz: 4764cb4013926ed115f96ec4b076c3a2bcf461e59106e26fbfe1e5f5cfd3c0c21627ab12805ef2b32fe3dad8d43be286491219085919d7c09839eb349ddaa6fd
7
- data.tar.gz: 2a96a53a0da8fe227c8d35b20273ac7b9f9f6580c24d91e8aa7627444c307453075f8812f03f3aa25b018f44dfba6668400194a81eb16c0a1410f459bed27858
6
+ metadata.gz: 60fbbb04472b235c26ceb02490013f7b68b046478e461889a5ccaac88728aa5b51671c022dc4fcb3f74827f8f7cb85f3b37c5f0af4239f5ce53ad8bf5c14abcd
7
+ data.tar.gz: 0076fe9afecb8bded09adf25806d9afc920be19de40b2de2bcad5d33e3e8e13765676f793b01f96c681751e6ee1dacbb5fe96f0310d9cd0b2fabf7afbddb14f3
@@ -13,7 +13,10 @@ module Braque
13
13
  response.each do |item|
14
14
  retrieved_items << klass.new(item)
15
15
  end
16
- @retrieved_items, @next_link, @previous_link, @total_count = retrieved_items, next_link, previous_link, total_count
16
+ @retrieved_items = retrieved_items
17
+ @next_link = next_link
18
+ @previous_link = previous_link
19
+ @total_count = total_count
17
20
  super retrieved_items
18
21
  end
19
22
  end
@@ -1,3 +1,3 @@
1
1
  module Braque
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.2'
3
3
  end
@@ -70,6 +70,21 @@ RSpec.describe Braque::Model, type: :model do
70
70
  expect(breeze.title).to eq collection_response['_embedded']['breezes'].first['title']
71
71
  end
72
72
  end
73
+ context 'with an errored response' do
74
+ before(:each) do
75
+ root_request
76
+ @collection_request = WebMock.stub_request(:get, "#{Breeze.api_root}/breezes")
77
+ .with(headers: { 'Http-Authorization' => Breeze.api_token })
78
+ .to_return(status: 500)
79
+ end
80
+ it 'returns a Faraday::ClientError error' do
81
+ expect do
82
+ Breeze.list
83
+ end.to raise_error(Faraday::ClientError, 'the server responded with status 500')
84
+ expect(root_request).to have_been_requested
85
+ expect(@collection_request).to have_been_requested
86
+ end
87
+ end
73
88
  context 'with array params' do
74
89
  before(:each) do
75
90
  root_request
@@ -108,6 +123,21 @@ RSpec.describe Braque::Model, type: :model do
108
123
  expect(@breeze.title).to eq resource_response['title']
109
124
  end
110
125
  end
126
+ context 'with an errored response' do
127
+ before(:each) do
128
+ root_request
129
+ @resource_request = WebMock.stub_request(:get, "#{Breeze.api_root}/breezes/1")
130
+ .with(headers: { 'Http-Authorization' => Breeze.api_token })
131
+ .to_return(status: 500)
132
+ end
133
+ it 'returns a Faraday::ClientError error' do
134
+ expect do
135
+ @breeze = Breeze.find id: 1
136
+ end.to raise_error(Faraday::ClientError, 'the server responded with status 500')
137
+ expect(root_request).to have_been_requested
138
+ expect(@resource_request).to have_been_requested
139
+ end
140
+ end
111
141
  context 'when overriding resource_find_options' do
112
142
  before(:each) do
113
143
  class Breeze
@@ -140,27 +170,44 @@ RSpec.describe Braque::Model, type: :model do
140
170
  end
141
171
 
142
172
  context '.create' do
173
+ context 'with a successful response' do
174
+ before(:each) do
175
+ root_request
176
+ @create_request = WebMock.stub_request(:post, "#{Breeze.api_root}/breezes")
177
+ .with(headers: { 'Http-Authorization' => Breeze.api_token })
178
+ .to_return(status: 201, body: resource_response)
179
+ @params = { title: 'What a nice breeze.' }
180
+ @breeze = Breeze.create(@params)
181
+ end
182
+ it 'performs the API root request' do
183
+ expect(root_request).to have_been_requested
184
+ end
185
+ it 'performs the create request' do
186
+ expect(@create_request).to have_been_requested
187
+ end
188
+ it 'returns an item with the correct class' do
189
+ expect(@breeze).to be_a_kind_of Breeze
190
+ end
191
+ it 'returns an item with the correct attributes' do
192
+ expect(@breeze.id).to eq resource_response['id']
193
+ expect(@breeze.title).to eq resource_response['title']
194
+ end
195
+ end
196
+ end
197
+ context 'with an errored response' do
143
198
  before(:each) do
144
199
  root_request
145
200
  @create_request = WebMock.stub_request(:post, "#{Breeze.api_root}/breezes")
146
201
  .with(headers: { 'Http-Authorization' => Breeze.api_token })
147
- .to_return(status: 201, body: resource_response)
148
- @params = { title: 'What a nice breeze.' }
149
- @breeze = Breeze.create(@params)
202
+ .to_return(status: 500)
150
203
  end
151
- it 'performs the API root request' do
204
+ it 'returns a Faraday::ClientError error' do
205
+ expect do
206
+ Breeze.create {}
207
+ end.to raise_error(Faraday::ClientError, 'the server responded with status 500')
152
208
  expect(root_request).to have_been_requested
153
- end
154
- it 'performs the create request' do
155
209
  expect(@create_request).to have_been_requested
156
210
  end
157
- it 'returns an item with the correct class' do
158
- expect(@breeze).to be_a_kind_of Breeze
159
- end
160
- it 'returns an item with the correct attributes' do
161
- expect(@breeze.id).to eq resource_response['id']
162
- expect(@breeze.title).to eq resource_response['title']
163
- end
164
211
  end
165
212
  end
166
213
  context 'instance methods' do
@@ -193,6 +240,22 @@ RSpec.describe Braque::Model, type: :model do
193
240
  end
194
241
  end
195
242
 
243
+ context 'with an errored response' do
244
+ before(:each) do
245
+ root_request
246
+ @save_request = WebMock.stub_request(:patch, "#{Breeze.api_root}/breezes/1")
247
+ .with(headers: { 'Http-Authorization' => Breeze.api_token })
248
+ .to_return(status: 500)
249
+ end
250
+ it 'returns a Faraday::ClientError error' do
251
+ expect do
252
+ Breeze.new(id: 1).save(@params)
253
+ end.to raise_error(Faraday::ClientError, 'the server responded with status 500')
254
+ expect(root_request).to have_been_requested
255
+ expect(@save_request).to have_been_requested
256
+ end
257
+ end
258
+
196
259
  context 'when overriding resource_find_options' do
197
260
  before(:each) do
198
261
  class Breeze
@@ -245,6 +308,22 @@ RSpec.describe Braque::Model, type: :model do
245
308
  end
246
309
  end
247
310
 
311
+ context 'with an errored response' do
312
+ before(:each) do
313
+ root_request
314
+ @destroy_request = WebMock.stub_request(:delete, "#{Breeze.api_root}/breezes/1")
315
+ .with(headers: { 'Http-Authorization' => Breeze.api_token })
316
+ .to_return(status: 500)
317
+ end
318
+ it 'returns a Faraday::ClientError error' do
319
+ expect do
320
+ Breeze.new(id: 1).destroy
321
+ end.to raise_error(Faraday::ClientError, 'the server responded with status 500')
322
+ expect(root_request).to have_been_requested
323
+ expect(@destroy_request).to have_been_requested
324
+ end
325
+ end
326
+
248
327
  context 'when overriding resource_find_options' do
249
328
  before(:each) do
250
329
  class Breeze
data/spec/spec_helper.rb CHANGED
@@ -11,5 +11,5 @@ end
11
11
 
12
12
  # Require library up front
13
13
  require 'braque'
14
- require 'shoulda/matchers'
15
14
  require 'webmock/rspec'
15
+ require 'byebug'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braque
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dylan Fareed
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-04 00:00:00.000000000 Z
11
+ date: 2015-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hyperclient
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  version: '0'
99
99
  requirements: []
100
100
  rubyforge_project:
101
- rubygems_version: 2.2.2
101
+ rubygems_version: 2.4.3
102
102
  signing_key:
103
103
  specification_version: 4
104
104
  summary: Braque provides a simple interface for interacting with Hypermedia API services