solidus_api 2.10.5 → 2.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/controllers/spree/api/addresses_controller.rb +1 -1
  4. data/app/controllers/spree/api/base_controller.rb +11 -3
  5. data/app/controllers/spree/api/checkouts_controller.rb +1 -11
  6. data/app/controllers/spree/api/countries_controller.rb +2 -2
  7. data/app/controllers/spree/api/credit_cards_controller.rb +2 -2
  8. data/app/controllers/spree/api/customer_returns_controller.rb +67 -0
  9. data/app/controllers/spree/api/images_controller.rb +4 -4
  10. data/app/controllers/spree/api/inventory_units_controller.rb +1 -1
  11. data/app/controllers/spree/api/option_types_controller.rb +3 -3
  12. data/app/controllers/spree/api/option_values_controller.rb +2 -2
  13. data/app/controllers/spree/api/orders_controller.rb +1 -1
  14. data/app/controllers/spree/api/payments_controller.rb +1 -1
  15. data/app/controllers/spree/api/product_properties_controller.rb +9 -14
  16. data/app/controllers/spree/api/promotions_controller.rb +3 -12
  17. data/app/controllers/spree/api/properties_controller.rb +3 -3
  18. data/app/controllers/spree/api/resource_controller.rb +2 -2
  19. data/app/controllers/spree/api/return_authorizations_controller.rb +3 -3
  20. data/app/controllers/spree/api/shipments_controller.rb +1 -1
  21. data/app/controllers/spree/api/states_controller.rb +3 -3
  22. data/app/controllers/spree/api/stock_items_controller.rb +2 -2
  23. data/app/controllers/spree/api/stock_locations_controller.rb +3 -3
  24. data/app/controllers/spree/api/stock_movements_controller.rb +3 -3
  25. data/app/controllers/spree/api/stores_controller.rb +3 -3
  26. data/app/controllers/spree/api/taxonomies_controller.rb +2 -2
  27. data/app/controllers/spree/api/taxons_controller.rb +4 -4
  28. data/app/controllers/spree/api/users_controller.rb +13 -0
  29. data/app/controllers/spree/api/variants_controller.rb +3 -3
  30. data/app/controllers/spree/api/zones_controller.rb +2 -2
  31. data/app/helpers/spree/api/api_helpers.rb +18 -5
  32. data/app/views/spree/api/customer_returns/index.json.jbuilder +6 -0
  33. data/app/views/spree/api/customer_returns/new.json.jbuilder +4 -0
  34. data/app/views/spree/api/customer_returns/show.json.jbuilder +3 -0
  35. data/app/views/spree/api/errors/could_not_transition.json.jbuilder +4 -0
  36. data/app/views/spree/api/orders/could_not_transition.json.jbuilder +5 -0
  37. data/config/locales/en.yml +2 -0
  38. data/config/routes.rb +6 -3
  39. data/lib/spree/api/testing_support/helpers.rb +1 -1
  40. data/openapi/authentication.md +9 -1
  41. data/openapi/checkout-flow.md +17 -4
  42. data/openapi/main.hub.yml +1 -1
  43. data/openapi/solidus-api.oas.yml +6753 -0
  44. data/solidus_api.gemspec +19 -19
  45. metadata +14 -114
  46. data/openapi/api.oas2.yml +0 -6108
  47. data/script/rails +0 -10
  48. data/spec/controllers/spree/api/base_controller_spec.rb +0 -118
  49. data/spec/controllers/spree/api/resource_controller_spec.rb +0 -190
  50. data/spec/features/checkout_spec.rb +0 -192
  51. data/spec/fixtures/thinking-cat.jpg +0 -0
  52. data/spec/lib/spree_api_responders_spec.rb +0 -10
  53. data/spec/models/spree/legacy_user_spec.rb +0 -103
  54. data/spec/requests/api/address_books_spec.rb +0 -240
  55. data/spec/requests/jbuilder_cache_spec.rb +0 -34
  56. data/spec/requests/ransackable_attributes_spec.rb +0 -79
  57. data/spec/requests/spree/api/addresses_controller_spec.rb +0 -57
  58. data/spec/requests/spree/api/checkouts_controller_spec.rb +0 -484
  59. data/spec/requests/spree/api/classifications_controller_spec.rb +0 -50
  60. data/spec/requests/spree/api/config_controller_spec.rb +0 -26
  61. data/spec/requests/spree/api/countries_controller_spec.rb +0 -48
  62. data/spec/requests/spree/api/coupon_codes_controller_spec.rb +0 -105
  63. data/spec/requests/spree/api/credit_cards_controller_spec.rb +0 -105
  64. data/spec/requests/spree/api/images_controller_spec.rb +0 -99
  65. data/spec/requests/spree/api/inventory_units_controller_spec.rb +0 -55
  66. data/spec/requests/spree/api/line_items_controller_spec.rb +0 -213
  67. data/spec/requests/spree/api/option_types_controller_spec.rb +0 -116
  68. data/spec/requests/spree/api/option_values_controller_spec.rb +0 -138
  69. data/spec/requests/spree/api/orders_controller_spec.rb +0 -954
  70. data/spec/requests/spree/api/payments_controller_spec.rb +0 -259
  71. data/spec/requests/spree/api/product_properties_controller_spec.rb +0 -114
  72. data/spec/requests/spree/api/products_controller_spec.rb +0 -422
  73. data/spec/requests/spree/api/promotion_application_spec.rb +0 -50
  74. data/spec/requests/spree/api/promotions_controller_spec.rb +0 -67
  75. data/spec/requests/spree/api/properties_controller_spec.rb +0 -102
  76. data/spec/requests/spree/api/return_authorizations_controller_spec.rb +0 -180
  77. data/spec/requests/spree/api/shipments_controller_spec.rb +0 -532
  78. data/spec/requests/spree/api/states_controller_spec.rb +0 -69
  79. data/spec/requests/spree/api/stock_items_controller_spec.rb +0 -311
  80. data/spec/requests/spree/api/stock_locations_controller_spec.rb +0 -170
  81. data/spec/requests/spree/api/stock_movements_controller_spec.rb +0 -81
  82. data/spec/requests/spree/api/store_credit_events_controller_spec.rb +0 -59
  83. data/spec/requests/spree/api/stores_controller_spec.rb +0 -134
  84. data/spec/requests/spree/api/taxonomies_controller_spec.rb +0 -114
  85. data/spec/requests/spree/api/taxons_controller_spec.rb +0 -217
  86. data/spec/requests/spree/api/unauthenticated_products_controller_spec.rb +0 -27
  87. data/spec/requests/spree/api/users_controller_spec.rb +0 -151
  88. data/spec/requests/spree/api/variants_controller_spec.rb +0 -340
  89. data/spec/requests/spree/api/zones_controller_spec.rb +0 -89
  90. data/spec/shared_examples/protect_product_actions.rb +0 -18
  91. data/spec/spec_helper.rb +0 -73
  92. data/spec/support/be_paginated_matcher.rb +0 -9
  93. data/spec/support/controller_hacks.rb +0 -43
  94. data/spec/support/database_cleaner.rb +0 -16
  95. data/spec/support/have_attributes_matcher.rb +0 -11
  96. data/spec/test_views/spree/api/widgets/_widget.json.jbuilder +0 -3
  97. data/spec/test_views/spree/api/widgets/index.json.jbuilder +0 -9
  98. data/spec/test_views/spree/api/widgets/new.json.jbuilder +0 -3
  99. data/spec/test_views/spree/api/widgets/show.json.jbuilder +0 -3
@@ -1,69 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- module Spree
6
- describe Api::StatesController, type: :request do
7
- let!(:state) { create(:state, name: "Victoria") }
8
- let(:attributes) { [:id, :name, :abbr, :country_id] }
9
-
10
- before do
11
- stub_authentication!
12
- end
13
-
14
- it "gets all states" do
15
- get spree.api_states_path
16
- expect(json_response["states"].first).to have_attributes(attributes)
17
- expect(json_response['states'].first['name']).to eq(state.name)
18
- end
19
-
20
- it "gets all the states for a particular country" do
21
- get spree.api_country_states_path(state.country)
22
- expect(json_response["states"].first).to have_attributes(attributes)
23
- expect(json_response['states'].first['name']).to eq(state.name)
24
- end
25
-
26
- context "pagination" do
27
- it "can select the next page and control page size" do
28
- create(:state)
29
- get spree.api_states_path, params: { page: 2, per_page: 1 }
30
-
31
- expect(json_response).to be_paginated
32
- expect(json_response["states"].size).to eq(1)
33
- expect(json_response["pages"]).to eq(2)
34
- expect(json_response["current_page"]).to eq(2)
35
- expect(json_response["count"]).to eq(1)
36
- end
37
- end
38
-
39
- context "with two states" do
40
- before { create(:state, name: "New South Wales") }
41
-
42
- it "gets all states for a country" do
43
- country = create(:country, states_required: true)
44
- state.country = country
45
- state.save
46
-
47
- get spree.api_country_states_path(country)
48
- expect(json_response["states"].first).to have_attributes(attributes)
49
- expect(json_response["states"].count).to eq(1)
50
- json_response["states_required"] = true
51
- end
52
-
53
- it "can view all states" do
54
- get spree.api_states_path
55
- expect(json_response["states"].first).to have_attributes(attributes)
56
- end
57
-
58
- it 'can query the results through a paramter' do
59
- get spree.api_states_path, params: { q: { name_cont: 'Vic' } }
60
- expect(json_response['states'].first['name']).to eq("Victoria")
61
- end
62
- end
63
-
64
- it "can view a state" do
65
- get spree.api_state_path(state)
66
- expect(json_response).to have_attributes(attributes)
67
- end
68
- end
69
- end
@@ -1,311 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- module Spree
6
- describe Api::StockItemsController, type: :request do
7
- let!(:stock_location) { create(:stock_location_with_items) }
8
- let!(:stock_item) { stock_location.stock_items.order(:id).first }
9
- let!(:attributes) {
10
- [:id, :count_on_hand, :backorderable,
11
- :stock_location_id, :variant_id]
12
- }
13
-
14
- before do
15
- stub_authentication!
16
- end
17
-
18
- context "as a normal user" do
19
- describe "#index" do
20
- it "can list stock items for an active stock location" do
21
- get spree.api_stock_location_stock_items_path(stock_location)
22
- expect(response).to be_successful
23
- expect(json_response['stock_items'].first).to have_attributes(attributes)
24
- expect(json_response['stock_items'].first['variant']['sku']).to match /\ASKU-\d+\z/
25
- end
26
-
27
- it "cannot list stock items for an inactive stock location" do
28
- stock_location.update!(active: false)
29
- get spree.api_stock_location_stock_items_path(stock_location)
30
- expect(response).to be_not_found
31
- end
32
- end
33
-
34
- describe "#show" do
35
- it "can see a stock item for an active stock location" do
36
- get spree.api_stock_location_stock_item_path(stock_location, stock_item)
37
- expect(json_response).to have_attributes(attributes)
38
- expect(json_response['count_on_hand']).to eq stock_item.count_on_hand
39
- end
40
-
41
- it "cannot see a stock item for an inactive stock location" do
42
- stock_location.update!(active: false)
43
- get spree.api_stock_location_stock_item_path(stock_location, stock_item)
44
- expect(response.status).to eq(404)
45
- end
46
- end
47
-
48
- describe "#create" do
49
- it "cannot create a stock item" do
50
- variant = create(:variant)
51
- params = {
52
- stock_item: {
53
- variant_id: variant.id,
54
- count_on_hand: '20'
55
- }
56
- }
57
-
58
- post spree.api_stock_location_stock_items_path(stock_location), params: params
59
- expect(response.status).to eq(401)
60
- end
61
- end
62
-
63
- describe "#update" do
64
- it "cannot update a stock item" do
65
- put spree.api_stock_location_stock_item_path(stock_location, stock_item)
66
- expect(response.status).to eq(404)
67
- end
68
- end
69
-
70
- describe "#destroy" do
71
- it "cannot destroy a stock item" do
72
- delete spree.api_stock_location_stock_item_path(stock_location, stock_item)
73
- expect(response.status).to eq(404)
74
- end
75
- end
76
- end
77
-
78
- context "as an admin" do
79
- sign_in_as_admin!
80
-
81
- it 'can list stock items' do
82
- get spree.api_stock_location_stock_items_path(stock_location)
83
- expect(json_response['stock_items'].first).to have_attributes(attributes)
84
- expect(json_response['stock_items'].first['variant']['sku']).to include 'SKU'
85
- end
86
-
87
- it 'requires a stock_location_id to be passed as a parameter' do
88
- get spree.api_stock_items_path
89
- expect(json_response['exception']).to eq('param is missing or the value is empty: stock_location_id')
90
- expect(response.status).to eq(422)
91
- end
92
-
93
- it 'can control the page size through a parameter' do
94
- get spree.api_stock_location_stock_items_path(stock_location), params: { per_page: 1 }
95
- expect(json_response['count']).to eq(1)
96
- expect(json_response['current_page']).to eq(1)
97
- end
98
-
99
- it 'can query the results through a paramter' do
100
- stock_item.update_column(:count_on_hand, 30)
101
- get spree.api_stock_location_stock_items_path(stock_location), params: { q: { count_on_hand_eq: '30' } }
102
- expect(json_response['count']).to eq(1)
103
- expect(json_response['stock_items'].first['count_on_hand']).to eq 30
104
- end
105
-
106
- it 'gets a stock item' do
107
- get spree.api_stock_location_stock_item_path(stock_location, stock_item)
108
- expect(json_response).to have_attributes(attributes)
109
- expect(json_response['count_on_hand']).to eq stock_item.count_on_hand
110
- end
111
-
112
- context 'creating a stock item' do
113
- let!(:variant) do
114
- variant = create(:variant)
115
- # Creating a variant also creates stock items.
116
- # We don't want any to exist (as they would conflict with what we're about to create)
117
- StockItem.delete_all
118
- variant
119
- end
120
- let(:count_on_hand) { '20' }
121
- let(:params) do
122
- {
123
- stock_item: {
124
- variant_id: variant.id,
125
- count_on_hand: count_on_hand
126
- }
127
- }
128
- end
129
-
130
- subject do
131
- post spree.api_stock_location_stock_items_path(stock_location), params: params
132
- end
133
-
134
- it 'can create a new stock item' do
135
- subject
136
- expect(response.status).to eq 201
137
- expect(json_response).to have_attributes(attributes)
138
- end
139
-
140
- it 'creates a stock movement' do
141
- expect { subject }.to change { Spree::StockMovement.count }.by(1)
142
- expect(assigns(:stock_movement).quantity).to eq 20
143
- end
144
-
145
- context 'variant tracks inventory' do
146
- before do
147
- expect(variant.track_inventory).to eq true
148
- end
149
-
150
- it "sets the stock item's count_on_hand" do
151
- subject
152
- expect(assigns(:stock_item).count_on_hand).to eq 20
153
- end
154
- end
155
-
156
- context 'variant does not track inventory' do
157
- before do
158
- variant.update(track_inventory: false)
159
- end
160
-
161
- it "doesn't set the stock item's count_on_hand" do
162
- subject
163
- expect(assigns(:stock_item).count_on_hand).to eq 0
164
- end
165
- end
166
-
167
- context "attempting to set negative inventory" do
168
- let(:count_on_hand) { '-1' }
169
-
170
- it "does not allow negative inventory for the stock item" do
171
- subject
172
- expect(response.status).to eq 422
173
- expect(response.body).to match I18n.t('spree.api.stock_not_below_zero')
174
- expect(assigns(:stock_item).count_on_hand).to eq 0
175
- end
176
- end
177
- end
178
-
179
- context 'updating a stock item' do
180
- before do
181
- expect(stock_item.count_on_hand).to eq 10
182
- end
183
-
184
- subject do
185
- put spree.api_stock_item_path(stock_item), params: params
186
- end
187
-
188
- context 'adjusting count_on_hand' do
189
- let(:count_on_hand) { 40 }
190
- let(:params) do
191
- {
192
- stock_item: {
193
- count_on_hand: count_on_hand,
194
- backorderable: true
195
- }
196
- }
197
- end
198
-
199
- it 'can update a stock item to add new inventory' do
200
- subject
201
- expect(response.status).to eq 200
202
- expect(json_response['count_on_hand']).to eq 50
203
- expect(json_response['backorderable']).to eq true
204
- end
205
-
206
- it 'creates a stock movement for the adjusted quantity' do
207
- expect { subject }.to change { Spree::StockMovement.count }.by(1)
208
- expect(Spree::StockMovement.last.quantity).to eq 40
209
- end
210
-
211
- context 'tracking inventory' do
212
- before do
213
- expect(stock_item.should_track_inventory?).to eq true
214
- end
215
-
216
- it "sets the stock item's count_on_hand" do
217
- subject
218
- expect(assigns(:stock_item).count_on_hand).to eq 50
219
- end
220
- end
221
-
222
- context 'not tracking inventory' do
223
- before do
224
- stock_item.variant.update(track_inventory: false)
225
- end
226
-
227
- it "doesn't set the stock item's count_on_hand" do
228
- subject
229
- expect(assigns(:stock_item).count_on_hand).to eq 10
230
- end
231
- end
232
-
233
- context "attempting to set negative inventory" do
234
- let(:count_on_hand) { '-11' }
235
-
236
- it "does not allow negative inventory for the stock item" do
237
- subject
238
- expect(response.status).to eq 422
239
- expect(response.body).to match I18n.t('spree.api.stock_not_below_zero')
240
- expect(assigns(:stock_item).count_on_hand).to eq 10
241
- end
242
- end
243
- end
244
-
245
- context 'setting count_on_hand' do
246
- let(:count_on_hand) { 40 }
247
- let(:params) do
248
- {
249
- id: stock_item.to_param,
250
- stock_item: {
251
- count_on_hand: count_on_hand,
252
- backorderable: true,
253
- force: true
254
- }
255
- }
256
- end
257
-
258
- it 'can set a stock item to modify the current inventory' do
259
- subject
260
- expect(response.status).to eq 200
261
- expect(json_response['count_on_hand']).to eq 40
262
- end
263
-
264
- it 'creates a stock movement for the adjusted quantity' do
265
- expect { subject }.to change { Spree::StockMovement.count }.by(1)
266
- expect(assigns(:stock_movement).quantity).to eq 30
267
- end
268
-
269
- context 'tracking inventory' do
270
- before do
271
- expect(stock_item.should_track_inventory?).to eq true
272
- end
273
-
274
- it "updates the stock item's count_on_hand" do
275
- subject
276
- expect(assigns(:stock_item).count_on_hand).to eq 40
277
- end
278
- end
279
-
280
- context 'not tracking inventory' do
281
- before do
282
- stock_item.variant.update(track_inventory: false)
283
- end
284
-
285
- it "doesn't update the stock item's count_on_hand" do
286
- subject
287
- expect(assigns(:stock_item).count_on_hand).to eq 10
288
- end
289
- end
290
-
291
- context "attempting to set negative inventory" do
292
- let(:count_on_hand) { '-1' }
293
-
294
- it "does not allow negative inventory for the stock item" do
295
- subject
296
- expect(response.status).to eq 422
297
- expect(response.body).to match I18n.t('spree.api.stock_not_below_zero')
298
- expect(assigns(:stock_item).count_on_hand).to eq 10
299
- end
300
- end
301
- end
302
- end
303
-
304
- it 'can delete a stock item' do
305
- delete spree.api_stock_item_path(stock_item)
306
- expect(response.status).to eq(204)
307
- expect { Spree::StockItem.find(stock_item.id) }.to raise_error(ActiveRecord::RecordNotFound)
308
- end
309
- end
310
- end
311
- end
@@ -1,170 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- module Spree
6
- describe Api::StockLocationsController, type: :request do
7
- let!(:stock_location) { create(:stock_location) }
8
- let!(:attributes) { [:id, :name, :address1, :address2, :city, :state_id, :state_name, :country_id, :zipcode, :phone, :active] }
9
-
10
- before do
11
- stub_authentication!
12
- end
13
-
14
- context "as a user" do
15
- describe "#index" do
16
- it "can see active stock locations" do
17
- get spree.api_stock_locations_path
18
- expect(response).to be_successful
19
- stock_locations = json_response['stock_locations'].map { |sl| sl['name'] }
20
- expect(stock_locations).to include stock_location.name
21
- end
22
-
23
- it "cannot see inactive stock locations" do
24
- stock_location.update!(active: false)
25
- get spree.api_stock_locations_path
26
- expect(response).to be_successful
27
- stock_locations = json_response['stock_locations'].map { |sl| sl['name'] }
28
- expect(stock_locations).not_to include stock_location.name
29
- end
30
- end
31
-
32
- describe "#show" do
33
- it "can see active stock locations" do
34
- get spree.api_stock_location_path(stock_location)
35
- expect(response).to be_successful
36
- expect(json_response['name']).to eq stock_location.name
37
- end
38
-
39
- it "cannot see inactive stock locations" do
40
- stock_location.update!(active: false)
41
- get spree.api_stock_location_path(stock_location)
42
- expect(response).to be_not_found
43
- end
44
- end
45
-
46
- describe "#create" do
47
- it "cannot create a new stock location" do
48
- params = {
49
- stock_location: {
50
- name: "North Pole",
51
- active: true
52
- }
53
- }
54
-
55
- post spree.api_stock_locations_path, params: params
56
- expect(response.status).to eq(401)
57
- end
58
- end
59
-
60
- describe "#update" do
61
- it "cannot update a stock location" do
62
- put spree.api_stock_location_path(stock_location), params: { stock_location: { name: "South Pole" } }
63
- expect(response.status).to eq(401)
64
- end
65
- end
66
-
67
- describe "#destroy" do
68
- it "cannot delete a stock location" do
69
- delete spree.api_stock_location_path(stock_location)
70
- expect(response.status).to eq(401)
71
- end
72
- end
73
- end
74
-
75
- context "as an admin" do
76
- sign_in_as_admin!
77
-
78
- describe "#index" do
79
- it "can see active stock locations" do
80
- get spree.api_stock_locations_path
81
- expect(response).to be_successful
82
- stock_locations = json_response['stock_locations'].map { |sl| sl['name'] }
83
- expect(stock_locations).to include stock_location.name
84
- end
85
-
86
- it "can see inactive stock locations" do
87
- stock_location.update!(active: false)
88
- get spree.api_stock_locations_path
89
- expect(response).to be_successful
90
- stock_locations = json_response['stock_locations'].map { |sl| sl['name'] }
91
- expect(stock_locations).to include stock_location.name
92
- end
93
-
94
- it "gets stock location information" do
95
- get spree.api_stock_locations_path
96
- expect(json_response['stock_locations'].first).to have_attributes(attributes)
97
- expect(json_response['stock_locations'].first['country']).not_to be_nil
98
- expect(json_response['stock_locations'].first['state']).not_to be_nil
99
- end
100
-
101
- it 'can control the page size through a parameter' do
102
- create(:stock_location)
103
- get spree.api_stock_locations_path, params: { per_page: 1 }
104
- expect(json_response['count']).to eq(1)
105
- expect(json_response['current_page']).to eq(1)
106
- expect(json_response['pages']).to eq(2)
107
- end
108
-
109
- it 'can query the results through a paramter' do
110
- expected_result = create(:stock_location, name: 'South America')
111
- get spree.api_stock_locations_path, params: { q: { name_cont: 'south' } }
112
- expect(json_response['count']).to eq(1)
113
- expect(json_response['stock_locations'].first['name']).to eq expected_result.name
114
- end
115
- end
116
-
117
- describe "#show" do
118
- it "can see active stock locations" do
119
- get spree.api_stock_location_path(stock_location)
120
- expect(response).to be_successful
121
- expect(json_response['name']).to eq stock_location.name
122
- end
123
-
124
- it "can see inactive stock locations" do
125
- stock_location.update!(active: false)
126
- get spree.api_stock_location_path(stock_location)
127
- expect(response).to be_successful
128
- expect(json_response['name']).to eq stock_location.name
129
- end
130
- end
131
-
132
- describe "#create" do
133
- it "can create a new stock location" do
134
- params = {
135
- stock_location: {
136
- name: "North Pole",
137
- active: true
138
- }
139
- }
140
-
141
- post spree.api_stock_locations_path, params: params
142
- expect(response.status).to eq(201)
143
- expect(json_response).to have_attributes(attributes)
144
- end
145
- end
146
-
147
- describe "#update" do
148
- it "can update a stock location" do
149
- params = {
150
- stock_location: {
151
- name: "South Pole"
152
- }
153
- }
154
-
155
- put spree.api_stock_location_path(stock_location), params: params
156
- expect(response.status).to eq(200)
157
- expect(json_response['name']).to eq 'South Pole'
158
- end
159
- end
160
-
161
- describe "#destroy" do
162
- it "can delete a stock location" do
163
- delete spree.api_stock_location_path(stock_location)
164
- expect(response.status).to eq(204)
165
- expect { stock_location.reload }.to raise_error(ActiveRecord::RecordNotFound)
166
- end
167
- end
168
- end
169
- end
170
- end