solidus_api 2.2.2 → 2.3.0.beta1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of solidus_api might be problematic. Click here for more details.

Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/spree/api/images_controller.rb +2 -2
  3. data/app/controllers/spree/api/line_items_controller.rb +2 -10
  4. data/app/controllers/spree/api/orders_controller.rb +2 -12
  5. data/app/controllers/spree/api/payments_controller.rb +0 -1
  6. data/app/controllers/spree/api/promotions_controller.rb +1 -1
  7. data/app/controllers/spree/api/variants_controller.rb +2 -1
  8. data/app/views/spree/api/orders/show.v1.rabl +2 -1
  9. data/lib/spree/api/testing_support/setup.rb +1 -1
  10. data/spec/controllers/spree/api/base_controller_spec.rb +7 -7
  11. data/spec/controllers/spree/api/resource_controller_spec.rb +16 -16
  12. data/spec/requests/api/address_books_spec.rb +1 -1
  13. data/spec/{controllers → requests}/spree/api/addresses_controller_spec.rb +6 -9
  14. data/spec/{controllers → requests}/spree/api/checkouts_controller_spec.rb +38 -69
  15. data/spec/{controllers → requests}/spree/api/classifications_controller_spec.rb +4 -4
  16. data/spec/{controllers → requests}/spree/api/config_controller_spec.rb +3 -4
  17. data/spec/{controllers → requests}/spree/api/countries_controller_spec.rb +6 -7
  18. data/spec/{controllers → requests}/spree/api/credit_cards_controller_spec.rb +8 -9
  19. data/spec/{controllers → requests}/spree/api/images_controller_spec.rb +19 -16
  20. data/spec/{controllers → requests}/spree/api/inventory_units_controller_spec.rb +17 -14
  21. data/spec/{controllers → requests}/spree/api/line_items_controller_spec.rb +32 -32
  22. data/spec/{controllers → requests}/spree/api/option_types_controller_spec.rb +27 -27
  23. data/spec/{controllers → requests}/spree/api/option_values_controller_spec.rb +32 -29
  24. data/spec/{controllers → requests}/spree/api/orders_controller_spec.rb +103 -133
  25. data/spec/{controllers → requests}/spree/api/payments_controller_spec.rb +30 -44
  26. data/spec/{controllers → requests}/spree/api/product_properties_controller_spec.rb +15 -17
  27. data/spec/{controllers → requests}/spree/api/products_controller_spec.rb +44 -43
  28. data/spec/{controllers → requests}/spree/api/promotion_application_spec.rb +3 -4
  29. data/spec/{controllers → requests}/spree/api/promotions_controller_spec.rb +8 -6
  30. data/spec/{controllers → requests}/spree/api/properties_controller_spec.rb +15 -16
  31. data/spec/{controllers → requests}/spree/api/return_authorizations_controller_spec.rb +19 -21
  32. data/spec/requests/spree/api/shipments_controller_spec.rb +394 -88
  33. data/spec/{controllers → requests}/spree/api/states_controller_spec.rb +8 -9
  34. data/spec/{controllers → requests}/spree/api/stock_items_controller_spec.rb +21 -21
  35. data/spec/{controllers → requests}/spree/api/stock_locations_controller_spec.rb +18 -20
  36. data/spec/{controllers → requests}/spree/api/stock_movements_controller_spec.rb +9 -12
  37. data/spec/{controllers → requests}/spree/api/stock_transfers_controller_spec.rb +2 -3
  38. data/spec/requests/spree/api/store_credit_events_controller_spec.rb +57 -0
  39. data/spec/{controllers → requests}/spree/api/stores_controller_spec.rb +19 -20
  40. data/spec/{controllers → requests}/spree/api/taxonomies_controller_spec.rb +14 -15
  41. data/spec/{controllers → requests}/spree/api/taxons_controller_spec.rb +17 -18
  42. data/spec/{controllers → requests}/spree/api/transfer_items_controller_spec.rb +7 -9
  43. data/spec/{controllers → requests}/spree/api/unauthenticated_products_controller_spec.rb +2 -3
  44. data/spec/{controllers → requests}/spree/api/users_controller_spec.rb +18 -19
  45. data/spec/{controllers → requests}/spree/api/variants_controller_spec.rb +70 -37
  46. data/spec/{controllers → requests}/spree/api/zones_controller_spec.rb +13 -14
  47. data/spec/shared_examples/protect_product_actions.rb +3 -3
  48. data/spec/spec_helper.rb +4 -1
  49. metadata +70 -72
  50. data/spec/controllers/spree/api/shipments_controller_spec.rb +0 -301
  51. data/spec/controllers/spree/api/store_credit_events_controller_spec.rb +0 -66
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Api::ClassificationsController, type: :controller do
4
+ describe Api::ClassificationsController, type: :request do
5
5
  let(:taxon) do
6
6
  taxon = create(:taxon)
7
7
 
@@ -18,7 +18,7 @@ module Spree
18
18
 
19
19
  context "as a user" do
20
20
  it "cannot change the order of a product" do
21
- api_put :update, taxon_id: taxon, product_id: taxon.products.first, position: 1
21
+ put spree.api_classifications_path, params: { taxon_id: taxon, product_id: taxon.products.first, position: 1 }
22
22
  expect(response.status).to eq(401)
23
23
  end
24
24
  end
@@ -31,7 +31,7 @@ module Spree
31
31
  it "can change the order a product" do
32
32
  classification = taxon.classifications.find_by(product_id: last_product.id)
33
33
  expect(classification.position).to eq(3)
34
- api_put :update, taxon_id: taxon.id, product_id: last_product.id, position: 0
34
+ put spree.api_classifications_path, params: { taxon_id: taxon.id, product_id: last_product.id, position: 0 }
35
35
  expect(response.status).to eq(200)
36
36
  expect(classification.reload.position).to eq(1)
37
37
  end
@@ -39,7 +39,7 @@ module Spree
39
39
  it "should touch the taxon" do
40
40
  taxon.update_attributes(updated_at: Time.current - 10.seconds)
41
41
  taxon_last_updated_at = taxon.updated_at
42
- api_put :update, taxon_id: taxon.id, product_id: last_product.id, position: 0
42
+ put spree.api_classifications_path, params: { taxon_id: taxon.id, product_id: last_product.id, position: 0 }
43
43
  taxon.reload
44
44
  expect(taxon_last_updated_at.to_i).to_not eq(taxon.updated_at.to_i)
45
45
  end
@@ -1,22 +1,21 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Api::ConfigController, type: :controller do
4
+ describe Api::ConfigController, type: :request do
5
5
  let!(:default_country) { create :country, iso: "US"}
6
- render_views
7
6
 
8
7
  before do
9
8
  stub_authentication!
10
9
  end
11
10
 
12
11
  it "returns Spree::Money settings" do
13
- api_get :money
12
+ get '/api/config/money'
14
13
  expect(response).to be_success
15
14
  expect(json_response["symbol"]).to eq("$")
16
15
  end
17
16
 
18
17
  it "returns some configuration settings" do
19
- api_get :show
18
+ get '/api/config'
20
19
  expect(response).to be_success
21
20
  expect(json_response["default_country_iso"]).to eq("US")
22
21
  expect(json_response["default_country_id"]).to eq(default_country.id)
@@ -1,8 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Api::CountriesController, type: :controller do
5
- render_views
4
+ describe Api::CountriesController, type: :request do
6
5
 
7
6
  before do
8
7
  stub_authentication!
@@ -11,7 +10,7 @@ module Spree
11
10
  end
12
11
 
13
12
  it "gets all countries" do
14
- api_get :index
13
+ get spree.api_countries_path
15
14
  expect(json_response['countries'].first['iso3']).to eq @country.iso3
16
15
  end
17
16
 
@@ -19,20 +18,20 @@ module Spree
19
18
  before { @zambia = create(:country, name: "Zambia") }
20
19
 
21
20
  it "can view all countries" do
22
- api_get :index
21
+ get spree.api_countries_path
23
22
  expect(json_response['count']).to eq(2)
24
23
  expect(json_response['current_page']).to eq(1)
25
24
  expect(json_response['pages']).to eq(1)
26
25
  end
27
26
 
28
27
  it 'can query the results through a paramter' do
29
- api_get :index, q: { name_cont: 'zam' }
28
+ get spree.api_countries_path, params: { q: { name_cont: 'zam' } }
30
29
  expect(json_response['count']).to eq(1)
31
30
  expect(json_response['countries'].first['name']).to eq @zambia.name
32
31
  end
33
32
 
34
33
  it 'can control the page size through a parameter' do
35
- api_get :index, per_page: 1
34
+ get spree.api_countries_path, params: { per_page: 1 }
36
35
  expect(json_response['count']).to eq(1)
37
36
  expect(json_response['current_page']).to eq(1)
38
37
  expect(json_response['pages']).to eq(2)
@@ -40,7 +39,7 @@ module Spree
40
39
  end
41
40
 
42
41
  it "includes states" do
43
- api_get :show, id: @country.id
42
+ get spree.api_country_path(@country.id)
44
43
  states = json_response['states']
45
44
  expect(states.first['name']).to eq @state.name
46
45
  end
@@ -1,9 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Api::CreditCardsController, type: :controller do
4
+ describe Api::CreditCardsController, type: :request do
5
5
  describe '#index' do
6
- render_views
7
6
 
8
7
  let!(:admin_user) do
9
8
  create(:admin_user)
@@ -20,7 +19,7 @@ module Spree
20
19
  end
21
20
 
22
21
  it "the user id doesn't exist" do
23
- api_get :index, user_id: 1000
22
+ get spree.api_user_credit_cards_path(1000)
24
23
  expect(response.status).to eq(404)
25
24
  end
26
25
 
@@ -30,14 +29,14 @@ module Spree
30
29
  end
31
30
 
32
31
  it "no credit cards exist for user" do
33
- api_get :index, user_id: normal_user.id
32
+ get spree.api_user_credit_cards_path(normal_user)
34
33
 
35
34
  expect(response.status).to eq(200)
36
35
  expect(json_response["pages"]).to eq(0)
37
36
  end
38
37
 
39
38
  it "can view all credit cards for user" do
40
- api_get :index, user_id: current_api_user.id
39
+ get spree.api_user_credit_cards_path(current_api_user.id)
41
40
 
42
41
  expect(response.status).to eq(200)
43
42
  expect(json_response["pages"]).to eq(1)
@@ -55,13 +54,13 @@ module Spree
55
54
  let!(:card) { create(:credit_card, user_id: normal_user.id, gateway_customer_profile_id: "random") }
56
55
 
57
56
  it "can not view user" do
58
- api_get :index, user_id: admin_user.id
57
+ get spree.api_user_credit_cards_path(admin_user.id)
59
58
 
60
59
  expect(response.status).to eq(404)
61
60
  end
62
61
 
63
62
  it "can view own credit cards" do
64
- api_get :index, user_id: normal_user.id
63
+ get spree.api_user_credit_cards_path(normal_user.id)
65
64
 
66
65
  expect(response.status).to eq(200)
67
66
  expect(json_response["pages"]).to eq(1)
@@ -85,7 +84,7 @@ module Spree
85
84
 
86
85
  it 'updates the credit card' do
87
86
  expect {
88
- api_put :update, id: credit_card.to_param, credit_card: { name: 'Jordan Brough' }
87
+ put spree.api_credit_card_path(credit_card.to_param), params: { credit_card: { name: 'Jordan Brough' } }
89
88
  }.to change {
90
89
  credit_card.reload.name
91
90
  }.from('Joe Shmoe').to('Jordan Brough')
@@ -96,7 +95,7 @@ module Spree
96
95
  let(:current_api_user) { create(:user) }
97
96
 
98
97
  it 'rejects the request' do
99
- api_put :update, id: credit_card.to_param, credit_card: { name: 'Jordan Brough' }
98
+ put spree.api_credit_card_path(credit_card.to_param), params: { credit_card: { name: 'Jordan Brough' } }
100
99
  expect(response.status).to eq(401)
101
100
  end
102
101
  end
@@ -1,8 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Spree::Api::ImagesController, type: :controller do
5
- render_views
4
+ describe Spree::Api::ImagesController, type: :request do
6
5
 
7
6
  let!(:product) { create(:product) }
8
7
  let!(:attributes) {
@@ -20,11 +19,13 @@ module Spree
20
19
 
21
20
  it "can upload a new image for a variant" do
22
21
  expect do
23
- api_post :create,
24
- image: { attachment: upload_image('thinking-cat.jpg'),
25
- viewable_type: 'Spree::Variant',
26
- viewable_id: product.master.to_param },
27
- product_id: product.id
22
+ post spree.api_product_images_path(product.id), params: {
23
+ image: {
24
+ attachment: upload_image('thinking-cat.jpg'),
25
+ viewable_type: 'Spree::Variant',
26
+ viewable_id: product.master.to_param
27
+ },
28
+ }
28
29
  expect(response.status).to eq(201)
29
30
  expect(json_response).to have_attributes(attributes)
30
31
  end.to change(Image, :count).by(1)
@@ -34,26 +35,26 @@ module Spree
34
35
  let!(:product_image) { product.master.images.create!(attachment: image('thinking-cat.jpg')) }
35
36
 
36
37
  it "can get a single product image" do
37
- api_get :show, id: product_image.id, product_id: product.id
38
+ get spree.api_product_image_path(product.id, product_image)
38
39
  expect(response.status).to eq(200)
39
40
  expect(json_response).to have_attributes(attributes)
40
41
  end
41
42
 
42
43
  it "can get a single variant image" do
43
- api_get :show, id: product_image.id, variant_id: product.master.id
44
+ get spree.api_variant_image_path(product.master.id, product_image)
44
45
  expect(response.status).to eq(200)
45
46
  expect(json_response).to have_attributes(attributes)
46
47
  end
47
48
 
48
49
  it "can get a list of product images" do
49
- api_get :index, product_id: product.id
50
+ get spree.api_product_images_path(product.id)
50
51
  expect(response.status).to eq(200)
51
52
  expect(json_response).to have_key("images")
52
53
  expect(json_response["images"].first).to have_attributes(attributes)
53
54
  end
54
55
 
55
56
  it "can get a list of variant images" do
56
- api_get :index, variant_id: product.master.id
57
+ get spree.api_variant_images_path(product.master.id)
57
58
  expect(response.status).to eq(200)
58
59
  expect(json_response).to have_key("images")
59
60
  expect(json_response["images"].first).to have_attributes(attributes)
@@ -61,14 +62,14 @@ module Spree
61
62
 
62
63
  it "can update image data" do
63
64
  expect(product_image.position).to eq(1)
64
- api_post :update, image: { position: 2 }, id: product_image.id, product_id: product.id
65
+ put spree.api_variant_image_path(product.id, product_image), params: { image: { position: 2 } }
65
66
  expect(response.status).to eq(200)
66
67
  expect(json_response).to have_attributes(attributes)
67
68
  expect(product_image.reload.position).to eq(2)
68
69
  end
69
70
 
70
71
  it "can delete an image" do
71
- api_delete :destroy, id: product_image.id, product_id: product.id
72
+ delete spree.api_variant_image_path(product.id, product_image)
72
73
  expect(response.status).to eq(204)
73
74
  expect { product_image.reload }.to raise_error(ActiveRecord::RecordNotFound)
74
75
  end
@@ -76,18 +77,20 @@ module Spree
76
77
  end
77
78
 
78
79
  context "as a non-admin" do
80
+ let(:product_image) { product.master.images.create!(attachment: image('thinking-cat.jpg')) }
81
+
79
82
  it "cannot create an image" do
80
- api_post :create, product_id: product.id
83
+ post spree.api_product_images_path(product.id)
81
84
  assert_unauthorized!
82
85
  end
83
86
 
84
87
  it "cannot update an image" do
85
- api_put :update, id: 1, product_id: product.id
88
+ put spree.api_product_image_path(product.id, product_image)
86
89
  assert_not_found!
87
90
  end
88
91
 
89
92
  it "cannot delete an image" do
90
- api_delete :destroy, id: 1, product_id: product.id
93
+ delete spree.api_product_image_path(product.id, product_image)
91
94
  assert_not_found!
92
95
  end
93
96
  end
@@ -1,12 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module Spree
4
- describe Api::InventoryUnitsController, type: :controller do
5
- render_views
4
+ describe Api::InventoryUnitsController, type: :request do
5
+ let!(:inventory_unit) { create(:inventory_unit) }
6
6
 
7
7
  before do
8
8
  stub_authentication!
9
- @inventory_unit = create(:inventory_unit)
10
9
  end
11
10
 
12
11
  context "as an admin" do
@@ -14,34 +13,38 @@ module Spree
14
13
  let(:variant) { create(:variant) }
15
14
 
16
15
  it "gets an inventory unit" do
17
- api_get :show, id: @inventory_unit.id
18
- expect(json_response['state']).to eq @inventory_unit.state
16
+ get spree.api_inventory_unit_path(inventory_unit)
17
+ expect(json_response['state']).to eq inventory_unit.state
19
18
  end
20
19
 
21
20
  it "updates an inventory unit" do
22
- api_put :update, id: @inventory_unit.id,
23
- inventory_unit: { variant_id: variant.id }
21
+ put spree.api_inventory_unit_path(inventory_unit), params: {
22
+ inventory_unit: { variant_id: variant.id }
23
+ }
24
24
  expect(json_response['variant_id']).to eq variant.id
25
25
  end
26
26
 
27
27
  context 'fires state event' do
28
28
  it 'if supplied with :fire param' do
29
- api_put :update, id: @inventory_unit.id,
30
- fire: 'ship',
31
- inventory_unit: { variant_id: variant.id }
29
+ put spree.api_inventory_unit_path(inventory_unit), params: {
30
+ fire: 'ship',
31
+ inventory_unit: { variant_id: variant.id }
32
+ }
32
33
 
33
34
  expect(json_response['state']).to eq 'shipped'
34
35
  end
35
36
 
36
37
  it 'and returns exception if cannot fire' do
37
- api_put :update, id: @inventory_unit.id,
38
- fire: 'return'
38
+ put spree.api_inventory_unit_path(inventory_unit), params: {
39
+ fire: 'return'
40
+ }
39
41
  expect(json_response['exception']).to match /cannot transition to return/
40
42
  end
41
43
 
42
44
  it 'and returns exception bad state' do
43
- api_put :update, id: @inventory_unit.id,
44
- fire: 'bad'
45
+ put spree.api_inventory_unit_path(inventory_unit), params: {
46
+ fire: 'bad'
47
+ }
45
48
  expect(json_response['exception']).to match /cannot transition to bad/
46
49
  end
47
50
  end
@@ -5,15 +5,11 @@ module Spree
5
5
  mattr_writer :line_item_attributes
6
6
  end
7
7
 
8
- unless PermittedAttributes.line_item_attributes.include? :some_option
9
- PermittedAttributes.line_item_attributes += [:some_option]
8
+ unless PermittedAttributes.line_item_attributes.include? :options
9
+ PermittedAttributes.line_item_attributes << { options: [:some_option] }
10
10
  end
11
11
 
12
- # This should go in an initializer
13
- Spree::Api::LineItemsController.line_item_options += [:some_option]
14
-
15
- describe Api::LineItemsController, type: :controller do
16
- render_views
12
+ describe Api::LineItemsController, type: :request do
17
13
 
18
14
  let!(:order) { create(:order_with_line_items, line_items_count: 1) }
19
15
 
@@ -26,7 +22,7 @@ module Spree
26
22
  end
27
23
 
28
24
  it "can learn how to create a new line item" do
29
- api_get :new
25
+ get spree.new_api_order_line_item_path(order)
30
26
  expect(json_response["attributes"]).to eq(["quantity", "price", "variant_id"])
31
27
  required_attributes = json_response["required_attributes"]
32
28
  expect(required_attributes).to include("quantity", "variant_id")
@@ -34,15 +30,16 @@ module Spree
34
30
 
35
31
  context "authenticating with a token" do
36
32
  it "can add a new line item to an existing order" do
37
- api_post :create, line_item: { variant_id: product.master.to_param, quantity: 1 }, order_token: order.guest_token
33
+ post spree.api_order_line_items_path(order), params: { line_item: { variant_id: product.master.to_param, quantity: 1 }, order_token: order.guest_token }
38
34
  expect(response.status).to eq(201)
39
35
  expect(json_response).to have_attributes(attributes)
40
36
  expect(json_response["variant"]["name"]).not_to be_blank
41
37
  end
42
38
 
43
39
  it "can add a new line item to an existing order with token in header" do
44
- request.headers["X-Spree-Order-Token"] = order.guest_token
45
- api_post :create, line_item: { variant_id: product.master.to_param, quantity: 1 }
40
+ post spree.api_order_line_items_path(order),
41
+ params: { line_item: { variant_id: product.master.to_param, quantity: 1 } },
42
+ headers: { 'X-Spree-Order-Token' => order.guest_token }
46
43
  expect(response.status).to eq(201)
47
44
  expect(json_response).to have_attributes(attributes)
48
45
  expect(json_response["variant"]["name"]).not_to be_blank
@@ -55,7 +52,7 @@ module Spree
55
52
  end
56
53
 
57
54
  it "can add a new line item to an existing order" do
58
- api_post :create, line_item: { variant_id: product.master.to_param, quantity: 1 }
55
+ post spree.api_order_line_items_path(order), params: { line_item: { variant_id: product.master.to_param, quantity: 1 } }
59
56
  expect(response.status).to eq(201)
60
57
  expect(json_response).to have_attributes(attributes)
61
58
  expect(json_response["variant"]["name"]).not_to be_blank
@@ -63,17 +60,19 @@ module Spree
63
60
 
64
61
  it "can add a new line item to an existing order with options" do
65
62
  expect_any_instance_of(LineItem).to receive(:some_option=).with("foobar")
66
- api_post :create,
67
- line_item: {
68
- variant_id: product.master.to_param,
69
- quantity: 1,
70
- options: { some_option: "foobar" }
71
- }
63
+ post spree.api_order_line_items_path(order),
64
+ params: {
65
+ line_item: {
66
+ variant_id: product.master.to_param,
67
+ quantity: 1,
68
+ options: { some_option: "foobar" }
69
+ }
70
+ }
72
71
  expect(response.status).to eq(201)
73
72
  end
74
73
 
75
74
  it "default quantity to 1 if none is given" do
76
- api_post :create, line_item: { variant_id: product.master.to_param }
75
+ post spree.api_order_line_items_path(order), params: { line_item: { variant_id: product.master.to_param } }
77
76
  expect(response.status).to eq(201)
78
77
  expect(json_response).to have_attributes(attributes)
79
78
  expect(json_response[:quantity]).to eq 1
@@ -81,7 +80,7 @@ module Spree
81
80
 
82
81
  it "increases a line item's quantity if it exists already" do
83
82
  order.line_items.create(variant_id: product.master.id, quantity: 10)
84
- api_post :create, line_item: { variant_id: product.master.to_param, quantity: 1 }
83
+ post spree.api_order_line_items_path(order), params: { line_item: { variant_id: product.master.to_param, quantity: 1 } }
85
84
  expect(response.status).to eq(201)
86
85
  order.reload
87
86
  expect(order.line_items.count).to eq(2) # 1 original due to factory, + 1 in this test
@@ -91,7 +90,7 @@ module Spree
91
90
 
92
91
  it "can update a line item on the order" do
93
92
  line_item = order.line_items.first
94
- api_put :update, id: line_item.id, line_item: { quantity: 101 }
93
+ put spree.api_order_line_item_path(order, line_item), params: { line_item: { quantity: 101 } }
95
94
  expect(response.status).to eq(200)
96
95
  order.reload
97
96
  expect(order.total).to eq(1010) # 10 original due to factory, + 1000 in this test
@@ -102,15 +101,16 @@ module Spree
102
101
  it "can update a line item's options on the order" do
103
102
  expect_any_instance_of(LineItem).to receive(:some_option=).with("foobar")
104
103
  line_item = order.line_items.first
105
- api_put :update,
106
- id: line_item.id,
107
- line_item: { quantity: 1, options: { some_option: "foobar" } }
104
+ put spree.api_order_line_item_path(order, line_item),
105
+ params: {
106
+ line_item: { quantity: 1, options: { some_option: "foobar" } }
107
+ }
108
108
  expect(response.status).to eq(200)
109
109
  end
110
110
 
111
111
  it "can delete a line item on the order" do
112
112
  line_item = order.line_items.first
113
- api_delete :destroy, id: line_item.id
113
+ delete spree.api_order_line_item_path(order, line_item)
114
114
  expect(response.status).to eq(204)
115
115
  order.reload
116
116
  expect(order.line_items.count).to eq(0) # 1 original due to factory, - 1 in this test
@@ -126,19 +126,19 @@ module Spree
126
126
 
127
127
  it "clear out shipments on create" do
128
128
  expect(order.reload.shipments).not_to be_empty
129
- api_post :create, line_item: { variant_id: product.master.to_param, quantity: 1 }
129
+ post spree.api_order_line_items_path(order), params: { line_item: { variant_id: product.master.to_param, quantity: 1 } }
130
130
  expect(order.reload.shipments).to be_empty
131
131
  end
132
132
 
133
133
  it "clear out shipments on update" do
134
134
  expect(order.reload.shipments).not_to be_empty
135
- api_put :update, id: line_item.id, line_item: { quantity: 1000 }
135
+ put spree.api_order_line_item_path(order, line_item), params: { line_item: { quantity: 1000 } }
136
136
  expect(order.reload.shipments).to be_empty
137
137
  end
138
138
 
139
139
  it "clear out shipments on delete" do
140
140
  expect(order.reload.shipments).not_to be_empty
141
- api_delete :destroy, id: line_item.id
141
+ delete spree.api_order_line_item_path(order, line_item)
142
142
  expect(order.reload.shipments).to be_empty
143
143
  end
144
144
 
@@ -150,7 +150,7 @@ module Spree
150
150
 
151
151
  it "doesn't destroy shipments or restart checkout flow" do
152
152
  expect(order.reload.shipments).not_to be_empty
153
- api_post :create, line_item: { variant_id: product.master.to_param, quantity: 1 }
153
+ post spree.api_order_line_items_path(order), params: { line_item: { variant_id: product.master.to_param, quantity: 1 } }
154
154
  expect(order.reload.shipments).not_to be_empty
155
155
  end
156
156
  end
@@ -165,20 +165,20 @@ module Spree
165
165
  end
166
166
 
167
167
  it "cannot add a new line item to the order" do
168
- api_post :create, line_item: { variant_id: product.master.to_param, quantity: 1 }
168
+ post spree.api_order_line_items_path(order), params: { line_item: { variant_id: product.master.to_param, quantity: 1 } }
169
169
  assert_unauthorized!
170
170
  end
171
171
 
172
172
  it "cannot update a line item on the order" do
173
173
  line_item = order.line_items.first
174
- api_put :update, id: line_item.id, line_item: { quantity: 1000 }
174
+ put spree.api_order_line_item_path(order, line_item), params: { line_item: { quantity: 1000 } }
175
175
  assert_unauthorized!
176
176
  expect(line_item.reload.quantity).not_to eq(1000)
177
177
  end
178
178
 
179
179
  it "cannot delete a line item on the order" do
180
180
  line_item = order.line_items.first
181
- api_delete :destroy, id: line_item.id
181
+ delete spree.api_order_line_item_path(order, line_item)
182
182
  assert_unauthorized!
183
183
  expect { line_item.reload }.not_to raise_error
184
184
  end