solidus_api 2.10.5 → 2.11.0

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 (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