spree_api 3.1.5 → 3.1.6

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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/spree/api/v1/product_properties_controller.rb +7 -10
  3. data/app/views/spree/api/v1/countries/index.v1.rabl +1 -1
  4. data/app/views/spree/api/v1/credit_cards/index.v1.rabl +1 -1
  5. data/app/views/spree/api/v1/orders/index.v1.rabl +1 -1
  6. data/app/views/spree/api/v1/orders/mine.v1.rabl +1 -1
  7. data/app/views/spree/api/v1/payments/index.v1.rabl +1 -1
  8. data/app/views/spree/api/v1/product_properties/index.v1.rabl +1 -1
  9. data/app/views/spree/api/v1/products/index.v1.rabl +1 -1
  10. data/app/views/spree/api/v1/properties/index.v1.rabl +1 -1
  11. data/app/views/spree/api/v1/return_authorizations/index.v1.rabl +1 -1
  12. data/app/views/spree/api/v1/shipments/mine.v1.rabl +1 -1
  13. data/app/views/spree/api/v1/states/index.v1.rabl +1 -1
  14. data/app/views/spree/api/v1/stock_items/index.v1.rabl +1 -1
  15. data/app/views/spree/api/v1/stock_locations/index.v1.rabl +1 -1
  16. data/app/views/spree/api/v1/stock_movements/index.v1.rabl +1 -1
  17. data/app/views/spree/api/v1/taxonomies/index.v1.rabl +1 -1
  18. data/app/views/spree/api/v1/taxons/index.v1.rabl +1 -1
  19. data/app/views/spree/api/v1/users/index.v1.rabl +1 -1
  20. data/app/views/spree/api/v1/zones/index.v1.rabl +1 -1
  21. data/spree_api.gemspec +1 -2
  22. metadata +6 -88
  23. data/spec/controllers/spree/api/base_controller_spec.rb +0 -96
  24. data/spec/controllers/spree/api/v1/addresses_controller_spec.rb +0 -56
  25. data/spec/controllers/spree/api/v1/checkouts_controller_spec.rb +0 -363
  26. data/spec/controllers/spree/api/v1/classifications_controller_spec.rb +0 -48
  27. data/spec/controllers/spree/api/v1/countries_controller_spec.rb +0 -48
  28. data/spec/controllers/spree/api/v1/credit_cards_controller_spec.rb +0 -80
  29. data/spec/controllers/spree/api/v1/images_controller_spec.rb +0 -115
  30. data/spec/controllers/spree/api/v1/inventory_units_controller_spec.rb +0 -49
  31. data/spec/controllers/spree/api/v1/line_items_controller_spec.rb +0 -184
  32. data/spec/controllers/spree/api/v1/option_types_controller_spec.rb +0 -122
  33. data/spec/controllers/spree/api/v1/option_values_controller_spec.rb +0 -141
  34. data/spec/controllers/spree/api/v1/orders_controller_spec.rb +0 -735
  35. data/spec/controllers/spree/api/v1/payments_controller_spec.rb +0 -234
  36. data/spec/controllers/spree/api/v1/product_properties_controller_spec.rb +0 -116
  37. data/spec/controllers/spree/api/v1/products_controller_spec.rb +0 -409
  38. data/spec/controllers/spree/api/v1/promotion_application_spec.rb +0 -50
  39. data/spec/controllers/spree/api/v1/promotions_controller_spec.rb +0 -64
  40. data/spec/controllers/spree/api/v1/properties_controller_spec.rb +0 -102
  41. data/spec/controllers/spree/api/v1/return_authorizations_controller_spec.rb +0 -161
  42. data/spec/controllers/spree/api/v1/shipments_controller_spec.rb +0 -187
  43. data/spec/controllers/spree/api/v1/states_controller_spec.rb +0 -86
  44. data/spec/controllers/spree/api/v1/stock_items_controller_spec.rb +0 -143
  45. data/spec/controllers/spree/api/v1/stock_locations_controller_spec.rb +0 -113
  46. data/spec/controllers/spree/api/v1/stock_movements_controller_spec.rb +0 -84
  47. data/spec/controllers/spree/api/v1/stores_controller_spec.rb +0 -133
  48. data/spec/controllers/spree/api/v1/taxonomies_controller_spec.rb +0 -114
  49. data/spec/controllers/spree/api/v1/taxons_controller_spec.rb +0 -177
  50. data/spec/controllers/spree/api/v1/unauthenticated_products_controller_spec.rb +0 -26
  51. data/spec/controllers/spree/api/v1/users_controller_spec.rb +0 -153
  52. data/spec/controllers/spree/api/v1/variants_controller_spec.rb +0 -205
  53. data/spec/controllers/spree/api/v1/zones_controller_spec.rb +0 -91
  54. data/spec/fixtures/thinking-cat.jpg +0 -0
  55. data/spec/models/spree/legacy_user_spec.rb +0 -19
  56. data/spec/requests/rabl_cache_spec.rb +0 -32
  57. data/spec/requests/ransackable_attributes_spec.rb +0 -79
  58. data/spec/requests/version_spec.rb +0 -19
  59. data/spec/shared_examples/protect_product_actions.rb +0 -17
  60. data/spec/spec_helper.rb +0 -55
  61. data/spec/support/controller_hacks.rb +0 -33
  62. data/spec/support/database_cleaner.rb +0 -14
  63. data/spec/support/have_attributes_matcher.rb +0 -13
@@ -1,50 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spree
4
- describe Api::V1::OrdersController, :type => :controller do
5
- render_views
6
-
7
- before do
8
- stub_authentication!
9
- end
10
-
11
- context "with an available promotion" do
12
- let!(:order) { create(:order_with_line_items, :line_items_count => 1) }
13
- let!(:promotion) do
14
- promotion = Spree::Promotion.create(name: "10% off", code: "10off")
15
- calculator = Spree::Calculator::FlatPercentItemTotal.create(preferred_flat_percent: "10")
16
- action = Spree::Promotion::Actions::CreateItemAdjustments.create(calculator: calculator)
17
- promotion.actions << action
18
- promotion
19
- end
20
-
21
- it "can apply a coupon code to the order" do
22
- expect(order.total).to eq(110.00)
23
- api_put :apply_coupon_code, :id => order.to_param, :coupon_code => "10off", :order_token => order.guest_token
24
- expect(response.status).to eq(200)
25
- expect(order.reload.total).to eq(109.00)
26
- expect(json_response["success"]).to eq("The coupon code was successfully applied to your order.")
27
- expect(json_response["error"]).to be_blank
28
- expect(json_response["successful"]).to be true
29
- expect(json_response["status_code"]).to eq("coupon_code_applied")
30
- end
31
-
32
- context "with an expired promotion" do
33
- before do
34
- promotion.starts_at = 2.weeks.ago
35
- promotion.expires_at = 1.week.ago
36
- promotion.save
37
- end
38
-
39
- it "fails to apply" do
40
- api_put :apply_coupon_code, :id => order.to_param, :coupon_code => "10off", :order_token => order.guest_token
41
- expect(response.status).to eq(422)
42
- expect(json_response["success"]).to be_blank
43
- expect(json_response["error"]).to eq("The coupon code is expired")
44
- expect(json_response["successful"]).to be false
45
- expect(json_response["status_code"]).to eq("coupon_code_expired")
46
- end
47
- end
48
- end
49
- end
50
- end
@@ -1,64 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spree
4
- describe Api::V1::PromotionsController, :type => :controller do
5
- render_views
6
-
7
- shared_examples "a JSON response" do
8
- it 'should be ok' do
9
- expect(subject).to be_ok
10
- end
11
-
12
- it 'should return JSON' do
13
- payload = HashWithIndifferentAccess.new(JSON.parse(subject.body))
14
- expect(payload).to_not be_nil
15
- Spree::Api::ApiHelpers.promotion_attributes.each do |attribute|
16
- expect(payload.has_key?(attribute)).to be true
17
- end
18
- end
19
- end
20
-
21
- before do
22
- stub_authentication!
23
- end
24
-
25
- let(:promotion) { create :promotion, :with_order_adjustment, code: '10off' }
26
-
27
- describe 'GET #show' do
28
- subject { api_get :show, id: id }
29
-
30
- context 'when admin' do
31
- sign_in_as_admin!
32
-
33
- context 'when finding by id' do
34
- let(:id) { promotion.id }
35
-
36
- it_behaves_like "a JSON response"
37
- end
38
-
39
- context 'when finding by code' do
40
- let(:id) { promotion.code }
41
-
42
- it_behaves_like "a JSON response"
43
- end
44
-
45
- context 'when id does not exist' do
46
- let(:id) { 'argh' }
47
-
48
- it 'should be 404' do
49
- expect(subject.status).to eq(404)
50
- end
51
- end
52
- end
53
-
54
- context 'when non admin' do
55
- let(:id) { promotion.id }
56
-
57
- it 'should be unauthorized' do
58
- subject
59
- assert_unauthorized!
60
- end
61
- end
62
- end
63
- end
64
- end
@@ -1,102 +0,0 @@
1
- require 'spec_helper'
2
- module Spree
3
- describe Api::V1::PropertiesController, :type => :controller do
4
- render_views
5
-
6
- let!(:property_1) { Property.create!(:name => "foo", :presentation => "Foo") }
7
- let!(:property_2) { Property.create!(:name => "bar", :presentation => "Bar") }
8
-
9
- let(:attributes) { [:id, :name, :presentation] }
10
-
11
- before do
12
- stub_authentication!
13
- end
14
-
15
- it "can see a list of all properties" do
16
- api_get :index
17
- expect(json_response["properties"].count).to eq(2)
18
- expect(json_response["properties"].first).to have_attributes(attributes)
19
- end
20
-
21
- it "can control the page size through a parameter" do
22
- api_get :index, :per_page => 1
23
- expect(json_response['properties'].count).to eq(1)
24
- expect(json_response['current_page']).to eq(1)
25
- expect(json_response['pages']).to eq(2)
26
- end
27
-
28
- it 'can query the results through a parameter' do
29
- api_get :index, :q => { :name_cont => 'ba' }
30
- expect(json_response['count']).to eq(1)
31
- expect(json_response['properties'].first['presentation']).to eq property_2.presentation
32
- end
33
-
34
- it "retrieves a list of properties by id" do
35
- api_get :index, :ids => [property_1.id]
36
- expect(json_response["properties"].first).to have_attributes(attributes)
37
- expect(json_response["count"]).to eq(1)
38
- end
39
-
40
- it "retrieves a list of properties by ids string" do
41
- api_get :index, :ids => [property_1.id, property_2.id].join(",")
42
- expect(json_response["properties"].first).to have_attributes(attributes)
43
- expect(json_response["properties"][1]).to have_attributes(attributes)
44
- expect(json_response["count"]).to eq(2)
45
- end
46
-
47
- it "can see a single property" do
48
- api_get :show, :id => property_1.id
49
- expect(json_response).to have_attributes(attributes)
50
- end
51
-
52
- it "can see a property by name" do
53
- api_get :show, :id => property_1.name
54
- expect(json_response).to have_attributes(attributes)
55
- end
56
-
57
- it "can learn how to create a new property" do
58
- api_get :new
59
- expect(json_response["attributes"]).to eq(attributes.map(&:to_s))
60
- expect(json_response["required_attributes"]).to be_empty
61
- end
62
-
63
- it "cannot create a new property if not an admin" do
64
- api_post :create, :property => { :name => "My Property 3" }
65
- assert_unauthorized!
66
- end
67
-
68
- it "cannot update a property" do
69
- api_put :update, :id => property_1.name, :property => { :presentation => "my value 456" }
70
- assert_unauthorized!
71
- end
72
-
73
- it "cannot delete a property" do
74
- api_delete :destroy, :id => property_1.id
75
- assert_unauthorized!
76
- expect { property_1.reload }.not_to raise_error
77
- end
78
-
79
- context "as an admin" do
80
- sign_in_as_admin!
81
-
82
- it "can create a new property" do
83
- expect(Spree::Property.count).to eq(2)
84
- api_post :create, :property => { :name => "My Property 3", :presentation => "my value 3" }
85
- expect(json_response).to have_attributes(attributes)
86
- expect(response.status).to eq(201)
87
- expect(Spree::Property.count).to eq(3)
88
- end
89
-
90
- it "can update a property" do
91
- api_put :update, :id => property_1.name, :property => { :presentation => "my value 456" }
92
- expect(response.status).to eq(200)
93
- end
94
-
95
- it "can delete a property" do
96
- api_delete :destroy, :id => property_1.name
97
- expect(response.status).to eq(204)
98
- expect { property_1.reload }.to raise_error(ActiveRecord::RecordNotFound)
99
- end
100
- end
101
- end
102
- end
@@ -1,161 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Spree
4
- describe Api::V1::ReturnAuthorizationsController, :type => :controller do
5
- render_views
6
-
7
- let!(:order) { create(:shipped_order) }
8
-
9
- let(:product) { create(:product) }
10
- let(:attributes) { [:id, :memo, :state] }
11
- let(:resource_scoping) { { :order_id => order.to_param } }
12
-
13
- before do
14
- stub_authentication!
15
- end
16
-
17
- context "as the order owner" do
18
- before do
19
- allow_any_instance_of(Order).to receive_messages :user => current_api_user
20
- end
21
-
22
- it "cannot see any return authorizations" do
23
- api_get :index
24
- assert_unauthorized!
25
- end
26
-
27
- it "cannot see a single return authorization" do
28
- api_get :show, :id => 1
29
- assert_unauthorized!
30
- end
31
-
32
- it "cannot learn how to create a new return authorization" do
33
- api_get :new
34
- assert_unauthorized!
35
- end
36
-
37
- it "cannot create a new return authorization" do
38
- api_post :create
39
- assert_unauthorized!
40
- end
41
-
42
- it "cannot update a return authorization" do
43
- api_put :update, id: 1
44
- assert_not_found!
45
- end
46
-
47
- it "cannot delete a return authorization" do
48
- api_delete :destroy, id: 1
49
- assert_not_found!
50
- end
51
- end
52
-
53
- context "as an admin" do
54
- sign_in_as_admin!
55
-
56
- it "can show return authorization" do
57
- FactoryGirl.create(:return_authorization, :order => order)
58
- return_authorization = order.return_authorizations.first
59
- api_get :show, :order_id => order.number, :id => return_authorization.id
60
- expect(response.status).to eq(200)
61
- expect(json_response).to have_attributes(attributes)
62
- expect(json_response["state"]).not_to be_blank
63
- end
64
-
65
- it "can get a list of return authorizations" do
66
- FactoryGirl.create(:return_authorization, :order => order)
67
- FactoryGirl.create(:return_authorization, :order => order)
68
- api_get :index, { :order_id => order.number }
69
- expect(response.status).to eq(200)
70
- return_authorizations = json_response["return_authorizations"]
71
- expect(return_authorizations.first).to have_attributes(attributes)
72
- expect(return_authorizations.first).not_to eq(return_authorizations.last)
73
- end
74
-
75
- it 'can control the page size through a parameter' do
76
- FactoryGirl.create(:return_authorization, :order => order)
77
- FactoryGirl.create(:return_authorization, :order => order)
78
- api_get :index, :order_id => order.number, :per_page => 1
79
- expect(json_response['count']).to eq(1)
80
- expect(json_response['current_page']).to eq(1)
81
- expect(json_response['pages']).to eq(2)
82
- end
83
-
84
- it 'can query the results through a paramter' do
85
- FactoryGirl.create(:return_authorization, :order => order)
86
- expected_result = create(:return_authorization, :memo => 'damaged')
87
- order.return_authorizations << expected_result
88
- api_get :index, :q => { :memo_cont => 'damaged' }
89
- expect(json_response['count']).to eq(1)
90
- expect(json_response['return_authorizations'].first['memo']).to eq expected_result.memo
91
- end
92
-
93
- it "can learn how to create a new return authorization" do
94
- api_get :new
95
- expect(json_response["attributes"]).to eq(["id", "number", "state", "order_id", "memo", "created_at", "updated_at"])
96
- required_attributes = json_response["required_attributes"]
97
- expect(required_attributes).to include("order")
98
- end
99
-
100
- it "can update a return authorization on the order" do
101
- FactoryGirl.create(:return_authorization, :order => order)
102
- return_authorization = order.return_authorizations.first
103
- api_put :update, :id => return_authorization.id, :return_authorization => { :memo => "ABC" }
104
- expect(response.status).to eq(200)
105
- expect(json_response).to have_attributes(attributes)
106
- end
107
-
108
- it "can cancel a return authorization on the order" do
109
- FactoryGirl.create(:new_return_authorization, :order => order)
110
- return_authorization = order.return_authorizations.first
111
- expect(return_authorization.state).to eq("authorized")
112
- api_delete :cancel, :id => return_authorization.id
113
- expect(response.status).to eq(200)
114
- expect(return_authorization.reload.state).to eq("canceled")
115
- end
116
-
117
- it "can delete a return authorization on the order" do
118
- FactoryGirl.create(:return_authorization, :order => order)
119
- return_authorization = order.return_authorizations.first
120
- api_delete :destroy, :id => return_authorization.id
121
- expect(response.status).to eq(204)
122
- expect { return_authorization.reload }.to raise_error(ActiveRecord::RecordNotFound)
123
- end
124
-
125
- it "can add a new return authorization to an existing order" do
126
- stock_location = FactoryGirl.create(:stock_location)
127
- reason = FactoryGirl.create(:return_authorization_reason)
128
- rma_params = { :stock_location_id => stock_location.id,
129
- :return_authorization_reason_id => reason.id,
130
- :memo => "Defective" }
131
- api_post :create, :order_id => order.number, :return_authorization => rma_params
132
- expect(response.status).to eq(201)
133
- expect(json_response).to have_attributes(attributes)
134
- expect(json_response["state"]).not_to be_blank
135
- end
136
- end
137
-
138
- context "as just another user" do
139
- it "cannot add a return authorization to the order" do
140
- api_post :create, :return_autorization => { :order_id => order.number, :memo => "Defective" }
141
- assert_unauthorized!
142
- end
143
-
144
- it "cannot update a return authorization on the order" do
145
- FactoryGirl.create(:return_authorization, :order => order)
146
- return_authorization = order.return_authorizations.first
147
- api_put :update, :id => return_authorization.id, :return_authorization => { :memo => "ABC" }
148
- assert_unauthorized!
149
- expect(return_authorization.reload.memo).not_to eq("ABC")
150
- end
151
-
152
- it "cannot delete a return authorization on the order" do
153
- FactoryGirl.create(:return_authorization, :order => order)
154
- return_authorization = order.return_authorizations.first
155
- api_delete :destroy, :id => return_authorization.id
156
- assert_unauthorized!
157
- expect { return_authorization.reload }.not_to raise_error
158
- end
159
- end
160
- end
161
- end
@@ -1,187 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Spree::Api::V1::ShipmentsController, :type => :controller do
4
- render_views
5
- let!(:shipment) { create(:shipment) }
6
- let!(:attributes) { [:id, :tracking, :number, :cost, :shipped_at, :stock_location_name, :order_id, :shipping_rates, :shipping_methods] }
7
-
8
- before do
9
- stub_authentication!
10
- end
11
-
12
- let!(:resource_scoping) { { id: shipment.to_param, shipment: { order_id: shipment.order.to_param } } }
13
-
14
- context "as a non-admin" do
15
- it "cannot make a shipment ready" do
16
- api_put :ready
17
- assert_not_found!
18
- end
19
-
20
- it "cannot make a shipment shipped" do
21
- api_put :ship
22
- assert_not_found!
23
- end
24
- end
25
-
26
- context "as an admin" do
27
- let!(:order) { shipment.order }
28
- let!(:stock_location) { create(:stock_location_with_items) }
29
- let!(:variant) { create(:variant) }
30
-
31
- sign_in_as_admin!
32
-
33
- # Start writing this spec a bit differently than before....
34
- describe 'POST #create' do
35
- let(:params) do
36
- {
37
- variant_id: stock_location.stock_items.first.variant.to_param,
38
- shipment: { order_id: order.number },
39
- stock_location_id: stock_location.to_param
40
- }
41
- end
42
-
43
- subject do
44
- api_post :create, params
45
- end
46
-
47
- [:variant_id, :stock_location_id].each do |field|
48
- context "when #{field} is missing" do
49
- before do
50
- params.delete(field)
51
- end
52
-
53
- it 'should return proper error' do
54
- subject
55
- expect(response.status).to eq(422)
56
- expect(json_response['exception']).to eq("param is missing or the value is empty: #{field.to_s}")
57
- end
58
- end
59
- end
60
-
61
- it 'should create a new shipment' do
62
- expect(subject).to be_ok
63
- expect(json_response).to have_attributes(attributes)
64
- end
65
- end
66
-
67
- it 'can update a shipment' do
68
- params = {
69
- shipment: {
70
- stock_location_id: stock_location.to_param
71
- }
72
- }
73
-
74
- api_put :update, params
75
- expect(response.status).to eq(200)
76
- expect(json_response['stock_location_name']).to eq(stock_location.name)
77
- end
78
-
79
- it "can make a shipment ready" do
80
- allow_any_instance_of(Spree::Order).to receive_messages(:paid? => true, :complete? => true)
81
- api_put :ready
82
- expect(json_response).to have_attributes(attributes)
83
- expect(json_response["state"]).to eq("ready")
84
- expect(shipment.reload.state).to eq("ready")
85
- end
86
-
87
- it "cannot make a shipment ready if the order is unpaid" do
88
- allow_any_instance_of(Spree::Order).to receive_messages(:paid? => false)
89
- api_put :ready
90
- expect(json_response["error"]).to eq("Cannot ready shipment.")
91
- expect(response.status).to eq(422)
92
- end
93
-
94
- context 'for completed shipments' do
95
- let(:order) { create :completed_order_with_totals }
96
- let!(:resource_scoping) { { id: order.shipments.first.to_param, shipment: { order_id: order.to_param } } }
97
-
98
- it 'adds a variant to a shipment' do
99
- api_put :add, { variant_id: variant.to_param, quantity: 2 }
100
- expect(response.status).to eq(200)
101
- expect(json_response['manifest'].detect { |h| h['variant']['id'] == variant.id }["quantity"]).to eq(2)
102
- end
103
-
104
- it 'removes a variant from a shipment' do
105
- order.contents.add(variant, 2)
106
-
107
- api_put :remove, { variant_id: variant.to_param, quantity: 1 }
108
- expect(response.status).to eq(200)
109
- expect(json_response['manifest'].detect { |h| h['variant']['id'] == variant.id }["quantity"]).to eq(1)
110
- end
111
-
112
- it 'removes a destroyed variant from a shipment' do
113
- order.contents.add(variant, 2)
114
- variant.destroy
115
-
116
- api_put :remove, { variant_id: variant.to_param, quantity: 1 }
117
- expect(response.status).to eq(200)
118
- expect(json_response['manifest'].detect { |h| h['variant']['id'] == variant.id }["quantity"]).to eq(1)
119
- end
120
- end
121
-
122
- context "can transition a shipment from ready to ship" do
123
- before do
124
- allow_any_instance_of(Spree::Order).to receive_messages(:paid? => true, :complete? => true)
125
- shipment.update!(shipment.order)
126
- expect(shipment.state).to eq("ready")
127
- allow_any_instance_of(Spree::ShippingRate).to receive_messages(:cost => 5)
128
- end
129
-
130
- it "can transition a shipment from ready to ship" do
131
- shipment.reload
132
- api_put :ship, id: shipment.to_param, shipment: { tracking: "123123", order_id: shipment.order.to_param }
133
- expect(json_response).to have_attributes(attributes)
134
- expect(json_response["state"]).to eq("shipped")
135
- end
136
-
137
- end
138
-
139
- describe '#mine' do
140
- subject do
141
- api_get :mine, format: 'json', params: params
142
- end
143
-
144
- let(:params) { {} }
145
-
146
- before { subject }
147
-
148
- context "the current api user is authenticated and has orders" do
149
- let(:current_api_user) { shipped_order.user }
150
- let(:shipped_order) { create(:shipped_order) }
151
-
152
- it 'succeeds' do
153
- expect(response.status).to eq 200
154
- end
155
-
156
- describe 'json output' do
157
- render_views
158
-
159
- let(:rendered_shipment_ids) { json_response['shipments'].map { |s| s['id'] } }
160
-
161
- it 'contains the shipments' do
162
- expect(rendered_shipment_ids).to match_array current_api_user.orders.flat_map(&:shipments).map(&:id)
163
- end
164
- end
165
-
166
- context 'with filtering' do
167
- let(:params) { {q: {order_completed_at_not_null: 1}} }
168
-
169
- let!(:incomplete_order) { create(:order, user: current_api_user) }
170
-
171
- it 'filters' do
172
- expect(assigns(:shipments).map(&:id)).to match_array current_api_user.orders.complete.flat_map(&:shipments).map(&:id)
173
- end
174
- end
175
- end
176
-
177
- context "the current api user is not persisted" do
178
- let(:current_api_user) { Spree.user_class.new }
179
-
180
- it "returns a 401" do
181
- expect(response.status).to eq(401)
182
- end
183
- end
184
- end
185
-
186
- end
187
- end