solidus_core 1.1.3 → 1.1.4
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/order.rb +17 -0
- data/app/models/spree/payment.rb +1 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +1 -1
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -3
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -3
- data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -3
- data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -3
- data/spec/models/spree/order_spec.rb +52 -0
- data/spec/models/spree/payment_spec.rb +2 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9161c98f377c58e982a151cdeb6c8ac7a2b5f656
|
4
|
+
data.tar.gz: 480fc65e5d85570f6eef9ae0f29cb45ca5f47e28
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 752f95c291e1810aa18c3973920e6e7cbdd279447de14da7a781d22962e946b41747867ee9c7c2c0c739ced9aa6f05fd357f2756d234b46228593f821f4295ee
|
7
|
+
data.tar.gz: 3c049638968609ca75f2d49b878c334e7cfa2532a9684b565d1d2c2e0382320ed72841529a6d8610b80c22ecbc2311da70c38c9085e63d07e1c1b6ae39e0f9c5
|
data/app/models/spree/order.rb
CHANGED
@@ -709,6 +709,23 @@ module Spree
|
|
709
709
|
Spree::Money.new(total_available_store_credit - total_applicable_store_credit, { currency: currency })
|
710
710
|
end
|
711
711
|
|
712
|
+
def payments_attributes=(attributes)
|
713
|
+
validate_payments_attributes(attributes)
|
714
|
+
super(attributes)
|
715
|
+
end
|
716
|
+
|
717
|
+
def validate_payments_attributes(attributes)
|
718
|
+
attributes = Array.wrap(attributes)
|
719
|
+
# Ensure the payment methods specified are allowed for this user
|
720
|
+
payment_methods = Spree::PaymentMethod.where(id: available_payment_methods)
|
721
|
+
attributes.each do |payment_attributes|
|
722
|
+
payment_method_id = payment_attributes[:payment_method_id]
|
723
|
+
|
724
|
+
# raise RecordNotFound unless it is an allowed payment method
|
725
|
+
payment_methods.find(payment_method_id) if payment_method_id
|
726
|
+
end
|
727
|
+
end
|
728
|
+
|
712
729
|
private
|
713
730
|
|
714
731
|
def link_by_email
|
data/app/models/spree/payment.rb
CHANGED
@@ -4,9 +4,6 @@
|
|
4
4
|
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
5
5
|
*
|
6
6
|
*= require spree/backend
|
7
|
-
<% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/backend' %>
|
8
|
-
*= require spree/backend/<%= options[:lib_name].gsub("/", "_") %>
|
9
|
-
<% end %>
|
10
7
|
*= require_self
|
11
8
|
*= require_tree .
|
12
9
|
*/
|
data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css
CHANGED
@@ -4,9 +4,6 @@
|
|
4
4
|
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
5
5
|
*
|
6
6
|
*= require spree/frontend
|
7
|
-
<% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/frontend' %>
|
8
|
-
*= require spree/frontend/<%= options[:lib_name].gsub("/", "_") %>
|
9
|
-
<% end %>
|
10
7
|
*= require_self
|
11
8
|
*= require_tree .
|
12
9
|
*/
|
@@ -1479,4 +1479,56 @@ describe Spree::Order, :type => :model do
|
|
1479
1479
|
end
|
1480
1480
|
end
|
1481
1481
|
end
|
1482
|
+
|
1483
|
+
describe "#validate_payments_attributes" do
|
1484
|
+
let(:attributes) { [ActionController::Parameters.new(payment_method_id: payment_method.id)] }
|
1485
|
+
subject do
|
1486
|
+
order.validate_payments_attributes(attributes)
|
1487
|
+
end
|
1488
|
+
|
1489
|
+
context "with empty array" do
|
1490
|
+
let(:attributes) { [] }
|
1491
|
+
it "doesn't error" do
|
1492
|
+
subject
|
1493
|
+
end
|
1494
|
+
end
|
1495
|
+
|
1496
|
+
context "with no payment method specified" do
|
1497
|
+
let(:attributes) { [ActionController::Parameters.new({})] }
|
1498
|
+
it "doesn't error" do
|
1499
|
+
subject
|
1500
|
+
end
|
1501
|
+
end
|
1502
|
+
|
1503
|
+
context "with valid payment method" do
|
1504
|
+
let(:payment_method) { create(:check_payment_method) }
|
1505
|
+
it "doesn't error" do
|
1506
|
+
subject
|
1507
|
+
end
|
1508
|
+
end
|
1509
|
+
|
1510
|
+
context "with inactive payment method" do
|
1511
|
+
let(:payment_method) { create(:check_payment_method, active: false) }
|
1512
|
+
|
1513
|
+
it "raises RecordNotFound" do
|
1514
|
+
expect { subject }.to raise_error(ActiveRecord::RecordNotFound)
|
1515
|
+
end
|
1516
|
+
end
|
1517
|
+
|
1518
|
+
context "with unavailable payment method" do
|
1519
|
+
let(:payment_method) { create(:check_payment_method, display_on: "back_end") }
|
1520
|
+
|
1521
|
+
it "raises RecordNotFound" do
|
1522
|
+
expect { subject }.to raise_error(ActiveRecord::RecordNotFound)
|
1523
|
+
end
|
1524
|
+
end
|
1525
|
+
|
1526
|
+
context "with soft-deleted payment method" do
|
1527
|
+
let(:payment_method) { create(:check_payment_method, deleted_at: Time.current) }
|
1528
|
+
|
1529
|
+
it "raises RecordNotFound" do
|
1530
|
+
expect { subject }.to raise_error(ActiveRecord::RecordNotFound)
|
1531
|
+
end
|
1532
|
+
end
|
1533
|
+
end
|
1482
1534
|
end
|
@@ -661,12 +661,13 @@ describe Spree::Payment, :type => :model do
|
|
661
661
|
end
|
662
662
|
|
663
663
|
context "completed orders" do
|
664
|
+
let(:payment_method) { create(:check_payment_method) }
|
664
665
|
before { allow(order).to receive_messages completed?: true }
|
665
666
|
|
666
667
|
it "updates payment_state and shipments" do
|
667
668
|
expect(order.updater).to receive(:update_payment_state)
|
668
669
|
expect(order.updater).to receive(:update_shipment_state)
|
669
|
-
Spree::Payment.create(:
|
670
|
+
Spree::Payment.create!(amount: 100, order: order, payment_method: payment_method)
|
670
671
|
end
|
671
672
|
end
|
672
673
|
|
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: 1.1.
|
4
|
+
version: 1.1.4
|
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: 2017-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemerchant
|
@@ -1305,9 +1305,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1305
1305
|
version: '0'
|
1306
1306
|
requirements: []
|
1307
1307
|
rubyforge_project:
|
1308
|
-
rubygems_version: 2.
|
1308
|
+
rubygems_version: 2.6.11
|
1309
1309
|
signing_key:
|
1310
1310
|
specification_version: 4
|
1311
1311
|
summary: Essential models, mailers, and classes for the Solidus e-commerce project.
|
1312
1312
|
test_files: []
|
1313
|
-
has_rdoc:
|