her 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,14 +4,14 @@ require File.join(File.dirname(__FILE__), "../spec_helper.rb")
4
4
  describe Her::Model::Parse do
5
5
  context "when include_root_in_json is set" do
6
6
  before do
7
- Her::API.setup :url => "https://api.example.com" do |builder|
7
+ Her::API.setup url: "https://api.example.com" do |builder|
8
8
  builder.use Her::Middleware::FirstLevelParseJSON
9
9
  builder.use Faraday::Request::UrlEncoded
10
10
  end
11
11
 
12
12
  Her::API.default_api.connection.adapter :test do |stub|
13
- stub.post("/users") { |env| [200, {}, { :user => { :id => 1, :fullname => params(env)[:user][:fullname] } }.to_json] }
14
- stub.post("/users/admins") { |env| [200, {}, { :user => { :id => 1, :fullname => params(env)[:user][:fullname] } }.to_json] }
13
+ stub.post("/users") { |env| [200, {}, { user: { id: 1, fullname: params(env)[:user][:fullname] } }.to_json] }
14
+ stub.post("/users/admins") { |env| [200, {}, { user: { id: 1, fullname: params(env)[:user][:fullname] } }.to_json] }
15
15
  end
16
16
  end
17
17
 
@@ -25,13 +25,13 @@ describe Her::Model::Parse do
25
25
  end
26
26
 
27
27
  it "wraps params in the element name in `to_params`" do
28
- @new_user = Foo::User.new(:fullname => "Tobias Fünke")
29
- @new_user.to_params.should == { :user => { :fullname => "Tobias Fünke" } }
28
+ @new_user = Foo::User.new(fullname: "Tobias Fünke")
29
+ expect(@new_user.to_params).to eq(user: { fullname: "Tobias Fünke" })
30
30
  end
31
31
 
32
32
  it "wraps params in the element name in `.create`" do
33
- @new_user = Foo::User.admins(:fullname => "Tobias Fünke")
34
- @new_user.fullname.should == "Tobias Fünke"
33
+ @new_user = Foo::User.admins(fullname: "Tobias Fünke")
34
+ expect(@new_user.fullname).to eq("Tobias Fünke")
35
35
  end
36
36
  end
37
37
 
@@ -44,8 +44,8 @@ describe Her::Model::Parse do
44
44
  end
45
45
 
46
46
  it "wraps params in the specified value" do
47
- @new_user = Foo::User.new(:fullname => "Tobias Fünke")
48
- @new_user.to_params.should == { :person => { :fullname => "Tobias Fünke" } }
47
+ @new_user = Foo::User.new(fullname: "Tobias Fünke")
48
+ expect(@new_user.to_params).to eq(person: { fullname: "Tobias Fünke" })
49
49
  end
50
50
  end
51
51
 
@@ -58,15 +58,15 @@ describe Her::Model::Parse do
58
58
  end
59
59
 
60
60
  it "wraps params with the class name" do
61
- @new_user = User.new(:fullname => "Tobias Fünke")
62
- @new_user.to_params.should == { :user => { :fullname => "Tobias Fünke" } }
61
+ @new_user = User.new(fullname: "Tobias Fünke")
62
+ expect(@new_user.to_params).to eq(user: { fullname: "Tobias Fünke" })
63
63
  end
64
64
  end
65
65
  end
66
66
 
67
67
  context "when parse_root_in_json is set" do
68
68
  before do
69
- Her::API.setup :url => "https://api.example.com" do |builder|
69
+ Her::API.setup url: "https://api.example.com" do |builder|
70
70
  builder.use Her::Middleware::FirstLevelParseJSON
71
71
  builder.use Faraday::Request::UrlEncoded
72
72
  end
@@ -75,11 +75,11 @@ describe Her::Model::Parse do
75
75
  context "to true" do
76
76
  before do
77
77
  Her::API.default_api.connection.adapter :test do |stub|
78
- stub.post("/users") { |env| [200, {}, { :user => { :id => 1, :fullname => "Lindsay Fünke" } }.to_json] }
79
- stub.get("/users") { |env| [200, {}, [{ :user => { :id => 1, :fullname => "Lindsay Fünke" } }].to_json] }
80
- stub.get("/users/admins") { |env| [200, {}, [{ :user => { :id => 1, :fullname => "Lindsay Fünke" } }].to_json] }
81
- stub.get("/users/1") { |env| [200, {}, { :user => { :id => 1, :fullname => "Lindsay Fünke" } }.to_json] }
82
- stub.put("/users/1") { |env| [200, {}, { :user => { :id => 1, :fullname => "Tobias Fünke Jr." } }.to_json] }
78
+ stub.post("/users") { [200, {}, { user: { id: 1, fullname: "Lindsay Fünke" } }.to_json] }
79
+ stub.get("/users") { [200, {}, [{ user: { id: 1, fullname: "Lindsay Fünke" } }].to_json] }
80
+ stub.get("/users/admins") { [200, {}, [{ user: { id: 1, fullname: "Lindsay Fünke" } }].to_json] }
81
+ stub.get("/users/1") { [200, {}, { user: { id: 1, fullname: "Lindsay Fünke" } }.to_json] }
82
+ stub.put("/users/1") { [200, {}, { user: { id: 1, fullname: "Tobias Fünke Jr." } }.to_json] }
83
83
  end
84
84
 
85
85
  spawn_model("Foo::User") do
@@ -89,53 +89,53 @@ describe Her::Model::Parse do
89
89
  end
90
90
 
91
91
  it "parse the data from the JSON root element after .create" do
92
- @new_user = Foo::User.create(:fullname => "Lindsay Fünke")
93
- @new_user.fullname.should == "Lindsay Fünke"
92
+ @new_user = Foo::User.create(fullname: "Lindsay Fünke")
93
+ expect(@new_user.fullname).to eq("Lindsay Fünke")
94
94
  end
95
95
 
96
96
  it "parse the data from the JSON root element after an arbitrary HTTP request" do
97
97
  @new_user = Foo::User.admins
98
- @new_user.first.fullname.should == "Lindsay Fünke"
98
+ expect(@new_user.first.fullname).to eq("Lindsay Fünke")
99
99
  end
100
100
 
101
101
  it "parse the data from the JSON root element after .all" do
102
102
  @users = Foo::User.all
103
- @users.first.fullname.should == "Lindsay Fünke"
103
+ expect(@users.first.fullname).to eq("Lindsay Fünke")
104
104
  end
105
105
 
106
106
  it "parse the data from the JSON root element after .find" do
107
107
  @user = Foo::User.find(1)
108
- @user.fullname.should == "Lindsay Fünke"
108
+ expect(@user.fullname).to eq("Lindsay Fünke")
109
109
  end
110
110
 
111
111
  it "parse the data from the JSON root element after .save" do
112
112
  @user = Foo::User.find(1)
113
113
  @user.fullname = "Tobias Fünke"
114
114
  @user.save
115
- @user.fullname.should == "Tobias Fünke Jr."
115
+ expect(@user.fullname).to eq("Tobias Fünke Jr.")
116
116
  end
117
117
  end
118
118
 
119
119
  context "to a symbol" do
120
120
  before do
121
121
  Her::API.default_api.connection.adapter :test do |stub|
122
- stub.post("/users") { |env| [200, {}, { :person => { :id => 1, :fullname => "Lindsay Fünke" } }.to_json] }
122
+ stub.post("/users") { [200, {}, { person: { id: 1, fullname: "Lindsay Fünke" } }.to_json] }
123
123
  end
124
124
 
125
125
  spawn_model("Foo::User") { parse_root_in_json :person }
126
126
  end
127
127
 
128
128
  it "parse the data with the symbol" do
129
- @new_user = Foo::User.create(:fullname => "Lindsay Fünke")
130
- @new_user.fullname.should == "Lindsay Fünke"
129
+ @new_user = Foo::User.create(fullname: "Lindsay Fünke")
130
+ expect(@new_user.fullname).to eq("Lindsay Fünke")
131
131
  end
132
132
  end
133
133
 
134
134
  context "in the parent class" do
135
135
  before do
136
136
  Her::API.default_api.connection.adapter :test do |stub|
137
- stub.post("/users") { |env| [200, {}, { :user => { :id => 1, :fullname => "Lindsay Fünke" } }.to_json] }
138
- stub.get("/users") { |env| [200, {}, { :users => [ { :id => 1, :fullname => "Lindsay Fünke" } ] }.to_json] }
137
+ stub.post("/users") { [200, {}, { user: { id: 1, fullname: "Lindsay Fünke" } }.to_json] }
138
+ stub.get("/users") { [200, {}, { users: [{ id: 1, fullname: "Lindsay Fünke" }] }.to_json] }
139
139
  end
140
140
 
141
141
  spawn_model("Foo::Model") { parse_root_in_json true, format: :active_model_serializers }
@@ -147,155 +147,155 @@ describe Her::Model::Parse do
147
147
  end
148
148
 
149
149
  it "parse the data with the symbol" do
150
- @new_user = User.create(:fullname => "Lindsay Fünke")
151
- @new_user.fullname.should == "Lindsay Fünke"
150
+ @new_user = User.create(fullname: "Lindsay Fünke")
151
+ expect(@new_user.fullname).to eq("Lindsay Fünke")
152
152
  end
153
153
 
154
154
  it "parses the collection of data" do
155
155
  @users = User.all
156
- @users.first.fullname.should == "Lindsay Fünke"
156
+ expect(@users.first.fullname).to eq("Lindsay Fünke")
157
157
  end
158
158
  end
159
159
 
160
- context "to true with :format => :active_model_serializers" do
160
+ context "to true with format: :active_model_serializers" do
161
161
  before do
162
162
  Her::API.default_api.connection.adapter :test do |stub|
163
- stub.post("/users") { |env| [200, {}, { :user => { :id => 1, :fullname => "Lindsay Fünke" } }.to_json] }
164
- stub.get("/users") { |env| [200, {}, { :users => [ { :id => 1, :fullname => "Lindsay Fünke" } ] }.to_json] }
165
- stub.get("/users/admins") { |env| [200, {}, { :users => [ { :id => 1, :fullname => "Lindsay Fünke" } ] }.to_json] }
166
- stub.get("/users/1") { |env| [200, {}, { :user => { :id => 1, :fullname => "Lindsay Fünke" } }.to_json] }
167
- stub.put("/users/1") { |env| [200, {}, { :user => { :id => 1, :fullname => "Tobias Fünke Jr." } }.to_json] }
163
+ stub.post("/users") { [200, {}, { user: { id: 1, fullname: "Lindsay Fünke" } }.to_json] }
164
+ stub.get("/users") { [200, {}, { users: [{ id: 1, fullname: "Lindsay Fünke" }] }.to_json] }
165
+ stub.get("/users/admins") { [200, {}, { users: [{ id: 1, fullname: "Lindsay Fünke" }] }.to_json] }
166
+ stub.get("/users/1") { [200, {}, { user: { id: 1, fullname: "Lindsay Fünke" } }.to_json] }
167
+ stub.put("/users/1") { [200, {}, { user: { id: 1, fullname: "Tobias Fünke Jr." } }.to_json] }
168
168
  end
169
169
 
170
170
  spawn_model("Foo::User") do
171
- parse_root_in_json true, :format => :active_model_serializers
171
+ parse_root_in_json true, format: :active_model_serializers
172
172
  custom_get :admins
173
173
  end
174
174
  end
175
175
 
176
176
  it "parse the data from the JSON root element after .create" do
177
- @new_user = Foo::User.create(:fullname => "Lindsay Fünke")
178
- @new_user.fullname.should == "Lindsay Fünke"
177
+ @new_user = Foo::User.create(fullname: "Lindsay Fünke")
178
+ expect(@new_user.fullname).to eq("Lindsay Fünke")
179
179
  end
180
180
 
181
181
  it "parse the data from the JSON root element after an arbitrary HTTP request" do
182
182
  @users = Foo::User.admins
183
- @users.first.fullname.should == "Lindsay Fünke"
183
+ expect(@users.first.fullname).to eq("Lindsay Fünke")
184
184
  end
185
185
 
186
186
  it "parse the data from the JSON root element after .all" do
187
187
  @users = Foo::User.all
188
- @users.first.fullname.should == "Lindsay Fünke"
188
+ expect(@users.first.fullname).to eq("Lindsay Fünke")
189
189
  end
190
190
 
191
191
  it "parse the data from the JSON root element after .find" do
192
192
  @user = Foo::User.find(1)
193
- @user.fullname.should == "Lindsay Fünke"
193
+ expect(@user.fullname).to eq("Lindsay Fünke")
194
194
  end
195
195
 
196
196
  it "parse the data from the JSON root element after .save" do
197
197
  @user = Foo::User.find(1)
198
198
  @user.fullname = "Tobias Fünke"
199
199
  @user.save
200
- @user.fullname.should == "Tobias Fünke Jr."
200
+ expect(@user.fullname).to eq("Tobias Fünke Jr.")
201
201
  end
202
202
  end
203
203
  end
204
204
 
205
205
  context "when to_params is set" do
206
206
  before do
207
- Her::API.setup :url => "https://api.example.com" do |builder|
207
+ Her::API.setup url: "https://api.example.com" do |builder|
208
208
  builder.use Her::Middleware::FirstLevelParseJSON
209
209
  builder.use Faraday::Request::UrlEncoded
210
210
  builder.adapter :test do |stub|
211
- stub.post("/users") { |env| ok! :id => 1, :fullname => params(env)['fullname'] }
211
+ stub.post("/users") { |env| ok! id: 1, fullname: params(env)["fullname"] }
212
212
  end
213
213
  end
214
214
 
215
215
  spawn_model "Foo::User" do
216
216
  def to_params
217
- { :fullname => "Lindsay Fünke" }
217
+ { fullname: "Lindsay Fünke" }
218
218
  end
219
219
  end
220
220
  end
221
221
 
222
222
  it "changes the request parameters for one-line resource creation" do
223
- @user = Foo::User.create(:fullname => "Tobias Fünke")
224
- @user.fullname.should == "Lindsay Fünke"
223
+ @user = Foo::User.create(fullname: "Tobias Fünke")
224
+ expect(@user.fullname).to eq("Lindsay Fünke")
225
225
  end
226
226
 
227
227
  it "changes the request parameters for Model.new + #save" do
228
- @user = Foo::User.new(:fullname => "Tobias Fünke")
228
+ @user = Foo::User.new(fullname: "Tobias Fünke")
229
229
  @user.save
230
- @user.fullname.should == "Lindsay Fünke"
230
+ expect(@user.fullname).to eq("Lindsay Fünke")
231
231
  end
232
232
  end
233
233
 
234
234
  context "when parse_root_in_json set json_api to true" do
235
235
  before do
236
- Her::API.setup :url => "https://api.example.com" do |builder|
236
+ Her::API.setup url: "https://api.example.com" do |builder|
237
237
  builder.use Her::Middleware::FirstLevelParseJSON
238
238
  builder.use Faraday::Request::UrlEncoded
239
239
  builder.adapter :test do |stub|
240
- stub.get("/users") { |env| [200, {}, { :users => [{ :id => 1, :fullname => "Lindsay Fünke" }] }.to_json] }
241
- stub.get("/users/admins") { |env| [200, {}, { :users => [{ :id => 1, :fullname => "Lindsay Fünke" }] }.to_json] }
242
- stub.get("/users/1") { |env| [200, {}, { :users => [{ :id => 1, :fullname => "Lindsay Fünke" }] }.to_json] }
243
- stub.post("/users") { |env| [200, {}, { :users => [{ :fullname => "Lindsay Fünke" }] }.to_json] }
244
- stub.put("/users/1") { |env| [200, {}, { :users => [{ :id => 1, :fullname => "Tobias Fünke Jr." }] }.to_json] }
240
+ stub.get("/users") { [200, {}, { users: [{ id: 1, fullname: "Lindsay Fünke" }] }.to_json] }
241
+ stub.get("/users/admins") { [200, {}, { users: [{ id: 1, fullname: "Lindsay Fünke" }] }.to_json] }
242
+ stub.get("/users/1") { [200, {}, { users: [{ id: 1, fullname: "Lindsay Fünke" }] }.to_json] }
243
+ stub.post("/users") { [200, {}, { users: [{ fullname: "Lindsay Fünke" }] }.to_json] }
244
+ stub.put("/users/1") { [200, {}, { users: [{ id: 1, fullname: "Tobias Fünke Jr." }] }.to_json] }
245
245
  end
246
246
  end
247
247
 
248
248
  spawn_model("Foo::User") do
249
- parse_root_in_json true, :format => :json_api
249
+ parse_root_in_json true, format: :json_api
250
250
  include_root_in_json true
251
251
  custom_get :admins
252
252
  end
253
253
  end
254
254
 
255
255
  it "parse the data from the JSON root element after .create" do
256
- @new_user = Foo::User.create(:fullname => "Lindsay Fünke")
257
- @new_user.fullname.should == "Lindsay Fünke"
256
+ @new_user = Foo::User.create(fullname: "Lindsay Fünke")
257
+ expect(@new_user.fullname).to eq("Lindsay Fünke")
258
258
  end
259
259
 
260
260
  it "parse the data from the JSON root element after an arbitrary HTTP request" do
261
261
  @new_user = Foo::User.admins
262
- @new_user.first.fullname.should == "Lindsay Fünke"
262
+ expect(@new_user.first.fullname).to eq("Lindsay Fünke")
263
263
  end
264
264
 
265
265
  it "parse the data from the JSON root element after .all" do
266
266
  @users = Foo::User.all
267
- @users.first.fullname.should == "Lindsay Fünke"
267
+ expect(@users.first.fullname).to eq("Lindsay Fünke")
268
268
  end
269
269
 
270
270
  it "parse the data from the JSON root element after .find" do
271
271
  @user = Foo::User.find(1)
272
- @user.fullname.should == "Lindsay Fünke"
272
+ expect(@user.fullname).to eq("Lindsay Fünke")
273
273
  end
274
274
 
275
275
  it "parse the data from the JSON root element after .save" do
276
276
  @user = Foo::User.find(1)
277
277
  @user.fullname = "Tobias Fünke"
278
278
  @user.save
279
- @user.fullname.should == "Tobias Fünke Jr."
279
+ expect(@user.fullname).to eq("Tobias Fünke Jr.")
280
280
  end
281
281
 
282
282
  it "parse the data from the JSON root element after new/save" do
283
283
  @user = Foo::User.new
284
284
  @user.fullname = "Lindsay Fünke (before save)"
285
285
  @user.save
286
- @user.fullname.should == "Lindsay Fünke"
286
+ expect(@user.fullname).to eq("Lindsay Fünke")
287
287
  end
288
288
  end
289
289
 
290
290
  context "when include_root_in_json set json_api" do
291
291
  before do
292
- Her::API.setup :url => "https://api.example.com" do |builder|
292
+ Her::API.setup url: "https://api.example.com" do |builder|
293
293
  builder.use Her::Middleware::FirstLevelParseJSON
294
294
  builder.use Faraday::Request::UrlEncoded
295
295
  end
296
296
 
297
297
  Her::API.default_api.connection.adapter :test do |stub|
298
- stub.post("/users") { |env| [200, {}, { :users => [{ :id => 1, :fullname => params(env)[:users][:fullname] }] }.to_json] }
298
+ stub.post("/users") { |env| [200, {}, { users: [{ id: 1, fullname: params(env)[:users][:fullname] }] }.to_json] }
299
299
  end
300
300
  end
301
301
 
@@ -309,26 +309,26 @@ describe Her::Model::Parse do
309
309
  end
310
310
 
311
311
  it "wraps params in the element name in `to_params`" do
312
- @new_user = Foo::User.new(:fullname => "Tobias Fünke")
313
- @new_user.to_params.should == { :users => [{ :fullname => "Tobias Fünke" }] }
312
+ @new_user = Foo::User.new(fullname: "Tobias Fünke")
313
+ expect(@new_user.to_params).to eq(users: [{ fullname: "Tobias Fünke" }])
314
314
  end
315
315
 
316
316
  it "wraps params in the element name in `.where`" do
317
- @new_user = Foo::User.where(:fullname => "Tobias Fünke").build
318
- @new_user.fullname.should == "Tobias Fünke"
317
+ @new_user = Foo::User.where(fullname: "Tobias Fünke").build
318
+ expect(@new_user.fullname).to eq("Tobias Fünke")
319
319
  end
320
320
  end
321
321
  end
322
322
 
323
- context 'when send_only_modified_attributes is set' do
323
+ context "when send_only_modified_attributes is set" do
324
324
  before do
325
- Her::API.setup :url => "https://api.example.com", :send_only_modified_attributes => true do |builder|
325
+ Her::API.setup url: "https://api.example.com", send_only_modified_attributes: true do |builder|
326
326
  builder.use Her::Middleware::FirstLevelParseJSON
327
327
  builder.use Faraday::Request::UrlEncoded
328
328
  end
329
329
 
330
330
  Her::API.default_api.connection.adapter :test do |stub|
331
- stub.get("/users/1") { |env| [200, {}, { :id => 1, :first_name => "Gooby", :last_name => "Pls" }.to_json] }
331
+ stub.get("/users/1") { [200, {}, { id: 1, first_name: "Gooby", last_name: "Pls" }.to_json] }
332
332
  end
333
333
 
334
334
  spawn_model "Foo::User" do
@@ -336,10 +336,10 @@ describe Her::Model::Parse do
336
336
  end
337
337
  end
338
338
 
339
- it 'only sends the attributes that were modified' do
339
+ it "only sends the attributes that were modified" do
340
340
  user = Foo::User.find 1
341
- user.first_name = 'Someone'
342
- expect(user.to_params).to eql(:user => {:first_name => 'Someone'})
341
+ user.first_name = "Someone"
342
+ expect(user.to_params).to eql(user: { first_name: "Someone" })
343
343
  end
344
344
  end
345
345
  end
@@ -10,64 +10,64 @@ describe Her::Model::Paths do
10
10
 
11
11
  describe "#request_path" do
12
12
  it "builds paths with defaults" do
13
- Foo::User.new(:id => "foo").request_path.should == "users/foo"
14
- Foo::User.new(:id => nil).request_path.should == "users"
15
- Foo::User.new().request_path.should == "users"
13
+ expect(Foo::User.new(id: "foo").request_path).to eq("users/foo")
14
+ expect(Foo::User.new(id: nil).request_path).to eq("users")
15
+ expect(Foo::User.new.request_path).to eq("users")
16
16
  end
17
17
 
18
18
  it "builds paths with custom collection path" do
19
19
  Foo::User.collection_path "/utilisateurs"
20
- Foo::User.new(:id => "foo").request_path.should == "/utilisateurs/foo"
21
- Foo::User.new().request_path.should == "/utilisateurs"
20
+ expect(Foo::User.new(id: "foo").request_path).to eq("/utilisateurs/foo")
21
+ expect(Foo::User.new.request_path).to eq("/utilisateurs")
22
22
  end
23
23
 
24
24
  it "builds paths with custom relative collection path" do
25
25
  Foo::User.collection_path "utilisateurs"
26
- Foo::User.new(:id => "foo").request_path.should == "utilisateurs/foo"
27
- Foo::User.new().request_path.should == "utilisateurs"
26
+ expect(Foo::User.new(id: "foo").request_path).to eq("utilisateurs/foo")
27
+ expect(Foo::User.new.request_path).to eq("utilisateurs")
28
28
  end
29
29
 
30
30
  it "builds paths with custom collection path with multiple variables" do
31
31
  Foo::User.collection_path "/organizations/:organization_id/utilisateurs"
32
32
 
33
- Foo::User.new(:id => "foo").request_path(:_organization_id => "acme").should == "/organizations/acme/utilisateurs/foo"
34
- Foo::User.new().request_path(:_organization_id => "acme").should == "/organizations/acme/utilisateurs"
33
+ expect(Foo::User.new(id: "foo").request_path(_organization_id: "acme")).to eq("/organizations/acme/utilisateurs/foo")
34
+ expect(Foo::User.new.request_path(_organization_id: "acme")).to eq("/organizations/acme/utilisateurs")
35
35
 
36
- Foo::User.new(:id => "foo", :organization_id => "acme").request_path.should == "/organizations/acme/utilisateurs/foo"
37
- Foo::User.new(:organization_id => "acme").request_path.should == "/organizations/acme/utilisateurs"
36
+ expect(Foo::User.new(id: "foo", organization_id: "acme").request_path).to eq("/organizations/acme/utilisateurs/foo")
37
+ expect(Foo::User.new(organization_id: "acme").request_path).to eq("/organizations/acme/utilisateurs")
38
38
  end
39
39
 
40
40
  it "builds paths with custom relative collection path with multiple variables" do
41
41
  Foo::User.collection_path "organizations/:organization_id/utilisateurs"
42
42
 
43
- Foo::User.new(:id => "foo").request_path(:_organization_id => "acme").should == "organizations/acme/utilisateurs/foo"
44
- Foo::User.new().request_path(:_organization_id => "acme").should == "organizations/acme/utilisateurs"
43
+ expect(Foo::User.new(id: "foo").request_path(_organization_id: "acme")).to eq("organizations/acme/utilisateurs/foo")
44
+ expect(Foo::User.new.request_path(_organization_id: "acme")).to eq("organizations/acme/utilisateurs")
45
45
 
46
- Foo::User.new(:id => "foo", :organization_id => "acme").request_path.should == "organizations/acme/utilisateurs/foo"
47
- Foo::User.new(:organization_id => "acme").request_path.should == "organizations/acme/utilisateurs"
46
+ expect(Foo::User.new(id: "foo", organization_id: "acme").request_path).to eq("organizations/acme/utilisateurs/foo")
47
+ expect(Foo::User.new(organization_id: "acme").request_path).to eq("organizations/acme/utilisateurs")
48
48
  end
49
49
 
50
50
  it "builds paths with custom item path" do
51
51
  Foo::User.resource_path "/utilisateurs/:id"
52
- Foo::User.new(:id => "foo").request_path.should == "/utilisateurs/foo"
53
- Foo::User.new().request_path.should == "users"
52
+ expect(Foo::User.new(id: "foo").request_path).to eq("/utilisateurs/foo")
53
+ expect(Foo::User.new.request_path).to eq("users")
54
54
  end
55
55
 
56
56
  it "builds paths with custom relative item path" do
57
57
  Foo::User.resource_path "utilisateurs/:id"
58
- Foo::User.new(:id => "foo").request_path.should == "utilisateurs/foo"
59
- Foo::User.new().request_path.should == "users"
58
+ expect(Foo::User.new(id: "foo").request_path).to eq("utilisateurs/foo")
59
+ expect(Foo::User.new.request_path).to eq("users")
60
60
  end
61
61
 
62
62
  it "raises exceptions when building a path without required custom variables" do
63
63
  Foo::User.collection_path "/organizations/:organization_id/utilisateurs"
64
- expect { Foo::User.new(:id => "foo").request_path }.to raise_error(Her::Errors::PathError, "Missing :_organization_id parameter to build the request path. Path is `/organizations/:organization_id/utilisateurs/:id`. Parameters are `{:id=>\"foo\"}`.")
64
+ expect { Foo::User.new(id: "foo").request_path }.to raise_error(Her::Errors::PathError, "Missing :_organization_id parameter to build the request path. Path is `/organizations/:organization_id/utilisateurs/:id`. Parameters are `{:id=>\"foo\"}`.")
65
65
  end
66
66
 
67
67
  it "escapes the variable values" do
68
68
  Foo::User.collection_path "organizations/:organization_id/utilisateurs"
69
- Foo::User.new(:id => "Привет").request_path(:_organization_id => 'лол').should == "organizations/%D0%BB%D0%BE%D0%BB/utilisateurs/%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82"
70
- Foo::User.new(:organization_id => 'лол', :id => "Привет").request_path.should == "organizations/%D0%BB%D0%BE%D0%BB/utilisateurs/%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82"
69
+ expect(Foo::User.new(id: "Привет").request_path(_organization_id: "лол")).to eq("organizations/%D0%BB%D0%BE%D0%BB/utilisateurs/%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82")
70
+ expect(Foo::User.new(organization_id: "лол", id: "Привет").request_path).to eq("organizations/%D0%BB%D0%BE%D0%BB/utilisateurs/%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82")
71
71
  end
72
72
  end
73
73
  end
@@ -79,65 +79,65 @@ describe Her::Model::Paths do
79
79
 
80
80
  describe "#request_path" do
81
81
  it "builds paths with defaults" do
82
- Foo::AdminUser.new(:id => "foo").request_path.should == "admin_users/foo"
83
- Foo::AdminUser.new().request_path.should == "admin_users"
82
+ expect(Foo::AdminUser.new(id: "foo").request_path).to eq("admin_users/foo")
83
+ expect(Foo::AdminUser.new.request_path).to eq("admin_users")
84
84
  end
85
85
 
86
86
  it "builds paths with custom collection path" do
87
87
  Foo::AdminUser.collection_path "/users"
88
- Foo::AdminUser.new(:id => "foo").request_path.should == "/users/foo"
89
- Foo::AdminUser.new().request_path.should == "/users"
88
+ expect(Foo::AdminUser.new(id: "foo").request_path).to eq("/users/foo")
89
+ expect(Foo::AdminUser.new.request_path).to eq("/users")
90
90
  end
91
91
 
92
92
  it "builds paths with custom relative collection path" do
93
93
  Foo::AdminUser.collection_path "users"
94
- Foo::AdminUser.new(:id => "foo").request_path.should == "users/foo"
95
- Foo::AdminUser.new().request_path.should == "users"
94
+ expect(Foo::AdminUser.new(id: "foo").request_path).to eq("users/foo")
95
+ expect(Foo::AdminUser.new.request_path).to eq("users")
96
96
  end
97
97
 
98
98
  it "builds paths with custom collection path with multiple variables" do
99
99
  Foo::AdminUser.collection_path "/organizations/:organization_id/users"
100
- Foo::AdminUser.new(:id => "foo").request_path(:_organization_id => "acme").should == "/organizations/acme/users/foo"
101
- Foo::AdminUser.new().request_path(:_organization_id => "acme").should == "/organizations/acme/users"
100
+ expect(Foo::AdminUser.new(id: "foo").request_path(_organization_id: "acme")).to eq("/organizations/acme/users/foo")
101
+ expect(Foo::AdminUser.new.request_path(_organization_id: "acme")).to eq("/organizations/acme/users")
102
102
  end
103
103
 
104
104
  it "builds paths with custom relative collection path with multiple variables" do
105
105
  Foo::AdminUser.collection_path "organizations/:organization_id/users"
106
- Foo::AdminUser.new(:id => "foo").request_path(:_organization_id => "acme").should == "organizations/acme/users/foo"
107
- Foo::AdminUser.new().request_path(:_organization_id => "acme").should == "organizations/acme/users"
106
+ expect(Foo::AdminUser.new(id: "foo").request_path(_organization_id: "acme")).to eq("organizations/acme/users/foo")
107
+ expect(Foo::AdminUser.new.request_path(_organization_id: "acme")).to eq("organizations/acme/users")
108
108
  end
109
109
 
110
110
  it "builds paths with custom item path" do
111
111
  Foo::AdminUser.resource_path "/users/:id"
112
- Foo::AdminUser.new(:id => "foo").request_path.should == "/users/foo"
113
- Foo::AdminUser.new().request_path.should == "admin_users"
112
+ expect(Foo::AdminUser.new(id: "foo").request_path).to eq("/users/foo")
113
+ expect(Foo::AdminUser.new.request_path).to eq("admin_users")
114
114
  end
115
115
 
116
116
  it "builds paths with custom relative item path" do
117
117
  Foo::AdminUser.resource_path "users/:id"
118
- Foo::AdminUser.new(:id => "foo").request_path.should == "users/foo"
119
- Foo::AdminUser.new().request_path.should == "admin_users"
118
+ expect(Foo::AdminUser.new(id: "foo").request_path).to eq("users/foo")
119
+ expect(Foo::AdminUser.new.request_path).to eq("admin_users")
120
120
  end
121
121
 
122
122
  it "raises exceptions when building a path without required custom variables" do
123
123
  Foo::AdminUser.collection_path "/organizations/:organization_id/users"
124
- expect { Foo::AdminUser.new(:id => "foo").request_path }.to raise_error(Her::Errors::PathError, "Missing :_organization_id parameter to build the request path. Path is `/organizations/:organization_id/users/:id`. Parameters are `{:id=>\"foo\"}`.")
124
+ expect { Foo::AdminUser.new(id: "foo").request_path }.to raise_error(Her::Errors::PathError, "Missing :_organization_id parameter to build the request path. Path is `/organizations/:organization_id/users/:id`. Parameters are `{:id=>\"foo\"}`.")
125
125
  end
126
126
 
127
127
  it "raises exceptions when building a relative path without required custom variables" do
128
128
  Foo::AdminUser.collection_path "organizations/:organization_id/users"
129
- expect { Foo::AdminUser.new(:id => "foo").request_path }.to raise_error(Her::Errors::PathError, "Missing :_organization_id parameter to build the request path. Path is `organizations/:organization_id/users/:id`. Parameters are `{:id=>\"foo\"}`.")
129
+ expect { Foo::AdminUser.new(id: "foo").request_path }.to raise_error(Her::Errors::PathError, "Missing :_organization_id parameter to build the request path. Path is `organizations/:organization_id/users/:id`. Parameters are `{:id=>\"foo\"}`.")
130
130
  end
131
131
  end
132
132
  end
133
133
 
134
134
  context "children model" do
135
135
  before do
136
- Her::API.setup :url => "https://api.example.com" do |builder|
136
+ Her::API.setup url: "https://api.example.com" do |builder|
137
137
  builder.use Her::Middleware::FirstLevelParseJSON
138
138
  builder.use Faraday::Request::UrlEncoded
139
139
  builder.adapter :test do |stub|
140
- stub.get("/users/foo") { |env| [200, {}, { :id => 'foo' }.to_json] }
140
+ stub.get("/users/foo") { [200, {}, { id: "foo" }.to_json] }
141
141
  end
142
142
  end
143
143
 
@@ -148,8 +148,8 @@ describe Her::Model::Paths do
148
148
  end
149
149
 
150
150
  it "builds path using the children model name" do
151
- User.find('foo').id.should == 'foo'
152
- User.find('foo').id.should == 'foo'
151
+ expect(User.find("foo").id).to eq("foo")
152
+ expect(User.find("foo").id).to eq("foo")
153
153
  end
154
154
  end
155
155
 
@@ -160,34 +160,34 @@ describe Her::Model::Paths do
160
160
 
161
161
  describe "#request_path" do
162
162
  it "builds paths with defaults" do
163
- Foo::User.new(:id => "foo").request_path.should == "users/foo"
164
- Foo::User.new.request_path.should == "users"
163
+ expect(Foo::User.new(id: "foo").request_path).to eq("users/foo")
164
+ expect(Foo::User.new.request_path).to eq("users")
165
165
  end
166
166
  end
167
167
  end
168
168
 
169
- context 'custom primary key' do
169
+ context "custom primary key" do
170
170
  before do
171
- spawn_model 'User' do
172
- primary_key 'UserId'
173
- resource_path 'users/:UserId'
171
+ spawn_model "User" do
172
+ primary_key "UserId"
173
+ resource_path "users/:UserId"
174
174
  end
175
175
 
176
- spawn_model 'Customer' do
176
+ spawn_model "Customer" do
177
177
  primary_key :customer_id
178
- resource_path 'customers/:id'
178
+ resource_path "customers/:id"
179
179
  end
180
180
  end
181
181
 
182
- describe '#request_path' do
183
- it 'uses the correct primary key attribute' do
184
- User.new(:UserId => 'foo').request_path.should == 'users/foo'
185
- User.new(:id => 'foo').request_path.should == 'users'
182
+ describe "#request_path" do
183
+ it "uses the correct primary key attribute" do
184
+ expect(User.new(UserId: "foo").request_path).to eq("users/foo")
185
+ expect(User.new(id: "foo").request_path).to eq("users")
186
186
  end
187
187
 
188
- it 'replaces :id with the appropriate primary key' do
189
- Customer.new(:customer_id => 'joe').request_path.should == 'customers/joe'
190
- Customer.new(:id => 'joe').request_path.should == 'customers'
188
+ it "replaces :id with the appropriate primary key" do
189
+ expect(Customer.new(customer_id: "joe").request_path).to eq("customers/joe")
190
+ expect(Customer.new(id: "joe").request_path).to eq("customers")
191
191
  end
192
192
  end
193
193
  end
@@ -195,15 +195,15 @@ describe Her::Model::Paths do
195
195
 
196
196
  context "making subdomain HTTP requests" do
197
197
  before do
198
- Her::API.setup :url => "https://api.example.com/" do |builder|
198
+ Her::API.setup url: "https://api.example.com/" do |builder|
199
199
  builder.use Her::Middleware::FirstLevelParseJSON
200
200
  builder.use Faraday::Request::UrlEncoded
201
201
  builder.adapter :test do |stub|
202
- stub.get("organizations/2/users") { |env| [200, {}, [{ :id => 1, :fullname => "Tobias Fünke", :organization_id => 2 }, { :id => 2, :fullname => "Lindsay Fünke", :organization_id => 2 }].to_json] }
203
- stub.post("organizations/2/users") { |env| [200, {}, { :id => 1, :fullname => "Tobias Fünke", :organization_id => 2 }.to_json] }
204
- stub.put("organizations/2/users/1") { |env| [200, {}, { :id => 1, :fullname => "Lindsay Fünke", :organization_id => 2 }.to_json] }
205
- stub.get("organizations/2/users/1") { |env| [200, {}, { :id => 1, :fullname => "Tobias Fünke", :organization_id => 2, :active => true }.to_json] }
206
- stub.delete("organizations/2/users/1") { |env| [200, {}, { :id => 1, :fullname => "Lindsay Fünke", :organization_id => 2, :active => false }.to_json] }
202
+ stub.get("organizations/2/users") { [200, {}, [{ id: 1, fullname: "Tobias Fünke", organization_id: 2 }, { id: 2, fullname: "Lindsay Fünke", organization_id: 2 }].to_json] }
203
+ stub.post("organizations/2/users") { [200, {}, { id: 1, fullname: "Tobias Fünke", organization_id: 2 }.to_json] }
204
+ stub.put("organizations/2/users/1") { [200, {}, { id: 1, fullname: "Lindsay Fünke", organization_id: 2 }.to_json] }
205
+ stub.get("organizations/2/users/1") { [200, {}, { id: 1, fullname: "Tobias Fünke", organization_id: 2, active: true }.to_json] }
206
+ stub.delete("organizations/2/users/1") { [200, {}, { id: 1, fullname: "Lindsay Fünke", organization_id: 2, active: false }.to_json] }
207
207
  end
208
208
  end
209
209
 
@@ -214,94 +214,94 @@ describe Her::Model::Paths do
214
214
 
215
215
  describe "fetching a resource" do
216
216
  it "maps a single resource to a Ruby object" do
217
- @user = Foo::User.find(1, :_organization_id => 2)
218
- @user.id.should == 1
219
- @user.fullname.should == "Tobias Fünke"
217
+ @user = Foo::User.find(1, _organization_id: 2)
218
+ expect(@user.id).to eq(1)
219
+ expect(@user.fullname).to eq("Tobias Fünke")
220
220
  end
221
221
 
222
222
  it "maps a single resource using a scope to a Ruby object" do
223
- Foo::User.scope :for_organization, lambda { |o| where(:organization_id => o) }
223
+ Foo::User.scope :for_organization, ->(o) { where(organization_id: o) }
224
224
  @user = Foo::User.for_organization(2).find(1)
225
- @user.id.should == 1
226
- @user.fullname.should == "Tobias Fünke"
225
+ expect(@user.id).to eq(1)
226
+ expect(@user.fullname).to eq("Tobias Fünke")
227
227
  end
228
228
  end
229
229
 
230
230
  describe "fetching a collection" do
231
231
  it "maps a collection of resources to an array of Ruby objects" do
232
- @users = Foo::User.where(:_organization_id => 2).all
233
- @users.length.should == 2
234
- @users.first.fullname.should == "Tobias Fünke"
232
+ @users = Foo::User.where(_organization_id: 2).all
233
+ expect(@users.length).to eq(2)
234
+ expect(@users.first.fullname).to eq("Tobias Fünke")
235
235
  end
236
236
  end
237
237
 
238
238
  describe "handling new resource" do
239
239
  it "handles new resource" do
240
- @new_user = Foo::User.new(:fullname => "Tobias Fünke", :organization_id => 2)
241
- @new_user.new?.should be_truthy
240
+ @new_user = Foo::User.new(fullname: "Tobias Fünke", organization_id: 2)
241
+ expect(@new_user.new?).to be_truthy
242
242
 
243
- @existing_user = Foo::User.find(1, :_organization_id => 2)
244
- @existing_user.new?.should be_falsey
243
+ @existing_user = Foo::User.find(1, _organization_id: 2)
244
+ expect(@existing_user.new?).to be_falsey
245
245
  end
246
246
  end
247
247
 
248
248
  describe "creating resources" do
249
249
  it "handle one-line resource creation" do
250
- @user = Foo::User.create(:fullname => "Tobias Fünke", :organization_id => 2)
251
- @user.id.should == 1
252
- @user.fullname.should == "Tobias Fünke"
250
+ @user = Foo::User.create(fullname: "Tobias Fünke", organization_id: 2)
251
+ expect(@user.id).to eq(1)
252
+ expect(@user.fullname).to eq("Tobias Fünke")
253
253
  end
254
254
 
255
255
  it "handle resource creation through Model.new + #save" do
256
- @user = Foo::User.new(:fullname => "Tobias Fünke", :organization_id => 2)
256
+ @user = Foo::User.new(fullname: "Tobias Fünke", organization_id: 2)
257
257
  @user.save
258
- @user.fullname.should == "Tobias Fünke"
258
+ expect(@user.fullname).to eq("Tobias Fünke")
259
259
  end
260
260
  end
261
261
 
262
262
  context "updating resources" do
263
263
  it "handle resource data update without saving it" do
264
- @user = Foo::User.find(1, :_organization_id => 2)
265
- @user.fullname.should == "Tobias Fünke"
264
+ @user = Foo::User.find(1, _organization_id: 2)
265
+ expect(@user.fullname).to eq("Tobias Fünke")
266
266
  @user.fullname = "Kittie Sanchez"
267
- @user.fullname.should == "Kittie Sanchez"
267
+ expect(@user.fullname).to eq("Kittie Sanchez")
268
268
  end
269
269
 
270
270
  it "handle resource update through the .update class method" do
271
- @user = Foo::User.save_existing(1, { :fullname => "Lindsay Fünke", :organization_id => 2 })
272
- @user.fullname.should == "Lindsay Fünke"
271
+ @user = Foo::User.save_existing(1, fullname: "Lindsay Fünke", organization_id: 2)
272
+ expect(@user.fullname).to eq("Lindsay Fünke")
273
273
  end
274
274
 
275
275
  it "handle resource update through #save on an existing resource" do
276
- @user = Foo::User.find(1, :_organization_id => 2)
276
+ @user = Foo::User.find(1, _organization_id: 2)
277
277
  @user.fullname = "Lindsay Fünke"
278
278
  @user.save
279
- @user.fullname.should == "Lindsay Fünke"
279
+ expect(@user.fullname).to eq("Lindsay Fünke")
280
280
  end
281
281
  end
282
282
 
283
283
  context "deleting resources" do
284
284
  it "handle resource deletion through the .destroy class method" do
285
- @user = Foo::User.destroy_existing(1, :_organization_id => 2)
286
- @user.active.should be_falsey
285
+ @user = Foo::User.destroy_existing(1, _organization_id: 2)
286
+ expect(@user.active).to be_falsey
287
287
  end
288
288
 
289
289
  it "handle resource deletion through #destroy on an existing resource" do
290
- @user = Foo::User.find(1, :_organization_id => 2)
290
+ @user = Foo::User.find(1, _organization_id: 2)
291
291
  @user.destroy
292
- @user.active.should be_falsey
292
+ expect(@user.active).to be_falsey
293
293
  end
294
294
  end
295
295
  end
296
296
 
297
297
  context "making path HTTP requests" do
298
298
  before do
299
- Her::API.setup :url => "https://example.com/api/" do |builder|
299
+ Her::API.setup url: "https://example.com/api/" do |builder|
300
300
  builder.use Her::Middleware::FirstLevelParseJSON
301
301
  builder.use Faraday::Request::UrlEncoded
302
302
  builder.adapter :test do |stub|
303
- stub.get("/api/organizations/2/users") { |env| [200, {}, [{ :id => 1, :fullname => "Tobias Fünke", :organization_id => 2 }, { :id => 2, :fullname => "Lindsay Fünke", :organization_id => 2 }].to_json] }
304
- stub.get("/api/organizations/2/users/1") { |env| [200, {}, { :id => 1, :fullname => "Tobias Fünke", :organization_id => 2, :active => true }.to_json] }
303
+ stub.get("/api/organizations/2/users") { [200, {}, [{ id: 1, fullname: "Tobias Fünke", organization_id: 2 }, { id: 2, fullname: "Lindsay Fünke", organization_id: 2 }].to_json] }
304
+ stub.get("/api/organizations/2/users/1") { [200, {}, { id: 1, fullname: "Tobias Fünke", organization_id: 2, active: true }.to_json] }
305
305
  end
306
306
  end
307
307
 
@@ -312,35 +312,35 @@ describe Her::Model::Paths do
312
312
 
313
313
  describe "fetching a resource" do
314
314
  it "maps a single resource to a Ruby object" do
315
- @user = Foo::User.find(1, :_organization_id => 2)
316
- @user.id.should == 1
317
- @user.fullname.should == "Tobias Fünke"
315
+ @user = Foo::User.find(1, _organization_id: 2)
316
+ expect(@user.id).to eq(1)
317
+ expect(@user.fullname).to eq("Tobias Fünke")
318
318
  end
319
319
  end
320
320
 
321
321
  describe "fetching a collection" do
322
322
  it "maps a collection of resources to an array of Ruby objects" do
323
- @users = Foo::User.where(:_organization_id => 2).all
324
- @users.length.should == 2
325
- @users.first.fullname.should == "Tobias Fünke"
323
+ @users = Foo::User.where(_organization_id: 2).all
324
+ expect(@users.length).to eq(2)
325
+ expect(@users.first.fullname).to eq("Tobias Fünke")
326
326
  end
327
327
  end
328
328
 
329
329
  describe "fetching a resource with absolute path" do
330
330
  it "maps a single resource to a Ruby object" do
331
- Foo::User.resource_path '/api/' + Foo::User.resource_path
332
- @user = Foo::User.find(1, :_organization_id => 2)
333
- @user.id.should == 1
334
- @user.fullname.should == "Tobias Fünke"
331
+ Foo::User.resource_path "/api/" + Foo::User.resource_path
332
+ @user = Foo::User.find(1, _organization_id: 2)
333
+ expect(@user.id).to eq(1)
334
+ expect(@user.fullname).to eq("Tobias Fünke")
335
335
  end
336
336
  end
337
337
 
338
338
  describe "fetching a collection with absolute path" do
339
339
  it "maps a collection of resources to an array of Ruby objects" do
340
- Foo::User.collection_path '/api/' + Foo::User.collection_path
341
- @users = Foo::User.where(:_organization_id => 2).all
342
- @users.length.should == 2
343
- @users.first.fullname.should == "Tobias Fünke"
340
+ Foo::User.collection_path "/api/" + Foo::User.collection_path
341
+ @users = Foo::User.where(_organization_id: 2).all
342
+ expect(@users.length).to eq(2)
343
+ expect(@users.first.fullname).to eq("Tobias Fünke")
344
344
  end
345
345
  end
346
346
  end