solidus_core 2.0.0.rc1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of solidus_core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/models/spree/credit_card.rb +4 -6
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/deprecation.rb +1 -1
- data/spec/models/spree/adjustment_spec.rb +2 -1
- data/spec/models/spree/credit_card_spec.rb +12 -12
- data/spec/models/spree/order_shipping_spec.rb +2 -2
- data/spec/models/spree/product_spec.rb +20 -11
- data/spec/models/spree/stock_item_spec.rb +32 -19
- data/spec/models/spree/store_credit_spec.rb +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a431556798d4e71cf6ddd2705c1e9771a945218
|
4
|
+
data.tar.gz: a573024f06b38e92edb6e2ae89d3893a2259d690
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81ca409e7263d31ea26aa9aac0c5952bd71d261da44dc0af933bd3257865323f00e528548e1ec9a4957c5fb47aadfd80f498b80a9ca37fdd32810c8cd3d6c9fb
|
7
|
+
data.tar.gz: 9ebb33484c741e1cd4631d05d0ed5569ab0c340e9672cb8b66d028379ff7a75eb0f4916b67c9ae3f68e6aa52cd1a318b6c2e80fa80c0531d426b18b6c0a2385f
|
@@ -64,11 +64,10 @@ module Spree
|
|
64
64
|
#
|
65
65
|
# @param num [String] the desired credit card number
|
66
66
|
def number=(num)
|
67
|
-
@number =
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
end
|
67
|
+
@number =
|
68
|
+
if num.is_a?(String)
|
69
|
+
num.gsub(/[^0-9]/, '')
|
70
|
+
end
|
72
71
|
end
|
73
72
|
|
74
73
|
# Sets the credit card type, converting it to the preferred internal
|
@@ -89,7 +88,6 @@ module Spree
|
|
89
88
|
|
90
89
|
# Sets the last digits field based on the assigned credit card number.
|
91
90
|
def set_last_digits
|
92
|
-
number.to_s.gsub!(/\s/, '')
|
93
91
|
verification_value.to_s.gsub!(/\s/, '')
|
94
92
|
self.last_digits ||= number.to_s.length <= 4 ? number : number.to_s.slice(-4..-1)
|
95
93
|
end
|
data/lib/spree/core/version.rb
CHANGED
data/lib/spree/deprecation.rb
CHANGED
@@ -14,7 +14,8 @@ describe Spree::Adjustment, type: :model do
|
|
14
14
|
let(:adjustment) { Spree::Adjustment.create(label: "Adjustment", amount: 5, order: order, adjustable: line_item) }
|
15
15
|
|
16
16
|
it 'touches the adjustable' do
|
17
|
-
|
17
|
+
line_item.update_columns(updated_at: 1.day.ago)
|
18
|
+
expect { adjustment.save! }.to change { line_item.updated_at }
|
18
19
|
end
|
19
20
|
end
|
20
21
|
|
@@ -35,7 +35,7 @@ describe Spree::CreditCard, type: :model do
|
|
35
35
|
allow(@payment).to receive_messages payment_method: @payment_gateway
|
36
36
|
end
|
37
37
|
|
38
|
-
|
38
|
+
describe "#can_capture?" do
|
39
39
|
it "should be true if payment is pending" do
|
40
40
|
payment = mock_model(Spree::Payment, pending?: true, created_at: Time.current)
|
41
41
|
expect(credit_card.can_capture?(payment)).to be true
|
@@ -47,14 +47,14 @@ describe Spree::CreditCard, type: :model do
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
|
50
|
+
describe "#can_void?" do
|
51
51
|
it "should be true if payment is not void" do
|
52
52
|
payment = mock_model(Spree::Payment, failed?: false, void?: false)
|
53
53
|
expect(credit_card.can_void?(payment)).to be true
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
|
-
|
57
|
+
describe "#can_credit?" do
|
58
58
|
it "should be false if payment is not completed" do
|
59
59
|
payment = mock_model(Spree::Payment, completed?: false)
|
60
60
|
expect(credit_card.can_credit?(payment)).to be false
|
@@ -66,7 +66,7 @@ describe Spree::CreditCard, type: :model do
|
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
|
-
|
69
|
+
describe "#valid?" do
|
70
70
|
it "should validate presence of number" do
|
71
71
|
credit_card.attributes = valid_credit_card_attributes.except(:number)
|
72
72
|
expect(credit_card).not_to be_valid
|
@@ -109,7 +109,7 @@ describe Spree::CreditCard, type: :model do
|
|
109
109
|
end
|
110
110
|
end
|
111
111
|
|
112
|
-
|
112
|
+
describe "#save" do
|
113
113
|
before do
|
114
114
|
credit_card.attributes = valid_credit_card_attributes
|
115
115
|
credit_card.save!
|
@@ -145,7 +145,7 @@ describe Spree::CreditCard, type: :model do
|
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
148
|
-
|
148
|
+
describe "#number=" do
|
149
149
|
it "should strip non-numeric characters from card input" do
|
150
150
|
credit_card.number = "6011000990139424"
|
151
151
|
expect(credit_card.number).to eq("6011000990139424")
|
@@ -161,7 +161,7 @@ describe Spree::CreditCard, type: :model do
|
|
161
161
|
end
|
162
162
|
|
163
163
|
# Regression test for https://github.com/spree/spree/issues/3847 and https://github.com/spree/spree/issues/3896
|
164
|
-
|
164
|
+
describe "#expiry=" do
|
165
165
|
it "can set with a 2-digit month and year" do
|
166
166
|
credit_card.expiry = '04 / 15'
|
167
167
|
expect(credit_card.month).to eq('4')
|
@@ -208,7 +208,7 @@ describe Spree::CreditCard, type: :model do
|
|
208
208
|
end
|
209
209
|
end
|
210
210
|
|
211
|
-
|
211
|
+
describe "#cc_type=" do
|
212
212
|
it "converts between the different types" do
|
213
213
|
credit_card.cc_type = 'mastercard'
|
214
214
|
expect(credit_card.cc_type).to eq('master')
|
@@ -257,13 +257,13 @@ describe Spree::CreditCard, type: :model do
|
|
257
257
|
end
|
258
258
|
end
|
259
259
|
|
260
|
-
|
260
|
+
describe "#associations" do
|
261
261
|
it "should be able to access its payments" do
|
262
262
|
credit_card.payments.to_a
|
263
263
|
end
|
264
264
|
end
|
265
265
|
|
266
|
-
|
266
|
+
describe "#first_name" do
|
267
267
|
before do
|
268
268
|
credit_card.name = "Ludwig van Beethoven"
|
269
269
|
end
|
@@ -273,7 +273,7 @@ describe Spree::CreditCard, type: :model do
|
|
273
273
|
end
|
274
274
|
end
|
275
275
|
|
276
|
-
|
276
|
+
describe "#last_name" do
|
277
277
|
before do
|
278
278
|
credit_card.name = "Ludwig van Beethoven"
|
279
279
|
end
|
@@ -283,7 +283,7 @@ describe Spree::CreditCard, type: :model do
|
|
283
283
|
end
|
284
284
|
end
|
285
285
|
|
286
|
-
|
286
|
+
describe "#to_active_merchant" do
|
287
287
|
before do
|
288
288
|
credit_card.number = "4111111111111111"
|
289
289
|
credit_card.year = Time.current.year
|
@@ -30,7 +30,7 @@ describe Spree::OrderShipping do
|
|
30
30
|
|
31
31
|
it "updates shipment.shipped_at" do
|
32
32
|
Timecop.freeze do |now|
|
33
|
-
expect { subject }.to change { shipment.shipped_at }.from(nil).to(now)
|
33
|
+
expect { subject }.to change { shipment.shipped_at }.from(nil).to be_within(1.second).of(now)
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -40,7 +40,7 @@ describe Spree::OrderShipping do
|
|
40
40
|
Timecop.freeze(future) do
|
41
41
|
subject
|
42
42
|
end
|
43
|
-
end.to change { order.updated_at }.
|
43
|
+
end.to change { order.updated_at }.to be_within(1.second).of(future)
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
@@ -97,6 +97,7 @@ describe Spree::Product, type: :model do
|
|
97
97
|
master = product.master
|
98
98
|
master.default_price.price = 11
|
99
99
|
master.save!
|
100
|
+
product.update_columns(updated_at: 1.day.ago)
|
100
101
|
product.master.default_price.price = 12
|
101
102
|
end
|
102
103
|
|
@@ -342,19 +343,27 @@ describe Spree::Product, type: :model do
|
|
342
343
|
|
343
344
|
context "associations" do
|
344
345
|
describe "product_option_types" do
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
346
|
+
context "with no existing option types" do
|
347
|
+
before { product.update_columns(updated_at: 1.day.ago) }
|
348
|
+
|
349
|
+
it "touches the product instance when an option type is added" do
|
350
|
+
expect {
|
351
|
+
product.product_option_types.create(option_type: create(:option_type, name: 'new-option-type'))
|
352
|
+
}.to change { product.reload.updated_at }
|
353
|
+
end
|
350
354
|
end
|
351
355
|
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
product.
|
356
|
-
|
357
|
-
|
356
|
+
context "with an existing option type" do
|
357
|
+
before do
|
358
|
+
product.product_option_types.create(option_type: create(:option_type, name: 'new-option-type'))
|
359
|
+
product.update_columns(updated_at: 1.day.ago)
|
360
|
+
end
|
361
|
+
|
362
|
+
it "touches product instance when an option type is removed" do
|
363
|
+
expect {
|
364
|
+
product.product_option_types = []
|
365
|
+
}.to change { product.reload.updated_at }
|
366
|
+
end
|
358
367
|
end
|
359
368
|
end
|
360
369
|
end
|
@@ -199,30 +199,41 @@ describe Spree::StockItem, type: :model do
|
|
199
199
|
|
200
200
|
let(:inventory_cache_threshold) { 5 }
|
201
201
|
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
end.to change { subject.variant.updated_at }
|
202
|
+
before do
|
203
|
+
subject.set_count_on_hand(existing_count_on_hand)
|
204
|
+
subject.variant.update_column(:updated_at, 1.day.ago)
|
206
205
|
end
|
207
206
|
|
208
|
-
|
209
|
-
|
210
|
-
expect do
|
211
|
-
subject.set_count_on_hand(7)
|
212
|
-
end.to change { subject.variant.updated_at }
|
213
|
-
end
|
207
|
+
context "beginning above threshold" do
|
208
|
+
let(:existing_count_on_hand) { 10 }
|
214
209
|
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
subject.
|
219
|
-
end
|
210
|
+
it "count on hand falls below threshold" do
|
211
|
+
expect do
|
212
|
+
subject.set_count_on_hand(3)
|
213
|
+
end.to change { subject.variant.updated_at }
|
214
|
+
end
|
215
|
+
|
216
|
+
it "count on hand stays above threshold" do
|
217
|
+
expect do
|
218
|
+
subject.set_count_on_hand(8)
|
219
|
+
end.not_to change { subject.variant.updated_at }
|
220
|
+
end
|
220
221
|
end
|
221
222
|
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
223
|
+
context "beginning below threshold" do
|
224
|
+
let(:existing_count_on_hand) { 2 }
|
225
|
+
|
226
|
+
it "count on hand rises above threshold" do
|
227
|
+
expect do
|
228
|
+
subject.set_count_on_hand(7)
|
229
|
+
end.to change { subject.variant.updated_at }
|
230
|
+
end
|
231
|
+
|
232
|
+
it "count on hand stays below threshold" do
|
233
|
+
expect do
|
234
|
+
subject.set_count_on_hand(3)
|
235
|
+
end.to change { subject.variant.updated_at }
|
236
|
+
end
|
226
237
|
end
|
227
238
|
end
|
228
239
|
|
@@ -255,6 +266,8 @@ describe Spree::StockItem, type: :model do
|
|
255
266
|
end
|
256
267
|
|
257
268
|
describe "#after_touch" do
|
269
|
+
before { subject.variant.update_column(:updated_at, 1.day.ago) }
|
270
|
+
|
258
271
|
it "touches its variant" do
|
259
272
|
expect do
|
260
273
|
subject.touch
|
@@ -838,10 +838,10 @@ describe Spree::StoreCredit do
|
|
838
838
|
subject { store_credit.invalidate(invalidation_reason, invalidation_user) }
|
839
839
|
|
840
840
|
it "sets the invalidated_at field to the current time" do
|
841
|
-
invalidated_at =
|
841
|
+
invalidated_at = 2.minutes.from_now
|
842
842
|
Timecop.freeze(invalidated_at) do
|
843
843
|
subject
|
844
|
-
expect(store_credit.invalidated_at).to
|
844
|
+
expect(store_credit.invalidated_at).to be_within(1.second).of invalidated_at
|
845
845
|
end
|
846
846
|
end
|
847
847
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Solidus Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemerchant
|
@@ -1404,9 +1404,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1404
1404
|
version: 2.1.0
|
1405
1405
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1406
1406
|
requirements:
|
1407
|
-
- - "
|
1407
|
+
- - ">="
|
1408
1408
|
- !ruby/object:Gem::Version
|
1409
|
-
version:
|
1409
|
+
version: '0'
|
1410
1410
|
requirements: []
|
1411
1411
|
rubyforge_project:
|
1412
1412
|
rubygems_version: 2.5.1
|