solidus_api 1.0.7 → 1.1.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.
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) ##
|