spree_api 2.3.4 → 2.3.5

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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/spree/api/base_controller.rb +2 -2
  3. data/app/controllers/spree/api/option_types_controller.rb +2 -2
  4. data/app/controllers/spree/api/shipments_controller.rb +2 -2
  5. data/app/controllers/spree/api/taxons_controller.rb +1 -1
  6. data/app/helpers/spree/api/api_helpers.rb +0 -2
  7. data/app/views/spree/api/shipments/small.v1.rabl +4 -0
  8. data/app/views/spree/api/variants/small.v1.rabl +2 -0
  9. data/lib/spree/api/testing_support/helpers.rb +6 -6
  10. data/lib/spree/api/testing_support/setup.rb +2 -2
  11. data/spec/controllers/spree/api/addresses_controller_spec.rb +7 -7
  12. data/spec/controllers/spree/api/base_controller_spec.rb +20 -20
  13. data/spec/controllers/spree/api/checkouts_controller_spec.rb +53 -53
  14. data/spec/controllers/spree/api/classifications_controller_spec.rb +5 -5
  15. data/spec/controllers/spree/api/config_controller_spec.rb +9 -9
  16. data/spec/controllers/spree/api/countries_controller_spec.rb +11 -11
  17. data/spec/controllers/spree/api/credit_cards_controller_spec.rb +16 -16
  18. data/spec/controllers/spree/api/images_controller_spec.rb +11 -11
  19. data/spec/controllers/spree/api/inventory_units_controller_spec.rb +6 -6
  20. data/spec/controllers/spree/api/line_items_controller_spec.rb +33 -33
  21. data/spec/controllers/spree/api/option_types_controller_spec.rb +18 -18
  22. data/spec/controllers/spree/api/option_values_controller_spec.rb +21 -21
  23. data/spec/controllers/spree/api/orders_controller_spec.rb +170 -132
  24. data/spec/controllers/spree/api/payments_controller_spec.rb +46 -46
  25. data/spec/controllers/spree/api/product_properties_controller_spec.rb +21 -21
  26. data/spec/controllers/spree/api/products_controller_spec.rb +67 -67
  27. data/spec/controllers/spree/api/promotion_application_spec.rb +11 -11
  28. data/spec/controllers/spree/api/properties_controller_spec.rb +25 -25
  29. data/spec/controllers/spree/api/return_authorizations_controller_spec.rb +40 -40
  30. data/spec/controllers/spree/api/shipments_controller_spec.rb +53 -30
  31. data/spec/controllers/spree/api/states_controller_spec.rb +18 -18
  32. data/spec/controllers/spree/api/stock_items_controller_spec.rb +26 -26
  33. data/spec/controllers/spree/api/stock_locations_controller_spec.rb +22 -22
  34. data/spec/controllers/spree/api/stock_movements_controller_spec.rb +16 -16
  35. data/spec/controllers/spree/api/taxonomies_controller_spec.rb +24 -24
  36. data/spec/controllers/spree/api/taxons_controller_spec.rb +39 -39
  37. data/spec/controllers/spree/api/unauthenticated_products_controller_spec.rb +5 -5
  38. data/spec/controllers/spree/api/users_controller_spec.rb +25 -25
  39. data/spec/controllers/spree/api/variants_controller_spec.rb +36 -36
  40. data/spec/controllers/spree/api/zones_controller_spec.rb +20 -20
  41. data/spec/models/spree/legacy_user_spec.rb +5 -5
  42. data/spec/requests/rabl_cache_spec.rb +9 -9
  43. data/spec/spec_helper.rb +0 -1
  44. metadata +4 -4
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Api::OptionValuesController do
4
+ describe Api::OptionValuesController, :type => :controller do
5
5
  render_views
6
6
 
7
7
  let(:attributes) { [:id, :name, :presentation, :option_type_name, :option_type_name] }
@@ -13,8 +13,8 @@ module Spree
13
13
  end
14
14
 
15
15
  def check_option_values(option_values)
16
- option_values.count.should == 1
17
- option_values.first.should have_attributes([:id, :name, :presentation,
16
+ expect(option_values.count).to eq(1)
17
+ expect(option_values.first).to have_attributes([:id, :name, :presentation,
18
18
  :option_type_name, :option_type_id])
19
19
  end
20
20
 
@@ -26,8 +26,8 @@ module Spree
26
26
 
27
27
  it "can retreive a list of all option values" do
28
28
  api_get :index
29
- json_response.count.should == 2
30
- json_response.first.should have_attributes(attributes)
29
+ expect(json_response.count).to eq(2)
30
+ expect(json_response.first).to have_attributes(attributes)
31
31
  end
32
32
  end
33
33
 
@@ -36,27 +36,27 @@ module Spree
36
36
 
37
37
  it "can list all option values" do
38
38
  api_get :index
39
- json_response.count.should == 1
40
- json_response.first.should have_attributes(attributes)
39
+ expect(json_response.count).to eq(1)
40
+ expect(json_response.first).to have_attributes(attributes)
41
41
  end
42
42
 
43
43
  it "can search for an option type" do
44
44
  create(:option_value, :name => "buzz")
45
45
  api_get :index, :q => { :name_cont => option_value.name }
46
- json_response.count.should == 1
47
- json_response.first.should have_attributes(attributes)
46
+ expect(json_response.count).to eq(1)
47
+ expect(json_response.first).to have_attributes(attributes)
48
48
  end
49
49
 
50
50
  it "can retreive a list of option types" do
51
51
  option_value_1 = create(:option_value, :option_type => option_type)
52
52
  option_value_2 = create(:option_value, :option_type => option_type)
53
53
  api_get :index, :ids => [option_value.id, option_value_1.id]
54
- json_response.count.should == 2
54
+ expect(json_response.count).to eq(2)
55
55
  end
56
56
 
57
57
  it "can list a single option value" do
58
58
  api_get :show, :id => option_value.id
59
- json_response.should have_attributes(attributes)
59
+ expect(json_response).to have_attributes(attributes)
60
60
  end
61
61
 
62
62
  it "cannot create a new option value" do
@@ -74,13 +74,13 @@ module Spree
74
74
  :name => "Option Value"
75
75
  }
76
76
  assert_not_found!
77
- option_type.reload.name.should == original_name
77
+ expect(option_type.reload.name).to eq(original_name)
78
78
  end
79
79
 
80
80
  it "cannot delete an option value" do
81
81
  api_delete :destroy, :id => option_type.id
82
82
  assert_not_found!
83
- lambda { option_type.reload }.should_not raise_error
83
+ expect { option_type.reload }.not_to raise_error
84
84
  end
85
85
 
86
86
  context "as an admin" do
@@ -91,13 +91,13 @@ module Spree
91
91
  :name => "Option Value",
92
92
  :presentation => "Option Value"
93
93
  }
94
- json_response.should have_attributes(attributes)
95
- response.status.should == 201
94
+ expect(json_response).to have_attributes(attributes)
95
+ expect(response.status).to eq(201)
96
96
  end
97
97
 
98
98
  it "cannot create an option type with invalid attributes" do
99
99
  api_post :create, :option_value => {}
100
- response.status.should == 422
100
+ expect(response.status).to eq(422)
101
101
  end
102
102
 
103
103
  it "can update an option value" do
@@ -105,14 +105,14 @@ module Spree
105
105
  api_put :update, :id => option_value.id, :option_value => {
106
106
  :name => "Option Value",
107
107
  }
108
- response.status.should == 200
108
+ expect(response.status).to eq(200)
109
109
 
110
110
  option_value.reload
111
- option_value.name.should == "Option Value"
111
+ expect(option_value.name).to eq("Option Value")
112
112
  end
113
113
 
114
114
  it "permits the correct attributes" do
115
- controller.should_receive(:permitted_option_value_attributes)
115
+ expect(controller).to receive(:permitted_option_value_attributes)
116
116
  api_put :update, :id => option_value.id, :option_value => {
117
117
  :name => ""
118
118
  }
@@ -122,12 +122,12 @@ module Spree
122
122
  api_put :update, :id => option_value.id, :option_value => {
123
123
  :name => ""
124
124
  }
125
- response.status.should == 422
125
+ expect(response.status).to eq(422)
126
126
  end
127
127
 
128
128
  it "can delete an option value" do
129
129
  api_delete :destroy, :id => option_value.id
130
- response.status.should == 204
130
+ expect(response.status).to eq(204)
131
131
  end
132
132
  end
133
133
  end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
  require 'spree/testing_support/bar_ability'
3
3
 
4
4
  module Spree
5
- describe Api::OrdersController do
5
+ describe Api::OrdersController, :type => :controller do
6
6
  render_views
7
7
 
8
8
  let!(:order) { create(:order) }
@@ -46,7 +46,7 @@ module Spree
46
46
 
47
47
  it "returns a 401" do
48
48
  api_get :mine
49
- response.status.should == 401
49
+ expect(response.status).to eq(401)
50
50
  end
51
51
  end
52
52
 
@@ -57,72 +57,110 @@ module Spree
57
57
  it "can view all of their own orders" do
58
58
  api_get :mine
59
59
 
60
- response.status.should == 200
61
- json_response["pages"].should == 1
62
- json_response["current_page"].should == 1
63
- json_response["orders"].length.should == 1
64
- json_response["orders"].first["number"].should == order.number
65
- json_response["orders"].first["line_items"].length.should == 1
66
- json_response["orders"].first["line_items"].first["id"].should == line_item.id
60
+ expect(response.status).to eq(200)
61
+ expect(json_response["pages"]).to eq(1)
62
+ expect(json_response["current_page"]).to eq(1)
63
+ expect(json_response["orders"].length).to eq(1)
64
+ expect(json_response["orders"].first["number"]).to eq(order.number)
65
+ expect(json_response["orders"].first["line_items"].length).to eq(1)
66
+ expect(json_response["orders"].first["line_items"].first["id"]).to eq(line_item.id)
67
67
  end
68
68
 
69
69
  it "can filter the returned results" do
70
70
  api_get :mine, q: {completed_at_not_null: 1}
71
71
 
72
- response.status.should == 200
73
- json_response["orders"].length.should == 0
72
+ expect(response.status).to eq(200)
73
+ expect(json_response["orders"].length).to eq(0)
74
74
  end
75
75
 
76
76
  it "returns orders in reverse chronological order" do
77
77
  order2 = create(:order, line_items: [line_item], user: order.user)
78
- order2.created_at.should > order.created_at
78
+ expect(order2.created_at).to be > order.created_at
79
79
 
80
80
  api_get :mine
81
- response.status.should == 200
82
- json_response["pages"].should == 1
83
- json_response["orders"].length.should == 2
84
- json_response["orders"][0]["number"].should == order2.number
85
- json_response["orders"][1]["number"].should == order.number
81
+ expect(response.status).to eq(200)
82
+ expect(json_response["pages"]).to eq(1)
83
+ expect(json_response["orders"].length).to eq(2)
84
+ expect(json_response["orders"][0]["number"]).to eq(order2.number)
85
+ expect(json_response["orders"][1]["number"]).to eq(order.number)
86
86
  end
87
87
  end
88
88
 
89
89
  it "can view their own order" do
90
- Order.any_instance.stub :user => current_api_user
90
+ allow_any_instance_of(Order).to receive_messages :user => current_api_user
91
91
  api_get :show, :id => order.to_param
92
- response.status.should == 200
93
- json_response.should have_attributes(attributes)
94
- json_response["adjustments"].should be_empty
92
+ expect(response.status).to eq(200)
93
+ expect(json_response).to have_attributes(attributes)
94
+ expect(json_response["adjustments"]).to be_empty
95
+ end
96
+
97
+ describe 'GET #show' do
98
+ let(:order) { create :order_with_line_items }
99
+ let(:adjustment) { FactoryGirl.create(:adjustment, order: order) }
100
+
101
+ subject { api_get :show, id: order.to_param }
102
+
103
+ before do
104
+ allow_any_instance_of(Order).to receive_messages :user => current_api_user
105
+ end
106
+
107
+ context 'when inventory information is present' do
108
+ it 'contains stock information on variant' do
109
+ subject
110
+ variant = json_response['line_items'][0]['variant']
111
+ expect(variant).to_not be_nil
112
+ expect(variant['in_stock']).to eq(false)
113
+ expect(variant['total_on_hand']).to eq(0)
114
+ expect(variant['is_backorderable']).to eq(true)
115
+ end
116
+ end
117
+
118
+ context 'when shipment adjustments are present' do
119
+ before do
120
+ order.shipments.first.adjustments << adjustment
121
+ end
122
+
123
+ it 'contains adjustments on shipment' do
124
+ subject
125
+
126
+ # Test to insure shipment has adjustments
127
+ shipment = json_response['shipments'][0]
128
+ expect(shipment).to_not be_nil
129
+ expect(shipment['adjustments'][0]).not_to be_empty
130
+ expect(shipment['adjustments'][0]['label']).to eq(adjustment.label)
131
+ end
132
+ end
95
133
  end
96
134
 
97
135
  it "orders contain the basic checkout steps" do
98
- Order.any_instance.stub :user => current_api_user
136
+ allow_any_instance_of(Order).to receive_messages :user => current_api_user
99
137
  api_get :show, :id => order.to_param
100
- response.status.should == 200
101
- json_response["checkout_steps"].should == ["address", "delivery", "complete"]
138
+ expect(response.status).to eq(200)
139
+ expect(json_response["checkout_steps"]).to eq(["address", "delivery", "complete"])
102
140
  end
103
141
 
104
142
  # Regression test for #1992
105
143
  it "can view an order not in a standard state" do
106
- Order.any_instance.stub :user => current_api_user
144
+ allow_any_instance_of(Order).to receive_messages :user => current_api_user
107
145
  order.update_column(:state, 'shipped')
108
146
  api_get :show, :id => order.to_param
109
147
  end
110
148
 
111
149
  it "can not view someone else's order" do
112
- Order.any_instance.stub :user => stub_model(Spree::LegacyUser)
150
+ allow_any_instance_of(Order).to receive_messages :user => stub_model(Spree::LegacyUser)
113
151
  api_get :show, :id => order.to_param
114
152
  assert_unauthorized!
115
153
  end
116
154
 
117
155
  it "can view an order if the token is known" do
118
156
  api_get :show, :id => order.to_param, :order_token => order.guest_token
119
- response.status.should == 200
157
+ expect(response.status).to eq(200)
120
158
  end
121
159
 
122
160
  it "can view an order if the token is passed in header" do
123
161
  request.headers["X-Spree-Order-Token"] = order.guest_token
124
162
  api_get :show, :id => order.to_param
125
- response.status.should == 200
163
+ expect(response.status).to eq(200)
126
164
  end
127
165
 
128
166
  context "with BarAbility registered" do
@@ -131,12 +169,12 @@ module Spree
131
169
 
132
170
  it "can view an order" do
133
171
  user = mock_model(Spree::LegacyUser)
134
- user.stub_chain(:spree_roles, :pluck).and_return(["bar"])
135
- user.stub(:has_spree_role?).with('bar').and_return(true)
136
- user.stub(:has_spree_role?).with('admin').and_return(false)
137
- controller.stub try_spree_current_user: user
172
+ allow(user).to receive_message_chain(:spree_roles, :pluck).and_return(["bar"])
173
+ allow(user).to receive(:has_spree_role?).with('bar').and_return(true)
174
+ allow(user).to receive(:has_spree_role?).with('admin').and_return(false)
175
+ allow(controller).to receive_messages try_spree_current_user: user
138
176
  api_get :show, :id => order.to_param
139
- response.status.should == 200
177
+ expect(response.status).to eq(200)
140
178
  end
141
179
  end
142
180
 
@@ -154,19 +192,19 @@ module Spree
154
192
 
155
193
  it "can create an order" do
156
194
  api_post :create, :order => { :line_items => { "0" => { :variant_id => variant.to_param, :quantity => 5 } } }
157
- response.status.should == 201
195
+ expect(response.status).to eq(201)
158
196
 
159
197
  order = Order.last
160
- order.line_items.count.should == 1
161
- order.line_items.first.variant.should == variant
162
- order.line_items.first.quantity.should == 5
163
-
164
- json_response['number'].should be_present
165
- json_response["token"].should_not be_blank
166
- json_response["state"].should == "cart"
167
- order.user.should == current_api_user
168
- order.email.should == current_api_user.email
169
- json_response["user_id"].should == current_api_user.id
198
+ expect(order.line_items.count).to eq(1)
199
+ expect(order.line_items.first.variant).to eq(variant)
200
+ expect(order.line_items.first.quantity).to eq(5)
201
+
202
+ expect(json_response['number']).to be_present
203
+ expect(json_response["token"]).not_to be_blank
204
+ expect(json_response["state"]).to eq("cart")
205
+ expect(order.user).to eq(current_api_user)
206
+ expect(order.email).to eq(current_api_user.email)
207
+ expect(json_response["user_id"]).to eq(current_api_user.id)
170
208
  end
171
209
 
172
210
  it "assigns email when creating a new order" do
@@ -177,12 +215,12 @@ module Spree
177
215
 
178
216
  # Regression test for #3404
179
217
  it "can specify additional parameters for a line item" do
180
- Order.should_receive(:create!).and_return(order = Spree::Order.new)
181
- order.stub(:associate_user!)
182
- order.stub_chain(:contents, :add).and_return(line_item = double('LineItem'))
183
- line_item.should_receive(:update_attributes!).with("special" => true)
218
+ expect(Order).to receive(:create!).and_return(order = Spree::Order.new)
219
+ allow(order).to receive(:associate_user!)
220
+ allow(order).to receive_message_chain(:contents, :add).and_return(line_item = double('LineItem'))
221
+ expect(line_item).to receive(:update_attributes!).with("special" => true)
184
222
 
185
- controller.stub(permitted_line_item_attributes: [:id, :variant_id, :quantity, :special])
223
+ allow(controller).to receive_messages(permitted_line_item_attributes: [:id, :variant_id, :quantity, :special])
186
224
  api_post :create, :order => {
187
225
  :line_items => {
188
226
  "0" => {
@@ -190,7 +228,7 @@ module Spree
190
228
  }
191
229
  }
192
230
  }
193
- response.status.should == 201
231
+ expect(response.status).to eq(201)
194
232
  end
195
233
 
196
234
  it "cannot arbitrarily set the line items price" do
@@ -208,8 +246,8 @@ module Spree
208
246
 
209
247
  context "admin user imports order" do
210
248
  before do
211
- current_api_user.stub has_spree_role?: true
212
- current_api_user.stub_chain :spree_roles, pluck: ["admin"]
249
+ allow(current_api_user).to receive_messages has_spree_role?: true
250
+ allow(current_api_user).to receive_message_chain :spree_roles, pluck: ["admin"]
213
251
  end
214
252
 
215
253
  it "is able to set any default unpermitted attribute" do
@@ -221,10 +259,10 @@ module Spree
221
259
 
222
260
  # Regression test for #3404
223
261
  it "does not update line item needlessly" do
224
- Order.should_receive(:create!).and_return(order = Spree::Order.new)
225
- order.stub(:associate_user!)
226
- order.stub_chain(:contents, :add).and_return(line_item = double('LineItem'))
227
- line_item.should_not_receive(:update_attributes)
262
+ expect(Order).to receive(:create!).and_return(order = Spree::Order.new)
263
+ allow(order).to receive(:associate_user!)
264
+ allow(order).to receive_message_chain(:contents, :add).and_return(line_item = double('LineItem'))
265
+ expect(line_item).not_to receive(:update_attributes)
228
266
  api_post :create, :order => {
229
267
  :line_items => {
230
268
  "0" => {
@@ -235,10 +273,10 @@ module Spree
235
273
  end
236
274
 
237
275
  it "can create an order without any parameters" do
238
- lambda { api_post :create }.should_not raise_error
239
- response.status.should == 201
276
+ expect { api_post :create }.not_to raise_error
277
+ expect(response.status).to eq(201)
240
278
  order = Order.last
241
- json_response["state"].should == "cart"
279
+ expect(json_response["state"]).to eq("cart")
242
280
  end
243
281
 
244
282
  context "working with an order" do
@@ -256,12 +294,12 @@ module Spree
256
294
  :country_id => Country.first.id, :state_id => State.first.id} }
257
295
 
258
296
  before do
259
- Order.any_instance.stub :user => current_api_user
297
+ allow_any_instance_of(Order).to receive_messages :user => current_api_user
260
298
  order.next # Switch from cart to address
261
299
  order.bill_address = nil
262
300
  order.ship_address = nil
263
301
  order.save
264
- order.state.should == "address"
302
+ expect(order.state).to eq("address")
265
303
  end
266
304
 
267
305
  def clean_address(address)
@@ -287,9 +325,9 @@ module Spree
287
325
  }
288
326
  }
289
327
 
290
- response.status.should == 200
291
- json_response['line_items'].count.should == 1
292
- json_response['line_items'].first['quantity'].should == 10
328
+ expect(response.status).to eq(200)
329
+ expect(json_response['line_items'].count).to eq(1)
330
+ expect(json_response['line_items'].first['quantity']).to eq(10)
293
331
  end
294
332
 
295
333
  it "adds an extra line item" do
@@ -301,11 +339,11 @@ module Spree
301
339
  }
302
340
  }
303
341
 
304
- response.status.should == 200
305
- json_response['line_items'].count.should == 2
306
- json_response['line_items'][0]['quantity'].should == 10
307
- json_response['line_items'][1]['variant_id'].should == variant2.id
308
- json_response['line_items'][1]['quantity'].should == 1
342
+ expect(response.status).to eq(200)
343
+ expect(json_response['line_items'].count).to eq(2)
344
+ expect(json_response['line_items'][0]['quantity']).to eq(10)
345
+ expect(json_response['line_items'][1]['variant_id']).to eq(variant2.id)
346
+ expect(json_response['line_items'][1]['quantity']).to eq(1)
309
347
  end
310
348
 
311
349
  it "cannot change the price of an existing line item" do
@@ -315,8 +353,8 @@ module Spree
315
353
  }
316
354
  }
317
355
 
318
- response.status.should == 200
319
- json_response['line_items'].count.should == 1
356
+ expect(response.status).to eq(200)
357
+ expect(json_response['line_items'].count).to eq(1)
320
358
  expect(json_response['line_items'].first['price'].to_f).to_not eq(0)
321
359
  expect(json_response['line_items'].first['price'].to_f).to eq(line_item.variant.price)
322
360
  end
@@ -324,7 +362,7 @@ module Spree
324
362
  it "can add billing address" do
325
363
  api_put :update, :id => order.to_param, :order => { :bill_address_attributes => billing_address }
326
364
 
327
- order.reload.bill_address.should_not be_nil
365
+ expect(order.reload.bill_address).not_to be_nil
328
366
  end
329
367
 
330
368
  it "receives error message if trying to add billing address with errors" do
@@ -332,28 +370,28 @@ module Spree
332
370
 
333
371
  api_put :update, :id => order.to_param, :order => { :bill_address_attributes => billing_address }
334
372
 
335
- json_response['error'].should_not be_nil
336
- json_response['errors'].should_not be_nil
337
- json_response['errors']['bill_address.firstname'].first.should eq "can't be blank"
373
+ expect(json_response['error']).not_to be_nil
374
+ expect(json_response['errors']).not_to be_nil
375
+ expect(json_response['errors']['bill_address.firstname'].first).to eq "can't be blank"
338
376
  end
339
377
 
340
378
  it "can add shipping address" do
341
- order.ship_address.should be_nil
379
+ expect(order.ship_address).to be_nil
342
380
 
343
381
  api_put :update, :id => order.to_param, :order => { :ship_address_attributes => shipping_address }
344
382
 
345
- order.reload.ship_address.should_not be_nil
383
+ expect(order.reload.ship_address).not_to be_nil
346
384
  end
347
385
 
348
386
  it "receives error message if trying to add shipping address with errors" do
349
- order.ship_address.should be_nil
387
+ expect(order.ship_address).to be_nil
350
388
  shipping_address[:firstname] = ""
351
389
 
352
390
  api_put :update, :id => order.to_param, :order => { :ship_address_attributes => shipping_address }
353
391
 
354
- json_response['error'].should_not be_nil
355
- json_response['errors'].should_not be_nil
356
- json_response['errors']['ship_address.firstname'].first.should eq "can't be blank"
392
+ expect(json_response['error']).not_to be_nil
393
+ expect(json_response['errors']).not_to be_nil
394
+ expect(json_response['errors']['ship_address.firstname'].first).to eq "can't be blank"
357
395
  end
358
396
 
359
397
  it "cannot set the user_id for the order" do
@@ -361,7 +399,7 @@ module Spree
361
399
  original_id = order.user_id
362
400
  api_post :update, :id => order.to_param, :order => { user_id: user.id }
363
401
  expect(response.status).to eq 200
364
- json_response["user_id"].should == original_id
402
+ expect(json_response["user_id"]).to eq(original_id)
365
403
  end
366
404
 
367
405
  context "order has shipments" do
@@ -381,17 +419,17 @@ module Spree
381
419
  context "with a line item" do
382
420
  let(:order_with_line_items) do
383
421
  order = create(:order_with_line_items)
384
- create(:adjustment, :adjustable => order)
422
+ create(:adjustment, order: order, adjustable: order)
385
423
  order
386
424
  end
387
425
 
388
426
  it "can empty an order" do
389
- order_with_line_items.adjustments.count.should be == 1
427
+ expect(order_with_line_items.adjustments.count).to eq(1)
390
428
  api_put :empty, :id => order_with_line_items.to_param
391
- response.status.should == 200
429
+ expect(response.status).to eq(200)
392
430
  order_with_line_items.reload
393
- order_with_line_items.line_items.should be_empty
394
- order_with_line_items.adjustments.should be_empty
431
+ expect(order_with_line_items.line_items).to be_empty
432
+ expect(order_with_line_items.adjustments).to be_empty
395
433
  end
396
434
 
397
435
  it "can list its line items with images" do
@@ -399,22 +437,22 @@ module Spree
399
437
 
400
438
  api_get :show, :id => order.to_param
401
439
 
402
- json_response['line_items'].first['variant'].should have_attributes([:images])
440
+ expect(json_response['line_items'].first['variant']).to have_attributes([:images])
403
441
  end
404
442
 
405
443
  it "lists variants product id" do
406
444
  api_get :show, :id => order.to_param
407
445
 
408
- json_response['line_items'].first['variant'].should have_attributes([:product_id])
446
+ expect(json_response['line_items'].first['variant']).to have_attributes([:product_id])
409
447
  end
410
448
 
411
449
  it "includes the tax_total in the response" do
412
450
  api_get :show, :id => order.to_param
413
451
 
414
- json_response['included_tax_total'].should == '0.0'
415
- json_response['additional_tax_total'].should == '0.0'
416
- json_response['display_included_tax_total'].should == '$0.00'
417
- json_response['display_additional_tax_total'].should == '$0.00'
452
+ expect(json_response['included_tax_total']).to eq('0.0')
453
+ expect(json_response['additional_tax_total']).to eq('0.0')
454
+ expect(json_response['display_included_tax_total']).to eq('$0.00')
455
+ expect(json_response['display_additional_tax_total']).to eq('$0.00')
418
456
  end
419
457
 
420
458
  it "lists line item adjustments" do
@@ -426,8 +464,8 @@ module Spree
426
464
  api_get :show, :id => order.to_param
427
465
 
428
466
  adjustment = json_response['line_items'].first['adjustments'].first
429
- adjustment['label'].should == "10% off!"
430
- adjustment['amount'].should == "5.0"
467
+ expect(adjustment['label']).to eq("10% off!")
468
+ expect(adjustment['amount']).to eq("5.0")
431
469
  end
432
470
 
433
471
  it "lists payments source without gateway info" do
@@ -468,31 +506,31 @@ module Spree
468
506
 
469
507
  it "returns available shipments for an order" do
470
508
  api_get :show, :id => order.to_param
471
- response.status.should == 200
472
- json_response["shipments"].should_not be_empty
509
+ expect(response.status).to eq(200)
510
+ expect(json_response["shipments"]).not_to be_empty
473
511
  shipment = json_response["shipments"][0]
474
512
  # Test for correct shipping method attributes
475
513
  # Regression test for #3206
476
- shipment["shipping_methods"].should_not be_nil
514
+ expect(shipment["shipping_methods"]).not_to be_nil
477
515
  json_shipping_method = shipment["shipping_methods"][0]
478
- json_shipping_method["id"].should == shipping_method.id
479
- json_shipping_method["name"].should == shipping_method.name
480
- json_shipping_method["zones"].should_not be_empty
481
- json_shipping_method["shipping_categories"].should_not be_empty
516
+ expect(json_shipping_method["id"]).to eq(shipping_method.id)
517
+ expect(json_shipping_method["name"]).to eq(shipping_method.name)
518
+ expect(json_shipping_method["zones"]).not_to be_empty
519
+ expect(json_shipping_method["shipping_categories"]).not_to be_empty
482
520
 
483
521
  # Test for correct shipping rates attributes
484
522
  # Regression test for #3206
485
- shipment["shipping_rates"].should_not be_nil
523
+ expect(shipment["shipping_rates"]).not_to be_nil
486
524
  shipping_rate = shipment["shipping_rates"][0]
487
- shipping_rate["name"].should == json_shipping_method["name"]
488
- shipping_rate["cost"].should == "10.0"
489
- shipping_rate["selected"].should be true
490
- shipping_rate["display_cost"].should == "$10.00"
525
+ expect(shipping_rate["name"]).to eq(json_shipping_method["name"])
526
+ expect(shipping_rate["cost"]).to eq("10.0")
527
+ expect(shipping_rate["selected"]).to be true
528
+ expect(shipping_rate["display_cost"]).to eq("$10.00")
491
529
 
492
- shipment["stock_location_name"].should_not be_blank
530
+ expect(shipment["stock_location_name"]).not_to be_blank
493
531
  manifest_item = shipment["manifest"][0]
494
- manifest_item["quantity"].should == 1
495
- manifest_item["variant_id"].should == order.line_items.first.variant_id
532
+ expect(manifest_item["quantity"]).to eq(1)
533
+ expect(manifest_item["variant_id"]).to eq(order.line_items.first.variant_id)
496
534
  end
497
535
  end
498
536
  end
@@ -505,7 +543,7 @@ module Spree
505
543
  before { Spree::Order.delete_all }
506
544
  it "still returns a root :orders key" do
507
545
  api_get :index
508
- json_response["orders"].should == []
546
+ expect(json_response["orders"]).to eq([])
509
547
  end
510
548
  end
511
549
 
@@ -558,20 +596,20 @@ module Spree
558
596
 
559
597
  it "can view all orders" do
560
598
  api_get :index
561
- json_response["orders"].first.should have_attributes(attributes)
562
- json_response["count"].should == 2
563
- json_response["current_page"].should == 1
564
- json_response["pages"].should == 1
599
+ expect(json_response["orders"].first).to have_attributes(attributes)
600
+ expect(json_response["count"]).to eq(2)
601
+ expect(json_response["current_page"]).to eq(1)
602
+ expect(json_response["pages"]).to eq(1)
565
603
  end
566
604
 
567
605
  # Test for #1763
568
606
  it "can control the page size through a parameter" do
569
607
  api_get :index, :per_page => 1
570
- json_response["orders"].count.should == 1
571
- json_response["orders"].first.should have_attributes(attributes)
572
- json_response["count"].should == 1
573
- json_response["current_page"].should == 1
574
- json_response["pages"].should == 2
608
+ expect(json_response["orders"].count).to eq(1)
609
+ expect(json_response["orders"].first).to have_attributes(attributes)
610
+ expect(json_response["count"]).to eq(1)
611
+ expect(json_response["current_page"]).to eq(1)
612
+ expect(json_response["pages"]).to eq(2)
575
613
  end
576
614
  end
577
615
 
@@ -585,21 +623,21 @@ module Spree
585
623
 
586
624
  it "can query the results through a parameter" do
587
625
  api_get :index, :q => { :email_cont => 'spree' }
588
- json_response["orders"].count.should == 1
589
- json_response["orders"].first.should have_attributes(attributes)
590
- json_response["orders"].first["email"].should == expected_result.email
591
- json_response["count"].should == 1
592
- json_response["current_page"].should == 1
593
- json_response["pages"].should == 1
626
+ expect(json_response["orders"].count).to eq(1)
627
+ expect(json_response["orders"].first).to have_attributes(attributes)
628
+ expect(json_response["orders"].first["email"]).to eq(expected_result.email)
629
+ expect(json_response["count"]).to eq(1)
630
+ expect(json_response["current_page"]).to eq(1)
631
+ expect(json_response["pages"]).to eq(1)
594
632
  end
595
633
  end
596
634
 
597
635
  context "creation" do
598
636
  it "can create an order without any parameters" do
599
- lambda { api_post :create }.should_not raise_error
600
- response.status.should == 201
637
+ expect { api_post :create }.not_to raise_error
638
+ expect(response.status).to eq(201)
601
639
  order = Order.last
602
- json_response["state"].should == "cart"
640
+ expect(json_response["state"]).to eq("cart")
603
641
  end
604
642
 
605
643
  it "can arbitrarily set the line items price" do
@@ -618,7 +656,7 @@ module Spree
618
656
  user = Spree.user_class.create
619
657
  api_post :create, :order => { user_id: user.id }
620
658
  expect(response.status).to eq 201
621
- json_response["user_id"].should == user.id
659
+ expect(json_response["user_id"]).to eq(user.id)
622
660
  end
623
661
  end
624
662
 
@@ -627,7 +665,7 @@ module Spree
627
665
  user = Spree.user_class.create
628
666
  api_post :update, :id => order.number, :order => { user_id: user.id }
629
667
  expect(response.status).to eq 200
630
- json_response["user_id"].should == user.id
668
+ expect(json_response["user_id"]).to eq(user.id)
631
669
  end
632
670
  end
633
671
 
@@ -643,7 +681,7 @@ module Spree
643
681
 
644
682
  specify do
645
683
  api_put :cancel, :id => order.to_param
646
- json_response["state"].should == "canceled"
684
+ expect(json_response["state"]).to eq("canceled")
647
685
  end
648
686
  end
649
687
  end