solidus_api 1.2.3 → 1.3.0.beta1
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.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/Rakefile +1 -1
- data/app/controllers/spree/api/addresses_controller.rb +3 -2
- data/app/controllers/spree/api/base_controller.rb +10 -15
- data/app/controllers/spree/api/checkouts_controller.rb +56 -55
- data/app/controllers/spree/api/classifications_controller.rb +4 -4
- data/app/controllers/spree/api/config_controller.rb +6 -1
- data/app/controllers/spree/api/credit_cards_controller.rb +11 -11
- data/app/controllers/spree/api/images_controller.rb +13 -13
- data/app/controllers/spree/api/inventory_units_controller.rb +4 -4
- data/app/controllers/spree/api/line_items_controller.rb +27 -23
- data/app/controllers/spree/api/option_types_controller.rb +6 -5
- data/app/controllers/spree/api/option_values_controller.rb +12 -12
- data/app/controllers/spree/api/orders_controller.rb +6 -17
- data/app/controllers/spree/api/payments_controller.rb +15 -17
- data/app/controllers/spree/api/product_properties_controller.rb +13 -14
- data/app/controllers/spree/api/products_controller.rb +31 -28
- data/app/controllers/spree/api/promotions_controller.rb +9 -8
- data/app/controllers/spree/api/properties_controller.rb +9 -10
- data/app/controllers/spree/api/resource_controller.rb +9 -1
- data/app/controllers/spree/api/shipments_controller.rb +18 -18
- data/app/controllers/spree/api/states_controller.rb +8 -7
- data/app/controllers/spree/api/stock_items_controller.rb +2 -1
- data/app/controllers/spree/api/stock_locations_controller.rb +1 -1
- data/app/controllers/spree/api/stores_controller.rb +0 -1
- data/app/controllers/spree/api/taxonomies_controller.rb +7 -5
- data/app/controllers/spree/api/taxons_controller.rb +20 -19
- data/app/controllers/spree/api/users_controller.rb +1 -4
- data/app/controllers/spree/api/variants_controller.rb +19 -18
- data/app/controllers/spree/api/zones_controller.rb +3 -4
- data/app/helpers/spree/api/api_helpers.rb +7 -6
- data/app/models/spree/api_configuration.rb +1 -1
- data/app/views/spree/api/config/show.v1.rabl +2 -1
- data/app/views/spree/api/products/show.v1.rabl +1 -1
- data/db/migrate/20100107141738_add_api_key_to_spree_users.rb +1 -1
- data/db/migrate/20120411123334_resize_api_key_field.rb +1 -1
- data/lib/spree/api/engine.rb +8 -8
- data/lib/spree/api/responders/rabl_template.rb +1 -1
- data/lib/spree/api/testing_support/caching.rb +4 -4
- data/script/rails +0 -1
- data/solidus_api.gemspec +3 -3
- data/spec/controllers/spree/api/addresses_controller_spec.rb +12 -13
- data/spec/controllers/spree/api/base_controller_spec.rb +10 -11
- data/spec/controllers/spree/api/checkouts_controller_spec.rb +38 -59
- data/spec/controllers/spree/api/config_controller_spec.rb +4 -2
- data/spec/controllers/spree/api/countries_controller_spec.rb +5 -5
- data/spec/controllers/spree/api/credit_cards_controller_spec.rb +5 -5
- data/spec/controllers/spree/api/images_controller_spec.rb +20 -18
- data/spec/controllers/spree/api/inventory_units_controller_spec.rb +11 -11
- data/spec/controllers/spree/api/line_items_controller_spec.rb +20 -19
- data/spec/controllers/spree/api/option_types_controller_spec.rb +23 -24
- data/spec/controllers/spree/api/option_values_controller_spec.rb +28 -29
- data/spec/controllers/spree/api/orders_controller_spec.rb +157 -179
- data/spec/controllers/spree/api/payments_controller_spec.rb +35 -45
- data/spec/controllers/spree/api/product_properties_controller_spec.rb +14 -15
- data/spec/controllers/spree/api/products_controller_spec.rb +64 -70
- data/spec/controllers/spree/api/promotion_application_spec.rb +4 -4
- data/spec/controllers/spree/api/promotions_controller_spec.rb +1 -1
- data/spec/controllers/spree/api/properties_controller_spec.rb +15 -15
- data/spec/controllers/spree/api/resource_controller_spec.rb +31 -2
- data/spec/controllers/spree/api/return_authorizations_controller_spec.rb +31 -31
- data/spec/controllers/spree/api/shipments_controller_spec.rb +6 -8
- data/spec/controllers/spree/api/states_controller_spec.rb +11 -12
- data/spec/controllers/spree/api/stock_items_controller_spec.rb +10 -7
- data/spec/controllers/spree/api/stock_locations_controller_spec.rb +3 -4
- data/spec/controllers/spree/api/stock_movements_controller_spec.rb +2 -3
- data/spec/controllers/spree/api/store_credit_events_controller_spec.rb +0 -2
- data/spec/controllers/spree/api/stores_controller_spec.rb +1 -2
- data/spec/controllers/spree/api/taxonomies_controller_spec.rb +17 -18
- data/spec/controllers/spree/api/taxons_controller_spec.rb +22 -24
- data/spec/controllers/spree/api/unauthenticated_products_controller_spec.rb +1 -2
- data/spec/controllers/spree/api/users_controller_spec.rb +13 -15
- data/spec/controllers/spree/api/variants_controller_spec.rb +42 -37
- data/spec/controllers/spree/api/zones_controller_spec.rb +18 -18
- data/spec/features/checkout_spec.rb +2 -2
- data/spec/models/spree/legacy_user_spec.rb +5 -5
- data/spec/requests/api/address_books_spec.rb +10 -11
- data/spec/requests/rabl_cache_spec.rb +7 -7
- data/spec/requests/ransackable_attributes_spec.rb +5 -7
- data/spec/shared_examples/protect_product_actions.rb +3 -4
- data/spec/spec_helper.rb +8 -4
- data/spec/support/controller_hacks.rb +5 -5
- data/spec/support/have_attributes_matcher.rb +0 -4
- data/spec/test_views/spree/api/widgets/show.v1.rabl +1 -1
- metadata +9 -10
- data/app/models/spree/option_value_decorator.rb +0 -9
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
module Spree
|
|
4
|
-
describe Api::ReturnAuthorizationsController, :
|
|
4
|
+
describe Api::ReturnAuthorizationsController, type: :controller do
|
|
5
5
|
render_views
|
|
6
6
|
|
|
7
7
|
let!(:order) { create(:shipped_order) }
|
|
8
8
|
|
|
9
9
|
let(:product) { create(:product) }
|
|
10
10
|
let(:attributes) { [:id, :memo, :state] }
|
|
11
|
-
let(:resource_scoping) { { :
|
|
11
|
+
let(:resource_scoping) { { order_id: order.to_param } }
|
|
12
12
|
|
|
13
13
|
before do
|
|
14
14
|
stub_authentication!
|
|
@@ -18,10 +18,10 @@ module Spree
|
|
|
18
18
|
it "can create a new return authorization" do
|
|
19
19
|
stock_location = FactoryGirl.create(:stock_location)
|
|
20
20
|
reason = FactoryGirl.create(:return_reason)
|
|
21
|
-
rma_params = { :
|
|
22
|
-
:
|
|
23
|
-
:
|
|
24
|
-
api_post :create, :
|
|
21
|
+
rma_params = { stock_location_id: stock_location.id,
|
|
22
|
+
return_reason_id: reason.id,
|
|
23
|
+
memo: "Defective" }
|
|
24
|
+
api_post :create, order_id: order.number, return_authorization: rma_params
|
|
25
25
|
expect(response.status).to eq(201)
|
|
26
26
|
expect(json_response).to have_attributes(attributes)
|
|
27
27
|
expect(json_response["state"]).not_to be_blank
|
|
@@ -30,7 +30,7 @@ module Spree
|
|
|
30
30
|
|
|
31
31
|
context "as the order owner" do
|
|
32
32
|
before do
|
|
33
|
-
allow_any_instance_of(Order).to receive_messages :
|
|
33
|
+
allow_any_instance_of(Order).to receive_messages user: current_api_user
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
it "cannot see any return authorizations" do
|
|
@@ -39,7 +39,7 @@ module Spree
|
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
it "cannot see a single return authorization" do
|
|
42
|
-
api_get :show, :
|
|
42
|
+
api_get :show, id: 1
|
|
43
43
|
assert_unauthorized!
|
|
44
44
|
end
|
|
45
45
|
|
|
@@ -63,7 +63,7 @@ module Spree
|
|
|
63
63
|
|
|
64
64
|
context "as another non-admin user that's not the order's owner" do
|
|
65
65
|
before do
|
|
66
|
-
allow_any_instance_of(Order).to receive_messages :
|
|
66
|
+
allow_any_instance_of(Order).to receive_messages user: create(:user)
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
it "cannot create a new return authorization" do
|
|
@@ -76,18 +76,18 @@ module Spree
|
|
|
76
76
|
sign_in_as_admin!
|
|
77
77
|
|
|
78
78
|
it "can show return authorization" do
|
|
79
|
-
FactoryGirl.create(:return_authorization, :
|
|
79
|
+
FactoryGirl.create(:return_authorization, order: order)
|
|
80
80
|
return_authorization = order.return_authorizations.first
|
|
81
|
-
api_get :show, :
|
|
81
|
+
api_get :show, order_id: order.number, id: return_authorization.id
|
|
82
82
|
expect(response.status).to eq(200)
|
|
83
83
|
expect(json_response).to have_attributes(attributes)
|
|
84
84
|
expect(json_response["state"]).not_to be_blank
|
|
85
85
|
end
|
|
86
86
|
|
|
87
87
|
it "can get a list of return authorizations" do
|
|
88
|
-
FactoryGirl.create(:return_authorization, :
|
|
89
|
-
FactoryGirl.create(:return_authorization, :
|
|
90
|
-
api_get :index, { :
|
|
88
|
+
FactoryGirl.create(:return_authorization, order: order)
|
|
89
|
+
FactoryGirl.create(:return_authorization, order: order)
|
|
90
|
+
api_get :index, { order_id: order.number }
|
|
91
91
|
expect(response.status).to eq(200)
|
|
92
92
|
return_authorizations = json_response["return_authorizations"]
|
|
93
93
|
expect(return_authorizations.first).to have_attributes(attributes)
|
|
@@ -95,19 +95,19 @@ module Spree
|
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
it 'can control the page size through a parameter' do
|
|
98
|
-
FactoryGirl.create(:return_authorization, :
|
|
99
|
-
FactoryGirl.create(:return_authorization, :
|
|
100
|
-
api_get :index, :
|
|
98
|
+
FactoryGirl.create(:return_authorization, order: order)
|
|
99
|
+
FactoryGirl.create(:return_authorization, order: order)
|
|
100
|
+
api_get :index, order_id: order.number, per_page: 1
|
|
101
101
|
expect(json_response['count']).to eq(1)
|
|
102
102
|
expect(json_response['current_page']).to eq(1)
|
|
103
103
|
expect(json_response['pages']).to eq(2)
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
it 'can query the results through a paramter' do
|
|
107
|
-
FactoryGirl.create(:return_authorization, :
|
|
108
|
-
expected_result = create(:return_authorization, :
|
|
107
|
+
FactoryGirl.create(:return_authorization, order: order)
|
|
108
|
+
expected_result = create(:return_authorization, memo: 'damaged')
|
|
109
109
|
order.return_authorizations << expected_result
|
|
110
|
-
api_get :index, :
|
|
110
|
+
api_get :index, q: { memo_cont: 'damaged' }
|
|
111
111
|
expect(json_response['count']).to eq(1)
|
|
112
112
|
expect(json_response['return_authorizations'].first['memo']).to eq expected_result.memo
|
|
113
113
|
end
|
|
@@ -120,26 +120,26 @@ module Spree
|
|
|
120
120
|
end
|
|
121
121
|
|
|
122
122
|
it "can update a return authorization on the order" do
|
|
123
|
-
FactoryGirl.create(:return_authorization, :
|
|
123
|
+
FactoryGirl.create(:return_authorization, order: order)
|
|
124
124
|
return_authorization = order.return_authorizations.first
|
|
125
|
-
api_put :update, :
|
|
125
|
+
api_put :update, id: return_authorization.id, return_authorization: { memo: "ABC" }
|
|
126
126
|
expect(response.status).to eq(200)
|
|
127
127
|
expect(json_response).to have_attributes(attributes)
|
|
128
128
|
end
|
|
129
129
|
|
|
130
130
|
it "can cancel a return authorization on the order" do
|
|
131
|
-
FactoryGirl.create(:new_return_authorization, :
|
|
131
|
+
FactoryGirl.create(:new_return_authorization, order: order)
|
|
132
132
|
return_authorization = order.return_authorizations.first
|
|
133
133
|
expect(return_authorization.state).to eq("authorized")
|
|
134
|
-
api_delete :cancel, :
|
|
134
|
+
api_delete :cancel, id: return_authorization.id
|
|
135
135
|
expect(response.status).to eq(200)
|
|
136
136
|
expect(return_authorization.reload.state).to eq("canceled")
|
|
137
137
|
end
|
|
138
138
|
|
|
139
139
|
it "can delete a return authorization on the order" do
|
|
140
|
-
FactoryGirl.create(:return_authorization, :
|
|
140
|
+
FactoryGirl.create(:return_authorization, order: order)
|
|
141
141
|
return_authorization = order.return_authorizations.first
|
|
142
|
-
api_delete :destroy, :
|
|
142
|
+
api_delete :destroy, id: return_authorization.id
|
|
143
143
|
expect(response.status).to eq(204)
|
|
144
144
|
expect { return_authorization.reload }.to raise_error(ActiveRecord::RecordNotFound)
|
|
145
145
|
end
|
|
@@ -149,22 +149,22 @@ module Spree
|
|
|
149
149
|
|
|
150
150
|
context "as just another user" do
|
|
151
151
|
it "cannot add a return authorization to the order" do
|
|
152
|
-
api_post :create, :
|
|
152
|
+
api_post :create, return_autorization: { order_id: order.number, memo: "Defective" }
|
|
153
153
|
assert_unauthorized!
|
|
154
154
|
end
|
|
155
155
|
|
|
156
156
|
it "cannot update a return authorization on the order" do
|
|
157
|
-
FactoryGirl.create(:return_authorization, :
|
|
157
|
+
FactoryGirl.create(:return_authorization, order: order)
|
|
158
158
|
return_authorization = order.return_authorizations.first
|
|
159
|
-
api_put :update, :
|
|
159
|
+
api_put :update, id: return_authorization.id, return_authorization: { memo: "ABC" }
|
|
160
160
|
assert_unauthorized!
|
|
161
161
|
expect(return_authorization.reload.memo).not_to eq("ABC")
|
|
162
162
|
end
|
|
163
163
|
|
|
164
164
|
it "cannot delete a return authorization on the order" do
|
|
165
|
-
FactoryGirl.create(:return_authorization, :
|
|
165
|
+
FactoryGirl.create(:return_authorization, order: order)
|
|
166
166
|
return_authorization = order.return_authorizations.first
|
|
167
|
-
api_delete :destroy, :
|
|
167
|
+
api_delete :destroy, id: return_authorization.id
|
|
168
168
|
assert_unauthorized!
|
|
169
169
|
expect { return_authorization.reload }.not_to raise_error
|
|
170
170
|
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe Spree::Api::ShipmentsController, :
|
|
3
|
+
describe Spree::Api::ShipmentsController, type: :controller do
|
|
4
4
|
render_views
|
|
5
5
|
let!(:shipment) { create(:shipment, address: create(:address), inventory_units: [build(:inventory_unit, shipment: nil)]) }
|
|
6
|
-
let!(:attributes) { [:id, :tracking, :number, :cost, :shipped_at, :stock_location_name, :order_id, :shipping_rates, :shipping_methods] }
|
|
6
|
+
let!(:attributes) { [:id, :tracking, :tracking_url, :number, :cost, :shipped_at, :stock_location_name, :order_id, :shipping_rates, :shipping_methods] }
|
|
7
7
|
|
|
8
8
|
before do
|
|
9
9
|
stub_authentication!
|
|
@@ -68,7 +68,7 @@ describe Spree::Api::ShipmentsController, :type => :controller do
|
|
|
68
68
|
it 'should return proper error' do
|
|
69
69
|
subject
|
|
70
70
|
expect(response.status).to eq(422)
|
|
71
|
-
expect(json_response['exception']).to eq("param is missing or the value is empty: #{field
|
|
71
|
+
expect(json_response['exception']).to eq("param is missing or the value is empty: #{field}")
|
|
72
72
|
end
|
|
73
73
|
end
|
|
74
74
|
end
|
|
@@ -92,7 +92,7 @@ describe Spree::Api::ShipmentsController, :type => :controller do
|
|
|
92
92
|
end
|
|
93
93
|
|
|
94
94
|
it "can make a shipment ready" do
|
|
95
|
-
allow_any_instance_of(Spree::Order).to receive_messages(
|
|
95
|
+
allow_any_instance_of(Spree::Order).to receive_messages(paid?: true, complete?: true)
|
|
96
96
|
api_put :ready
|
|
97
97
|
expect(json_response).to have_attributes(attributes)
|
|
98
98
|
expect(json_response["state"]).to eq("ready")
|
|
@@ -100,7 +100,7 @@ describe Spree::Api::ShipmentsController, :type => :controller do
|
|
|
100
100
|
end
|
|
101
101
|
|
|
102
102
|
it "cannot make a shipment ready if the order is unpaid" do
|
|
103
|
-
allow_any_instance_of(Spree::Order).to receive_messages(
|
|
103
|
+
allow_any_instance_of(Spree::Order).to receive_messages(paid?: false)
|
|
104
104
|
api_put :ready
|
|
105
105
|
expect(json_response["error"]).to eq("Cannot ready shipment.")
|
|
106
106
|
expect(response.status).to eq(422)
|
|
@@ -149,7 +149,6 @@ describe Spree::Api::ShipmentsController, :type => :controller do
|
|
|
149
149
|
expect(response.status).to eq(422)
|
|
150
150
|
expect(json_response['errors']['base'].join).to match /Cannot remove items/
|
|
151
151
|
end
|
|
152
|
-
|
|
153
152
|
end
|
|
154
153
|
|
|
155
154
|
describe '#mine' do
|
|
@@ -199,7 +198,7 @@ describe Spree::Api::ShipmentsController, :type => :controller do
|
|
|
199
198
|
end
|
|
200
199
|
|
|
201
200
|
context 'with filtering' do
|
|
202
|
-
let(:params) { {q: {order_completed_at_not_null: 1}} }
|
|
201
|
+
let(:params) { { q: { order_completed_at_not_null: 1 } } }
|
|
203
202
|
|
|
204
203
|
let!(:incomplete_order) { create(:order_with_line_items, user: current_api_user) }
|
|
205
204
|
|
|
@@ -219,7 +218,6 @@ describe Spree::Api::ShipmentsController, :type => :controller do
|
|
|
219
218
|
end
|
|
220
219
|
end
|
|
221
220
|
end
|
|
222
|
-
|
|
223
221
|
end
|
|
224
222
|
|
|
225
223
|
describe "#ship" do
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
module Spree
|
|
4
|
-
describe Api::StatesController, :
|
|
4
|
+
describe Api::StatesController, type: :controller do
|
|
5
5
|
render_views
|
|
6
6
|
|
|
7
|
-
let!(:state) { create(:state, :
|
|
7
|
+
let!(:state) { create(:state, name: "Victoria") }
|
|
8
8
|
let(:attributes) { [:id, :name, :abbr, :country_id] }
|
|
9
9
|
|
|
10
10
|
before do
|
|
@@ -18,7 +18,7 @@ module Spree
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
it "gets all the states for a particular country" do
|
|
21
|
-
api_get :index, :
|
|
21
|
+
api_get :index, country_id: state.country.id
|
|
22
22
|
expect(json_response["states"].first).to have_attributes(attributes)
|
|
23
23
|
expect(json_response['states'].first['name']).to eq(state.name)
|
|
24
24
|
end
|
|
@@ -38,26 +38,25 @@ module Spree
|
|
|
38
38
|
it "paginates when page parameter is passed through" do
|
|
39
39
|
expect(@scope).to receive(:page).with(1).and_return(@scope)
|
|
40
40
|
expect(@scope).to receive(:per).with(nil)
|
|
41
|
-
api_get :index, :
|
|
41
|
+
api_get :index, page: 1
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
it "paginates when per_page parameter is passed through" do
|
|
45
45
|
expect(@scope).to receive(:page).with(nil).and_return(@scope)
|
|
46
46
|
expect(@scope).to receive(:per).with(25)
|
|
47
|
-
api_get :index, :
|
|
47
|
+
api_get :index, per_page: 25
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
|
|
51
|
-
|
|
52
51
|
context "with two states" do
|
|
53
|
-
before { create(:state, :
|
|
52
|
+
before { create(:state, name: "New South Wales") }
|
|
54
53
|
|
|
55
54
|
it "gets all states for a country" do
|
|
56
|
-
country = create(:country, :
|
|
57
|
-
state.country = country
|
|
55
|
+
country = create(:country, states_required: true)
|
|
56
|
+
state.country = country
|
|
58
57
|
state.save
|
|
59
58
|
|
|
60
|
-
api_get :index, :
|
|
59
|
+
api_get :index, country_id: country.id
|
|
61
60
|
expect(json_response["states"].first).to have_attributes(attributes)
|
|
62
61
|
expect(json_response["states"].count).to eq(1)
|
|
63
62
|
json_response["states_required"] = true
|
|
@@ -69,13 +68,13 @@ module Spree
|
|
|
69
68
|
end
|
|
70
69
|
|
|
71
70
|
it 'can query the results through a paramter' do
|
|
72
|
-
api_get :index, :
|
|
71
|
+
api_get :index, q: { name_cont: 'Vic' }
|
|
73
72
|
expect(json_response['states'].first['name']).to eq("Victoria")
|
|
74
73
|
end
|
|
75
74
|
end
|
|
76
75
|
|
|
77
76
|
it "can view a state" do
|
|
78
|
-
api_get :show, :
|
|
77
|
+
api_get :show, id: state.id
|
|
79
78
|
expect(json_response).to have_attributes(attributes)
|
|
80
79
|
end
|
|
81
80
|
end
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
module Spree
|
|
4
|
-
describe Api::StockItemsController, :
|
|
4
|
+
describe Api::StockItemsController, type: :controller do
|
|
5
5
|
render_views
|
|
6
6
|
|
|
7
7
|
let!(:stock_location) { create(:stock_location_with_items) }
|
|
8
8
|
let!(:stock_item) { stock_location.stock_items.order(:id).first }
|
|
9
|
-
let!(:attributes) {
|
|
10
|
-
|
|
9
|
+
let!(:attributes) {
|
|
10
|
+
[:id, :count_on_hand, :backorderable,
|
|
11
|
+
:stock_location_id, :variant_id]
|
|
12
|
+
}
|
|
11
13
|
|
|
12
14
|
before do
|
|
13
15
|
stub_authentication!
|
|
@@ -210,9 +212,9 @@ module Spree
|
|
|
210
212
|
expect(stock_item.should_track_inventory?).to eq true
|
|
211
213
|
end
|
|
212
214
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
215
|
+
it "sets the stock item's count_on_hand" do
|
|
216
|
+
subject
|
|
217
|
+
expect(assigns(:stock_item).count_on_hand).to eq 50
|
|
216
218
|
end
|
|
217
219
|
end
|
|
218
220
|
|
|
@@ -246,7 +248,8 @@ module Spree
|
|
|
246
248
|
id: stock_item.to_param,
|
|
247
249
|
stock_item: {
|
|
248
250
|
count_on_hand: count_on_hand,
|
|
249
|
-
|
|
251
|
+
backorderable: true,
|
|
252
|
+
force: true
|
|
250
253
|
}
|
|
251
254
|
}
|
|
252
255
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
module Spree
|
|
4
|
-
describe Api::StockLocationsController, :
|
|
4
|
+
describe Api::StockLocationsController, type: :controller do
|
|
5
5
|
render_views
|
|
6
6
|
|
|
7
7
|
let!(:stock_location) { create(:stock_location) }
|
|
@@ -59,14 +59,14 @@ module Spree
|
|
|
59
59
|
|
|
60
60
|
describe "#update" do
|
|
61
61
|
it "cannot update a stock location" do
|
|
62
|
-
api_put :update, :
|
|
62
|
+
api_put :update, stock_location: { name: "South Pole" }, id: stock_location.to_param
|
|
63
63
|
expect(response.status).to eq(401)
|
|
64
64
|
end
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
describe "#destroy" do
|
|
68
68
|
it "cannot delete a stock location" do
|
|
69
|
-
api_put :destroy, :
|
|
69
|
+
api_put :destroy, id: stock_location.to_param
|
|
70
70
|
expect(response.status).to eq(401)
|
|
71
71
|
end
|
|
72
72
|
end
|
|
@@ -112,7 +112,6 @@ module Spree
|
|
|
112
112
|
expect(json_response['count']).to eq(1)
|
|
113
113
|
expect(json_response['stock_locations'].first['name']).to eq expected_result.name
|
|
114
114
|
end
|
|
115
|
-
|
|
116
115
|
end
|
|
117
116
|
|
|
118
117
|
describe "#show" do
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
module Spree
|
|
4
|
-
describe Api::StockMovementsController, :
|
|
4
|
+
describe Api::StockMovementsController, type: :controller do
|
|
5
5
|
render_views
|
|
6
6
|
|
|
7
7
|
let!(:stock_location) { create(:stock_location_with_items) }
|
|
@@ -55,7 +55,7 @@ module Spree
|
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
it 'can query the results through a paramter' do
|
|
58
|
-
|
|
58
|
+
create(:stock_movement, :received, quantity: 10, stock_item: stock_item)
|
|
59
59
|
api_get :index, stock_location_id: stock_location.to_param, q: { quantity_eq: '10' }
|
|
60
60
|
expect(json_response['count']).to eq(1)
|
|
61
61
|
end
|
|
@@ -81,4 +81,3 @@ module Spree
|
|
|
81
81
|
end
|
|
82
82
|
end
|
|
83
83
|
end
|
|
84
|
-
|
|
@@ -11,7 +11,6 @@ describe Spree::Api::StoreCreditEventsController, type: :controller do
|
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
describe "GET mine" do
|
|
14
|
-
|
|
15
14
|
subject { api_get :mine, { format: :json } }
|
|
16
15
|
|
|
17
16
|
before { allow(controller).to receive_messages(current_api_user: current_api_user) }
|
|
@@ -65,4 +64,3 @@ describe Spree::Api::StoreCreditEventsController, type: :controller do
|
|
|
65
64
|
end
|
|
66
65
|
end
|
|
67
66
|
end
|
|
68
|
-
|
|
@@ -96,7 +96,7 @@ module Spree
|
|
|
96
96
|
api_delete :destroy, id: store.id
|
|
97
97
|
expect(response.status).to eq(422)
|
|
98
98
|
expect(json_response["errors"]["base"]).to eql(
|
|
99
|
-
|
|
99
|
+
["Cannot destroy the default Store."]
|
|
100
100
|
)
|
|
101
101
|
end
|
|
102
102
|
|
|
@@ -108,7 +108,6 @@ module Spree
|
|
|
108
108
|
end
|
|
109
109
|
|
|
110
110
|
context "as an user" do
|
|
111
|
-
|
|
112
111
|
it "I cannot list all the stores" do
|
|
113
112
|
api_get :index
|
|
114
113
|
expect(response.status).to eq(401)
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
module Spree
|
|
4
|
-
describe Api::TaxonomiesController, :
|
|
4
|
+
describe Api::TaxonomiesController, type: :controller do
|
|
5
5
|
render_views
|
|
6
6
|
|
|
7
7
|
let(:taxonomy) { create(:taxonomy) }
|
|
8
|
-
let(:taxon) { create(:taxon, :
|
|
9
|
-
let(:taxon2) { create(:taxon, :
|
|
8
|
+
let(:taxon) { create(:taxon, name: "Ruby", taxonomy: taxonomy) }
|
|
9
|
+
let(:taxon2) { create(:taxon, name: "Rails", taxonomy: taxonomy) }
|
|
10
10
|
let(:attributes) { [:id, :name] }
|
|
11
11
|
|
|
12
12
|
before do
|
|
13
13
|
stub_authentication!
|
|
14
|
-
taxon2.children << create(:taxon, :
|
|
14
|
+
taxon2.children << create(:taxon, name: "3.2.2", taxonomy: taxonomy)
|
|
15
15
|
taxon.children << taxon2
|
|
16
16
|
taxonomy.root.children << taxon
|
|
17
17
|
end
|
|
@@ -26,21 +26,21 @@ module Spree
|
|
|
26
26
|
|
|
27
27
|
it 'can control the page size through a parameter' do
|
|
28
28
|
create(:taxonomy)
|
|
29
|
-
api_get :index, :
|
|
29
|
+
api_get :index, per_page: 1
|
|
30
30
|
expect(json_response['count']).to eq(1)
|
|
31
31
|
expect(json_response['current_page']).to eq(1)
|
|
32
32
|
expect(json_response['pages']).to eq(2)
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
it 'can query the results through a paramter' do
|
|
36
|
-
expected_result = create(:taxonomy, :
|
|
37
|
-
api_get :index, :
|
|
36
|
+
expected_result = create(:taxonomy, name: 'Style')
|
|
37
|
+
api_get :index, q: { name_cont: 'style' }
|
|
38
38
|
expect(json_response['count']).to eq(1)
|
|
39
39
|
expect(json_response['taxonomies'].first['name']).to eq expected_result.name
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
it "gets a single taxonomy" do
|
|
43
|
-
api_get :show, :
|
|
43
|
+
api_get :show, id: taxonomy.id
|
|
44
44
|
|
|
45
45
|
expect(json_response['name']).to eq taxonomy.name
|
|
46
46
|
|
|
@@ -51,7 +51,7 @@ module Spree
|
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
it "gets a single taxonomy with set=nested" do
|
|
54
|
-
api_get :show, :
|
|
54
|
+
api_get :show, id: taxonomy.id, set: 'nested'
|
|
55
55
|
|
|
56
56
|
expect(json_response['name']).to eq taxonomy.name
|
|
57
57
|
|
|
@@ -60,9 +60,9 @@ module Spree
|
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
it "gets the jstree-friendly version of a taxonomy" do
|
|
63
|
-
api_get :jstree, :
|
|
63
|
+
api_get :jstree, id: taxonomy.id
|
|
64
64
|
expect(json_response["data"]).to eq(taxonomy.root.name)
|
|
65
|
-
expect(json_response["attr"]).to eq({ "id" => taxonomy.root.id, "name" => taxonomy.root.name})
|
|
65
|
+
expect(json_response["attr"]).to eq({ "id" => taxonomy.root.id, "name" => taxonomy.root.name })
|
|
66
66
|
expect(json_response["state"]).to eq("closed")
|
|
67
67
|
end
|
|
68
68
|
|
|
@@ -74,17 +74,17 @@ module Spree
|
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
it "cannot create a new taxonomy if not an admin" do
|
|
77
|
-
api_post :create, :
|
|
77
|
+
api_post :create, taxonomy: { name: "Location" }
|
|
78
78
|
assert_unauthorized!
|
|
79
79
|
end
|
|
80
80
|
|
|
81
81
|
it "cannot update a taxonomy" do
|
|
82
|
-
api_put :update, :
|
|
82
|
+
api_put :update, id: taxonomy.id, taxonomy: { name: "I hacked your store!" }
|
|
83
83
|
assert_unauthorized!
|
|
84
84
|
end
|
|
85
85
|
|
|
86
86
|
it "cannot delete a taxonomy" do
|
|
87
|
-
api_delete :destroy, :
|
|
87
|
+
api_delete :destroy, id: taxonomy.id
|
|
88
88
|
assert_unauthorized!
|
|
89
89
|
end
|
|
90
90
|
end
|
|
@@ -93,20 +93,19 @@ module Spree
|
|
|
93
93
|
sign_in_as_admin!
|
|
94
94
|
|
|
95
95
|
it "can create" do
|
|
96
|
-
api_post :create, :
|
|
96
|
+
api_post :create, taxonomy: { name: "Colors" }
|
|
97
97
|
expect(json_response).to have_attributes(attributes)
|
|
98
98
|
expect(response.status).to eq(201)
|
|
99
99
|
end
|
|
100
100
|
|
|
101
101
|
it "cannot create a new taxonomy with invalid attributes" do
|
|
102
|
-
api_post :create, :
|
|
102
|
+
api_post :create, taxonomy: {}
|
|
103
103
|
expect(response.status).to eq(422)
|
|
104
104
|
expect(json_response["error"]).to eq("Invalid resource. Please fix errors and try again.")
|
|
105
|
-
errors = json_response["errors"]
|
|
106
105
|
end
|
|
107
106
|
|
|
108
107
|
it "can destroy" do
|
|
109
|
-
api_delete :destroy, :
|
|
108
|
+
api_delete :destroy, id: taxonomy.id
|
|
110
109
|
expect(response.status).to eq(204)
|
|
111
110
|
end
|
|
112
111
|
end
|