solidus_api 1.0.7 → 1.1.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.
- checksums.yaml +4 -4
- data/app/controllers/spree/api/address_books_controller.rb +38 -0
- data/app/controllers/spree/api/addresses_controller.rb +19 -15
- data/app/controllers/spree/api/base_controller.rb +7 -28
- data/app/controllers/spree/api/checkouts_controller.rb +17 -8
- data/app/controllers/spree/api/option_values_controller.rb +1 -1
- data/app/controllers/spree/api/orders_controller.rb +13 -18
- data/app/controllers/spree/api/payments_controller.rb +0 -1
- data/app/controllers/spree/api/resource_controller.rb +75 -0
- data/app/controllers/spree/api/shipments_controller.rb +1 -0
- data/app/controllers/spree/api/stock_items_controller.rb +1 -3
- data/app/controllers/spree/api/stock_transfers_controller.rb +1 -0
- data/app/controllers/spree/api/users_controller.rb +13 -49
- data/app/controllers/spree/api/zones_controller.rb +7 -3
- data/app/helpers/spree/api/api_helpers.rb +9 -4
- data/app/views/spree/api/address_books/show.v1.rabl +4 -0
- data/app/views/spree/api/orders/show.v1.rabl +2 -2
- data/app/views/spree/api/variants/big.v1.rabl +3 -0
- data/config/locales/en.yml +0 -1
- data/config/routes.rb +3 -0
- data/lib/spree/api/testing_support/helpers.rb +1 -1
- data/lib/spree/api/testing_support/setup.rb +1 -4
- data/spec/controllers/spree/api/address_books_controller_spec.rb +60 -0
- data/spec/controllers/spree/api/addresses_controller_spec.rb +22 -9
- data/spec/controllers/spree/api/base_controller_spec.rb +0 -12
- data/spec/controllers/spree/api/checkouts_controller_spec.rb +107 -45
- data/spec/controllers/spree/api/credit_cards_controller_spec.rb +4 -11
- data/spec/controllers/spree/api/orders_controller_spec.rb +75 -105
- data/spec/controllers/spree/api/payments_controller_spec.rb +0 -11
- data/spec/controllers/spree/api/products_controller_spec.rb +2 -2
- data/spec/controllers/spree/api/resource_controller_spec.rb +157 -0
- data/spec/controllers/spree/api/shipments_controller_spec.rb +12 -13
- data/spec/controllers/spree/api/stock_items_controller_spec.rb +2 -2
- data/spec/controllers/spree/api/users_controller_spec.rb +2 -2
- data/spec/controllers/spree/api/variants_controller_spec.rb +32 -3
- data/spec/models/spree/legacy_user_spec.rb +8 -2
- data/spec/spec_helper.rb +8 -3
- data/spec/test_views/spree/api/widgets/index.v1.rabl +7 -0
- data/spec/test_views/spree/api/widgets/new.v1.rabl +2 -0
- data/spec/test_views/spree/api/widgets/show.v1.rabl +2 -0
- metadata +20 -9
- data/CHANGELOG.md +0 -1
- data/app/views/spree/api/shared/stock_location_required.v1.rabl +0 -2
@@ -38,9 +38,9 @@ describe Spree::Api::ShipmentsController, :type => :controller do
|
|
38
38
|
shipment: { order_id: order.number },
|
39
39
|
stock_location_id: stock_location.to_param
|
40
40
|
}
|
41
|
-
end
|
42
|
-
|
43
|
-
subject do
|
41
|
+
end
|
42
|
+
|
43
|
+
subject do
|
44
44
|
api_post :create, params
|
45
45
|
end
|
46
46
|
|
@@ -139,18 +139,17 @@ describe Spree::Api::ShipmentsController, :type => :controller do
|
|
139
139
|
|
140
140
|
describe '#mine' do
|
141
141
|
subject do
|
142
|
-
api_get :mine,
|
142
|
+
api_get :mine, params
|
143
143
|
end
|
144
144
|
|
145
145
|
let(:params) { {} }
|
146
146
|
|
147
|
-
before { subject }
|
148
|
-
|
149
147
|
context "the current api user is authenticated and has orders" do
|
150
148
|
let(:current_api_user) { shipped_order.user }
|
151
149
|
let(:shipped_order) { create(:shipped_order) }
|
152
150
|
|
153
151
|
it 'succeeds' do
|
152
|
+
subject
|
154
153
|
expect(response.status).to eq 200
|
155
154
|
end
|
156
155
|
|
@@ -160,6 +159,7 @@ describe Spree::Api::ShipmentsController, :type => :controller do
|
|
160
159
|
let(:rendered_shipment_ids) { json_response['shipments'].map { |s| s['id'] } }
|
161
160
|
|
162
161
|
it 'contains the shipments' do
|
162
|
+
subject
|
163
163
|
expect(rendered_shipment_ids).to match_array current_api_user.orders.flat_map(&:shipments).map(&:id)
|
164
164
|
end
|
165
165
|
end
|
@@ -167,9 +167,10 @@ describe Spree::Api::ShipmentsController, :type => :controller do
|
|
167
167
|
context 'with filtering' do
|
168
168
|
let(:params) { {q: {order_completed_at_not_null: 1}} }
|
169
169
|
|
170
|
-
let!(:incomplete_order) { create(:
|
170
|
+
let!(:incomplete_order) { create(:order_with_line_items, user: current_api_user) }
|
171
171
|
|
172
172
|
it 'filters' do
|
173
|
+
subject
|
173
174
|
expect(assigns(:shipments).map(&:id)).to match_array current_api_user.orders.complete.flat_map(&:shipments).map(&:id)
|
174
175
|
end
|
175
176
|
end
|
@@ -179,6 +180,7 @@ describe Spree::Api::ShipmentsController, :type => :controller do
|
|
179
180
|
let(:current_api_user) { nil }
|
180
181
|
|
181
182
|
it "returns a 401" do
|
183
|
+
subject
|
182
184
|
expect(response.status).to eq(401)
|
183
185
|
end
|
184
186
|
end
|
@@ -205,8 +207,7 @@ describe Spree::Api::ShipmentsController, :type => :controller do
|
|
205
207
|
|
206
208
|
context "send_mailer not present" do
|
207
209
|
it "sends the shipped shipments mailer" do
|
208
|
-
|
209
|
-
expect(ActionMailer::Base.deliveries.size).to eq 1
|
210
|
+
expect { subject }.to change { ActionMailer::Base.deliveries.size }.by(1)
|
210
211
|
expect(ActionMailer::Base.deliveries.last.subject).to match /Shipment Notification/
|
211
212
|
end
|
212
213
|
end
|
@@ -214,16 +215,14 @@ describe Spree::Api::ShipmentsController, :type => :controller do
|
|
214
215
|
context "send_mailer set to false" do
|
215
216
|
let(:send_mailer) { 'false' }
|
216
217
|
it "does not send the shipped shipments mailer" do
|
217
|
-
|
218
|
-
expect(ActionMailer::Base.deliveries.size).to eq 0
|
218
|
+
expect { subject }.to_not change { ActionMailer::Base.deliveries.size }
|
219
219
|
end
|
220
220
|
end
|
221
221
|
|
222
222
|
context "send_mailer set to true" do
|
223
223
|
let(:send_mailer) { 'true' }
|
224
224
|
it "sends the shipped shipments mailer" do
|
225
|
-
|
226
|
-
expect(ActionMailer::Base.deliveries.size).to eq 1
|
225
|
+
expect { subject }.to change { ActionMailer::Base.deliveries.size }.by(1)
|
227
226
|
expect(ActionMailer::Base.deliveries.last.subject).to match /Shipment Notification/
|
228
227
|
end
|
229
228
|
end
|
@@ -55,7 +55,7 @@ module Spree
|
|
55
55
|
}
|
56
56
|
|
57
57
|
api_post :create, params
|
58
|
-
expect(response.status).to eq(
|
58
|
+
expect(response.status).to eq(401)
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
@@ -85,7 +85,7 @@ module Spree
|
|
85
85
|
|
86
86
|
it 'requires a stock_location_id to be passed as a parameter' do
|
87
87
|
api_get :index
|
88
|
-
expect(json_response['
|
88
|
+
expect(json_response['exception']).to eq('param is missing or the value is empty: stock_location_id')
|
89
89
|
expect(response.status).to eq(422)
|
90
90
|
end
|
91
91
|
|
@@ -78,9 +78,9 @@ module Spree
|
|
78
78
|
assert_not_found!
|
79
79
|
end
|
80
80
|
|
81
|
-
it "
|
81
|
+
it "cannot delete itself" do
|
82
82
|
api_delete :destroy, id: user.id, token: user.spree_api_key
|
83
|
-
expect(response.status).to eq(
|
83
|
+
expect(response.status).to eq(401)
|
84
84
|
end
|
85
85
|
|
86
86
|
it "cannot delete other user" do
|
@@ -12,7 +12,7 @@ module Spree
|
|
12
12
|
end
|
13
13
|
|
14
14
|
let!(:base_attributes) { Api::ApiHelpers.variant_attributes }
|
15
|
-
let!(:show_attributes) { base_attributes.dup.push(:in_stock, :display_price) }
|
15
|
+
let!(:show_attributes) { base_attributes.dup.push(:in_stock, :display_price, :variant_properties) }
|
16
16
|
let!(:new_attributes) { base_attributes }
|
17
17
|
|
18
18
|
before do
|
@@ -143,8 +143,10 @@ module Spree
|
|
143
143
|
|
144
144
|
describe "#show" do
|
145
145
|
|
146
|
+
subject { api_get :show, id: variant.to_param }
|
147
|
+
|
146
148
|
it "can see a single variant" do
|
147
|
-
|
149
|
+
subject
|
148
150
|
expect(json_response).to have_attributes(show_attributes)
|
149
151
|
expect(json_response["stock_items"]).to be_present
|
150
152
|
option_values = json_response["option_values"]
|
@@ -157,7 +159,7 @@ module Spree
|
|
157
159
|
it "can see a single variant with images" do
|
158
160
|
variant.images.create!(:attachment => image("thinking-cat.jpg"))
|
159
161
|
|
160
|
-
|
162
|
+
subject
|
161
163
|
|
162
164
|
expect(json_response).to have_attributes(show_attributes + [:images])
|
163
165
|
option_values = json_response["option_values"]
|
@@ -166,6 +168,33 @@ module Spree
|
|
166
168
|
:option_type_name,
|
167
169
|
:option_type_id])
|
168
170
|
end
|
171
|
+
|
172
|
+
context "variant doesn't have variant properties" do
|
173
|
+
before { subject }
|
174
|
+
|
175
|
+
it "contains the expected attributes" do
|
176
|
+
expect(json_response).to have_attributes(show_attributes)
|
177
|
+
end
|
178
|
+
|
179
|
+
it "variant properties is an empty list" do
|
180
|
+
expect(json_response["variant_properties"]).to eq []
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
context "variant has variant properties" do
|
185
|
+
let!(:rule) { create(:variant_property_rule, product: variant.product, option_value: variant.option_values.first) }
|
186
|
+
|
187
|
+
before { subject }
|
188
|
+
|
189
|
+
it "contains the expected attributes" do
|
190
|
+
expect(json_response).to have_attributes(show_attributes)
|
191
|
+
end
|
192
|
+
|
193
|
+
it "variant properties is an array of variant property values" do
|
194
|
+
expected_attrs = [:id, :property_id, :value, :property_name]
|
195
|
+
expect(json_response["variant_properties"].first).to have_attributes(expected_attrs)
|
196
|
+
end
|
197
|
+
end
|
169
198
|
end
|
170
199
|
|
171
200
|
it "can learn how to create a new variant" do
|
@@ -15,9 +15,15 @@ module Spree
|
|
15
15
|
end
|
16
16
|
|
17
17
|
it "can clear an API key" do
|
18
|
+
user.spree_api_key = 'abc123'
|
18
19
|
expect(user).to receive(:save!)
|
19
|
-
user.clear_spree_api_key!
|
20
|
-
|
20
|
+
expect { user.clear_spree_api_key! }.to change(user, :spree_api_key).to be_blank
|
21
|
+
end
|
22
|
+
|
23
|
+
it "can clear an api key without persisting" do
|
24
|
+
user.spree_api_key = 'abc123'
|
25
|
+
expect(user).not_to receive(:save!)
|
26
|
+
expect { user.clear_spree_api_key }.to change(user, :spree_api_key).to be_blank
|
21
27
|
end
|
22
28
|
|
23
29
|
context "admin role auto-api-key grant" do # so the admin user can do admin api actions
|
data/spec/spec_helper.rb
CHANGED
@@ -30,8 +30,6 @@ Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
|
|
30
30
|
|
31
31
|
require 'spree/testing_support/factories'
|
32
32
|
require 'spree/testing_support/preferences'
|
33
|
-
require 'spree/testing_support/mail'
|
34
|
-
require 'spree/testing_support/authorization_helpers'
|
35
33
|
|
36
34
|
require 'spree/api/testing_support/caching'
|
37
35
|
require 'spree/api/testing_support/helpers'
|
@@ -41,12 +39,19 @@ RSpec.configure do |config|
|
|
41
39
|
config.backtrace_exclusion_patterns = [/gems\/activesupport/, /gems\/actionpack/, /gems\/rspec/]
|
42
40
|
config.color = true
|
43
41
|
config.infer_spec_type_from_file_location!
|
42
|
+
config.expect_with :rspec do |c|
|
43
|
+
c.syntax = :expect
|
44
|
+
end
|
45
|
+
config.mock_with :rspec do |c|
|
46
|
+
c.syntax = :expect
|
47
|
+
end
|
44
48
|
|
45
49
|
config.include FactoryGirl::Syntax::Methods
|
46
50
|
config.include Spree::Api::TestingSupport::Helpers, :type => :controller
|
47
51
|
config.extend Spree::Api::TestingSupport::Setup, :type => :controller
|
48
52
|
config.include Spree::TestingSupport::Preferences
|
49
|
-
|
53
|
+
|
54
|
+
config.extend WithModel
|
50
55
|
|
51
56
|
config.fail_fast = ENV['FAIL_FAST'] || false
|
52
57
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.1.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Solidus Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: solidus_core
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.0.
|
19
|
+
version: 1.1.0.beta1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.0.
|
26
|
+
version: 1.1.0.beta1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rabl
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -65,10 +65,10 @@ extensions: []
|
|
65
65
|
extra_rdoc_files: []
|
66
66
|
files:
|
67
67
|
- ".gitignore"
|
68
|
-
- CHANGELOG.md
|
69
68
|
- Gemfile
|
70
69
|
- LICENSE
|
71
70
|
- Rakefile
|
71
|
+
- app/controllers/spree/api/address_books_controller.rb
|
72
72
|
- app/controllers/spree/api/addresses_controller.rb
|
73
73
|
- app/controllers/spree/api/base_controller.rb
|
74
74
|
- app/controllers/spree/api/checkouts_controller.rb
|
@@ -87,6 +87,7 @@ files:
|
|
87
87
|
- app/controllers/spree/api/products_controller.rb
|
88
88
|
- app/controllers/spree/api/promotions_controller.rb
|
89
89
|
- app/controllers/spree/api/properties_controller.rb
|
90
|
+
- app/controllers/spree/api/resource_controller.rb
|
90
91
|
- app/controllers/spree/api/return_authorizations_controller.rb
|
91
92
|
- app/controllers/spree/api/shipments_controller.rb
|
92
93
|
- app/controllers/spree/api/states_controller.rb
|
@@ -105,6 +106,7 @@ files:
|
|
105
106
|
- app/helpers/spree/api/api_helpers.rb
|
106
107
|
- app/models/spree/api_configuration.rb
|
107
108
|
- app/models/spree/option_value_decorator.rb
|
109
|
+
- app/views/spree/api/address_books/show.v1.rabl
|
108
110
|
- app/views/spree/api/addresses/show.v1.rabl
|
109
111
|
- app/views/spree/api/adjustments/show.v1.rabl
|
110
112
|
- app/views/spree/api/config/money.v1.rabl
|
@@ -157,7 +159,6 @@ files:
|
|
157
159
|
- app/views/spree/api/return_authorizations/index.v1.rabl
|
158
160
|
- app/views/spree/api/return_authorizations/new.v1.rabl
|
159
161
|
- app/views/spree/api/return_authorizations/show.v1.rabl
|
160
|
-
- app/views/spree/api/shared/stock_location_required.v1.rabl
|
161
162
|
- app/views/spree/api/shipments/big.v1.rabl
|
162
163
|
- app/views/spree/api/shipments/cannot_ready_shipment.v1.rabl
|
163
164
|
- app/views/spree/api/shipments/mine.v1.rabl
|
@@ -214,6 +215,7 @@ files:
|
|
214
215
|
- lib/spree_api.rb
|
215
216
|
- script/rails
|
216
217
|
- solidus_api.gemspec
|
218
|
+
- spec/controllers/spree/api/address_books_controller_spec.rb
|
217
219
|
- spec/controllers/spree/api/addresses_controller_spec.rb
|
218
220
|
- spec/controllers/spree/api/base_controller_spec.rb
|
219
221
|
- spec/controllers/spree/api/checkouts_controller_spec.rb
|
@@ -233,6 +235,7 @@ files:
|
|
233
235
|
- spec/controllers/spree/api/promotion_application_spec.rb
|
234
236
|
- spec/controllers/spree/api/promotions_controller_spec.rb
|
235
237
|
- spec/controllers/spree/api/properties_controller_spec.rb
|
238
|
+
- spec/controllers/spree/api/resource_controller_spec.rb
|
236
239
|
- spec/controllers/spree/api/return_authorizations_controller_spec.rb
|
237
240
|
- spec/controllers/spree/api/shipments_controller_spec.rb
|
238
241
|
- spec/controllers/spree/api/states_controller_spec.rb
|
@@ -259,6 +262,9 @@ files:
|
|
259
262
|
- spec/support/controller_hacks.rb
|
260
263
|
- spec/support/database_cleaner.rb
|
261
264
|
- spec/support/have_attributes_matcher.rb
|
265
|
+
- spec/test_views/spree/api/widgets/index.v1.rabl
|
266
|
+
- spec/test_views/spree/api/widgets/new.v1.rabl
|
267
|
+
- spec/test_views/spree/api/widgets/show.v1.rabl
|
262
268
|
homepage: http://solidus.io/
|
263
269
|
licenses: []
|
264
270
|
metadata: {}
|
@@ -273,16 +279,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
273
279
|
version: '0'
|
274
280
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
275
281
|
requirements:
|
276
|
-
- - "
|
282
|
+
- - ">"
|
277
283
|
- !ruby/object:Gem::Version
|
278
|
-
version:
|
284
|
+
version: 1.3.1
|
279
285
|
requirements: []
|
280
286
|
rubyforge_project:
|
281
|
-
rubygems_version: 2.
|
287
|
+
rubygems_version: 2.4.5
|
282
288
|
signing_key:
|
283
289
|
specification_version: 4
|
284
290
|
summary: REST API for the Solidus e-commerce framework.
|
285
291
|
test_files:
|
292
|
+
- spec/controllers/spree/api/address_books_controller_spec.rb
|
286
293
|
- spec/controllers/spree/api/addresses_controller_spec.rb
|
287
294
|
- spec/controllers/spree/api/base_controller_spec.rb
|
288
295
|
- spec/controllers/spree/api/checkouts_controller_spec.rb
|
@@ -302,6 +309,7 @@ test_files:
|
|
302
309
|
- spec/controllers/spree/api/promotion_application_spec.rb
|
303
310
|
- spec/controllers/spree/api/promotions_controller_spec.rb
|
304
311
|
- spec/controllers/spree/api/properties_controller_spec.rb
|
312
|
+
- spec/controllers/spree/api/resource_controller_spec.rb
|
305
313
|
- spec/controllers/spree/api/return_authorizations_controller_spec.rb
|
306
314
|
- spec/controllers/spree/api/shipments_controller_spec.rb
|
307
315
|
- spec/controllers/spree/api/states_controller_spec.rb
|
@@ -328,3 +336,6 @@ test_files:
|
|
328
336
|
- spec/support/controller_hacks.rb
|
329
337
|
- spec/support/database_cleaner.rb
|
330
338
|
- spec/support/have_attributes_matcher.rb
|
339
|
+
- spec/test_views/spree/api/widgets/index.v1.rabl
|
340
|
+
- spec/test_views/spree/api/widgets/new.v1.rabl
|
341
|
+
- spec/test_views/spree/api/widgets/show.v1.rabl
|
data/CHANGELOG.md
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
## Spree 2.4.0 (unreleased) ##
|