solidus_core 2.9.5 → 2.10.2
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/app/helpers/spree/base_helper.rb +4 -4
- data/app/helpers/spree/products_helper.rb +2 -1
- data/app/jobs/spree/promotion_code_batch_job.rb +2 -2
- data/app/models/concerns/spree/user_address_book.rb +2 -2
- data/app/models/concerns/spree/user_methods.rb +2 -2
- data/app/models/spree/address.rb +13 -17
- data/app/models/spree/adjustment.rb +20 -9
- data/app/models/spree/asset.rb +1 -1
- data/app/models/spree/base.rb +0 -2
- data/app/models/spree/calculator.rb +1 -1
- data/app/models/spree/calculator/price_sack.rb +1 -1
- data/app/models/spree/calculator/shipping/flexi_rate.rb +2 -2
- data/app/models/spree/calculator/tiered_flat_rate.rb +5 -5
- data/app/models/spree/calculator/tiered_percent.rb +6 -6
- data/app/models/spree/carton.rb +3 -3
- data/app/models/spree/classification.rb +2 -2
- data/app/models/spree/credit_card.rb +4 -4
- data/app/models/spree/customer_return.rb +1 -1
- data/app/models/spree/image/paperclip_attachment.rb +1 -1
- data/app/models/spree/inventory_unit.rb +5 -23
- data/app/models/spree/line_item.rb +4 -4
- data/app/models/spree/line_item_action.rb +2 -2
- data/app/models/spree/log_entry.rb +1 -1
- data/app/models/spree/option_value.rb +1 -1
- data/app/models/spree/option_values_variant.rb +2 -2
- data/app/models/spree/order.rb +11 -27
- data/app/models/spree/order/checkout.rb +1 -1
- data/app/models/spree/order/payments.rb +2 -2
- data/app/models/spree/order_cancellations.rb +1 -1
- data/app/models/spree/order_capturing.rb +2 -2
- data/app/models/spree/order_contents.rb +2 -2
- data/app/models/spree/order_mutex.rb +1 -1
- data/app/models/spree/order_promotion.rb +3 -3
- data/app/models/spree/order_shipping.rb +1 -1
- data/app/models/spree/order_taxation.rb +3 -3
- data/app/models/spree/payment.rb +8 -45
- data/app/models/spree/payment/processing.rb +3 -3
- data/app/models/spree/payment_capture_event.rb +1 -1
- data/app/models/spree/payment_method.rb +5 -2
- data/app/models/spree/payment_method/bogus_credit_card.rb +1 -1
- data/app/models/spree/payment_source.rb +1 -1
- data/app/models/spree/price.rb +2 -2
- data/app/models/spree/product.rb +5 -5
- data/app/models/spree/product/scopes.rb +218 -210
- data/app/models/spree/product_option_type.rb +2 -2
- data/app/models/spree/product_promotion_rule.rb +2 -2
- data/app/models/spree/product_property.rb +2 -2
- data/app/models/spree/promotion.rb +28 -13
- data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +1 -1
- data/app/models/spree/promotion/actions/free_shipping.rb +1 -1
- data/app/models/spree/promotion/rules/option_value.rb +2 -2
- data/app/models/spree/promotion/rules/product.rb +3 -3
- data/app/models/spree/promotion_action.rb +2 -2
- data/app/models/spree/promotion_chooser.rb +2 -2
- data/app/models/spree/promotion_code.rb +11 -10
- data/app/models/spree/promotion_code/batch_builder.rb +3 -3
- data/app/models/spree/promotion_code_batch.rb +1 -1
- data/app/models/spree/promotion_rule.rb +2 -2
- data/app/models/spree/promotion_rule_role.rb +2 -2
- data/app/models/spree/promotion_rule_store.rb +2 -2
- data/app/models/spree/promotion_rule_taxon.rb +2 -2
- data/app/models/spree/promotion_rule_user.rb +2 -2
- data/app/models/spree/refund.rb +5 -5
- data/app/models/spree/reimbursement.rb +5 -13
- data/app/models/spree/reimbursement/credit.rb +2 -2
- data/app/models/spree/reimbursement/reimbursement_type_engine.rb +1 -1
- data/app/models/spree/reimbursement_tax_calculator.rb +1 -1
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +2 -2
- data/app/models/spree/return_authorization.rb +4 -10
- data/app/models/spree/return_item.rb +13 -52
- data/app/models/spree/return_item/eligibility_validator/default.rb +1 -1
- data/app/models/spree/role_user.rb +2 -2
- data/app/models/spree/shipment.rb +7 -41
- data/app/models/spree/shipping_calculator.rb +0 -4
- data/app/models/spree/shipping_manifest.rb +3 -3
- data/app/models/spree/shipping_method.rb +2 -2
- data/app/models/spree/shipping_method_category.rb +2 -2
- data/app/models/spree/shipping_method_stock_location.rb +2 -2
- data/app/models/spree/shipping_method_zone.rb +2 -2
- data/app/models/spree/shipping_rate.rb +2 -2
- data/app/models/spree/shipping_rate_tax.rb +2 -2
- data/app/models/spree/state.rb +2 -2
- data/app/models/spree/state_change.rb +2 -2
- data/app/models/spree/stock/differentiator.rb +1 -1
- data/app/models/spree/stock/package.rb +1 -1
- data/app/models/spree/stock_item.rb +3 -3
- data/app/models/spree/stock_location.rb +2 -2
- data/app/models/spree/stock_movement.rb +2 -2
- data/app/models/spree/stock_quantities.rb +13 -12
- data/app/models/spree/store_credit.rb +8 -8
- data/app/models/spree/store_credit_event.rb +3 -3
- data/app/models/spree/store_payment_method.rb +2 -2
- data/app/models/spree/store_shipping_method.rb +2 -2
- data/app/models/spree/tax_calculator/default.rb +0 -4
- data/app/models/spree/tax_calculator/shipping_rate.rb +0 -3
- data/app/models/spree/tax_rate.rb +5 -1
- data/app/models/spree/tax_rate_tax_category.rb +2 -2
- data/app/models/spree/taxon/paperclip_attachment.rb +13 -0
- data/app/models/spree/unit_cancel.rb +5 -2
- data/app/models/spree/user_address.rb +2 -2
- data/app/models/spree/user_last_url_storer.rb +46 -0
- data/app/models/spree/user_last_url_storer/rules/authentication_rule.rb +36 -0
- data/app/models/spree/user_stock_location.rb +2 -2
- data/app/models/spree/variant.rb +10 -10
- data/app/models/spree/variant/scopes.rb +37 -29
- data/app/models/spree/variant_property_rule.rb +1 -1
- data/app/models/spree/variant_property_rule_condition.rb +2 -2
- data/app/models/spree/variant_property_rule_value.rb +2 -2
- data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +1 -1
- data/app/models/spree/wallet_payment_source.rb +2 -2
- data/app/models/spree/zone.rb +1 -1
- data/app/models/spree/zone_member.rb +2 -2
- data/config/initializers/inflections.rb +5 -0
- data/config/initializers/money.rb +2 -0
- data/config/locales/en.yml +34 -3
- data/lib/generators/spree/dummy/dummy_generator.rb +2 -0
- data/lib/generators/spree/install/templates/config/initializers/spree.rb.tt +8 -0
- data/lib/spree/app_configuration.rb +18 -3
- data/lib/spree/core.rb +12 -0
- data/lib/spree/core/controller_helpers/auth.rb +1 -13
- data/lib/spree/core/controller_helpers/strong_parameters.rb +21 -7
- data/lib/spree/core/engine.rb +2 -2
- data/lib/spree/core/importer/order.rb +29 -28
- data/lib/spree/core/importer/product.rb +2 -2
- data/lib/spree/core/product_filters.rb +15 -15
- data/lib/spree/core/role_configuration.rb +2 -2
- data/lib/spree/core/search/variant.rb +1 -1
- data/lib/spree/core/state_machines.rb +78 -0
- data/lib/spree/core/state_machines/inventory_unit.rb +42 -0
- data/lib/spree/core/state_machines/payment.rb +61 -0
- data/lib/spree/core/state_machines/reimbursement.rb +33 -0
- data/lib/spree/core/state_machines/return_authorization.rb +32 -0
- data/lib/spree/core/state_machines/return_item/acceptance_status.rb +51 -0
- data/lib/spree/core/state_machines/return_item/reception_status.rb +42 -0
- data/lib/spree/core/state_machines/shipment.rb +58 -0
- data/lib/spree/core/stock_configuration.rb +1 -0
- data/lib/spree/core/validators/email.rb +1 -8
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/money.rb +2 -2
- data/lib/spree/permission_sets/default_customer.rb +1 -1
- data/lib/spree/permission_sets/user_management.rb +3 -0
- data/lib/spree/permitted_attributes.rb +78 -9
- data/lib/spree/preferences/static_model_preferences.rb +2 -2
- data/lib/spree/testing_support/dummy_app.rb +4 -1
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +6 -2
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +8 -1
- data/lib/spree/testing_support/factories/promotion_factory.rb +7 -0
- data/lib/spree/testing_support/factories/stock_package_factory.rb +1 -1
- data/lib/spree/testing_support/factories/user_factory.rb +4 -1
- data/solidus_core.gemspec +6 -6
- data/spec/lib/search/base_spec.rb +5 -1
- data/spec/lib/search/variant_spec.rb +1 -1
- data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +8 -1
- data/spec/lib/spree/core/stock_configuration_spec.rb +36 -0
- data/spec/lib/spree/core/validators/email_spec.rb +18 -18
- data/spec/lib/spree/event_spec.rb +15 -3
- data/spec/lib/spree/permitted_attributes_spec.rb +41 -0
- data/spec/models/spree/ability_spec.rb +1 -1
- data/spec/models/spree/address_spec.rb +23 -0
- data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +1 -1
- data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +1 -1
- data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +1 -1
- data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +2 -2
- data/spec/models/spree/calculator/shipping/per_item_spec.rb +1 -1
- data/spec/models/spree/calculator/shipping/price_sack_spec.rb +24 -15
- data/spec/models/spree/carton_spec.rb +10 -2
- data/spec/models/spree/classification_spec.rb +21 -9
- data/spec/models/spree/concerns/user_address_book_spec.rb +4 -4
- data/spec/models/spree/concerns/user_methods_spec.rb +5 -4
- data/spec/models/spree/credit_card_spec.rb +2 -2
- data/spec/models/spree/customer_return_spec.rb +1 -1
- data/spec/models/spree/order/checkout_spec.rb +1 -1
- data/spec/models/spree/order/outstanding_balance_integration_spec.rb +5 -5
- data/spec/models/spree/order/payment_spec.rb +1 -1
- data/spec/models/spree/order_contents_spec.rb +1 -1
- data/spec/models/spree/order_inventory_spec.rb +3 -3
- data/spec/models/spree/order_merger_spec.rb +3 -3
- data/spec/models/spree/order_shipping_spec.rb +1 -1
- data/spec/models/spree/order_spec.rb +14 -21
- data/spec/models/spree/order_updater_spec.rb +4 -3
- data/spec/models/spree/payment_create_spec.rb +6 -16
- data/spec/models/spree/payment_spec.rb +12 -12
- data/spec/models/spree/permission_sets/user_management_spec.rb +2 -0
- data/spec/models/spree/preference_spec.rb +4 -4
- data/spec/models/spree/preferences/preferable_spec.rb +3 -3
- data/spec/models/spree/preferences/statically_configurable_spec.rb +2 -2
- data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +2 -2
- data/spec/models/spree/promotion/rules/nth_order_spec.rb +2 -2
- data/spec/models/spree/promotion/rules/taxon_spec.rb +1 -0
- data/spec/models/spree/promotion_rule_spec.rb +6 -6
- data/spec/models/spree/promotion_spec.rb +71 -54
- data/spec/models/spree/reimbursement_type/original_payment_spec.rb +3 -3
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +1 -1
- data/spec/models/spree/return_item_spec.rb +11 -11
- data/spec/models/spree/returns_calculator_spec.rb +2 -2
- data/spec/models/spree/shipment_spec.rb +6 -6
- data/spec/models/spree/shipping_calculator_spec.rb +1 -13
- data/spec/models/spree/shipping_method_spec.rb +32 -0
- data/spec/models/spree/stock/availability_validator_spec.rb +2 -2
- data/spec/models/spree/stock/differentiator_spec.rb +2 -2
- data/spec/models/spree/stock/estimator_spec.rb +3 -3
- data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +4 -4
- data/spec/models/spree/stock/package_spec.rb +28 -28
- data/spec/models/spree/stock/quantifier_spec.rb +2 -2
- data/spec/models/spree/stock/simple_coordinator_spec.rb +11 -11
- data/spec/models/spree/stock/splitter/base_spec.rb +4 -4
- data/spec/models/spree/stock/splitter/shipping_category_spec.rb +7 -7
- data/spec/models/spree/stock_quantities_spec.rb +1 -1
- data/spec/models/spree/store_credit_spec.rb +8 -8
- data/spec/models/spree/tax_category_spec.rb +1 -1
- data/spec/models/spree/tax_rate_spec.rb +1 -0
- data/spec/models/spree/taxon_spec.rb +2 -2
- data/spec/models/spree/taxons/paperclip_attachment_spec.rb +29 -0
- data/spec/models/spree/unit_cancel_spec.rb +5 -0
- data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +31 -0
- data/spec/models/spree/user_last_url_storer_spec.rb +60 -0
- data/spec/models/spree/user_spec.rb +3 -3
- metadata +46 -39
- data/spec/migrate/20190106184413_remove_code_from_spree_promotions_spec.rb +0 -148
- data/spec/models/spree/order/updating_spec.rb +0 -18
|
@@ -16,7 +16,7 @@ RSpec.describe "Outstanding balance integration tests" do
|
|
|
16
16
|
let!(:order) { create(:order_with_line_items, line_items_count: 2, line_items_price: 3, shipment_cost: 13) }
|
|
17
17
|
let(:item_1) { order.line_items[0] }
|
|
18
18
|
let(:item_2) { order.line_items[1] }
|
|
19
|
-
before { order.
|
|
19
|
+
before { order.update!(state: 'complete', completed_at: Time.now) }
|
|
20
20
|
|
|
21
21
|
subject do
|
|
22
22
|
order.reload
|
|
@@ -44,11 +44,11 @@ RSpec.describe "Outstanding balance integration tests" do
|
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
context 'when the order is cancelled' do
|
|
47
|
-
before { order.
|
|
47
|
+
before { order.update!(state: "canceled") }
|
|
48
48
|
it { should eq(-19) }
|
|
49
49
|
|
|
50
50
|
context 'and the payment is voided' do
|
|
51
|
-
before { payment.
|
|
51
|
+
before { payment.update!(state: "void") }
|
|
52
52
|
it { should eq 0 }
|
|
53
53
|
end
|
|
54
54
|
|
|
@@ -116,11 +116,11 @@ RSpec.describe "Outstanding balance integration tests" do
|
|
|
116
116
|
end
|
|
117
117
|
|
|
118
118
|
context 'when the order is cancelled' do
|
|
119
|
-
before { order.
|
|
119
|
+
before { order.update!(state: "canceled") }
|
|
120
120
|
it { should eq(-10) }
|
|
121
121
|
|
|
122
122
|
context 'and the payment is voided' do
|
|
123
|
-
before { payment.
|
|
123
|
+
before { payment.update!(state: "void") }
|
|
124
124
|
it { should eq 0 }
|
|
125
125
|
end
|
|
126
126
|
|
|
@@ -134,7 +134,7 @@ RSpec.describe Spree::OrderContents, type: :model do
|
|
|
134
134
|
|
|
135
135
|
context 'when the order does not have a taxable address' do
|
|
136
136
|
before do
|
|
137
|
-
order.
|
|
137
|
+
order.update!(ship_address: nil, bill_address: nil)
|
|
138
138
|
expect(order.tax_address.country_id).to be_nil
|
|
139
139
|
end
|
|
140
140
|
|
|
@@ -16,7 +16,7 @@ RSpec.describe Spree::OrderInventory, type: :model do
|
|
|
16
16
|
let(:new_quantity) { 3 }
|
|
17
17
|
|
|
18
18
|
before do
|
|
19
|
-
line_item.
|
|
19
|
+
line_item.update!(quantity: old_quantity)
|
|
20
20
|
|
|
21
21
|
line_item.update_column(:quantity, new_quantity)
|
|
22
22
|
subject.line_item.reload
|
|
@@ -86,7 +86,7 @@ RSpec.describe Spree::OrderInventory, type: :model do
|
|
|
86
86
|
end
|
|
87
87
|
|
|
88
88
|
context "variant doesnt track inventory" do
|
|
89
|
-
before { variant.
|
|
89
|
+
before { variant.update!(track_inventory: false) }
|
|
90
90
|
let(:new_quantity) { 1 }
|
|
91
91
|
|
|
92
92
|
it "creates on hand inventory units" do
|
|
@@ -164,7 +164,7 @@ RSpec.describe Spree::OrderInventory, type: :model do
|
|
|
164
164
|
let(:new_quantity) { 2 }
|
|
165
165
|
|
|
166
166
|
before do
|
|
167
|
-
line_item.
|
|
167
|
+
line_item.update!(quantity: old_quantity)
|
|
168
168
|
|
|
169
169
|
line_item.update_column(:quantity, new_quantity)
|
|
170
170
|
subject.line_item.reload
|
|
@@ -77,13 +77,13 @@ module Spree
|
|
|
77
77
|
|
|
78
78
|
context "2 equal line items" do
|
|
79
79
|
before do
|
|
80
|
-
@
|
|
81
|
-
@
|
|
80
|
+
@line_item_one = order_1.contents.add(variant, 1, foos: {})
|
|
81
|
+
@line_item_two = order_2.contents.add(variant, 1, foos: {})
|
|
82
82
|
end
|
|
83
83
|
|
|
84
84
|
specify do
|
|
85
85
|
without_partial_double_verification do
|
|
86
|
-
expect(order_1).to receive(:foos_match).with(@
|
|
86
|
+
expect(order_1).to receive(:foos_match).with(@line_item_one, kind_of(Hash)).and_return(true)
|
|
87
87
|
end
|
|
88
88
|
subject.merge!(order_2)
|
|
89
89
|
expect(order_1.line_items.count).to eq(1)
|
|
@@ -181,7 +181,7 @@ RSpec.describe Spree::OrderShipping do
|
|
|
181
181
|
# OrderShipping#ship rather than vice versa
|
|
182
182
|
context "when the tracking number is already on the shipment" do
|
|
183
183
|
before do
|
|
184
|
-
shipment.
|
|
184
|
+
shipment.update!(tracking: 'tracking-number')
|
|
185
185
|
end
|
|
186
186
|
|
|
187
187
|
it "sets the tracking-number" do
|
|
@@ -366,26 +366,19 @@ RSpec.describe Spree::Order, type: :model do
|
|
|
366
366
|
end
|
|
367
367
|
end
|
|
368
368
|
|
|
369
|
-
context "
|
|
370
|
-
|
|
371
|
-
Spree::Order.class_eval do
|
|
372
|
-
register_update_hook :add_awesome_sauce
|
|
373
|
-
end
|
|
374
|
-
end
|
|
369
|
+
context ".register_update_hook", partial_double_verification: false do
|
|
370
|
+
let(:order) { create(:order) }
|
|
375
371
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
end
|
|
372
|
+
before { Spree::Order.register_update_hook :foo }
|
|
373
|
+
after { Spree::Order.update_hooks.clear }
|
|
379
374
|
|
|
380
|
-
it "calls
|
|
381
|
-
order
|
|
382
|
-
expect(order).to receive(:add_awesome_sauce)
|
|
375
|
+
it "calls hooks during #recalculate" do
|
|
376
|
+
expect(order).to receive :foo
|
|
383
377
|
order.recalculate
|
|
384
378
|
end
|
|
385
379
|
|
|
386
|
-
it "calls hook during finalize" do
|
|
387
|
-
order
|
|
388
|
-
expect(order).to receive(:add_awesome_sauce)
|
|
380
|
+
it "calls hook during #finalize!" do
|
|
381
|
+
expect(order).to receive :foo
|
|
389
382
|
order.finalize!
|
|
390
383
|
end
|
|
391
384
|
end
|
|
@@ -678,7 +671,7 @@ RSpec.describe Spree::Order, type: :model do
|
|
|
678
671
|
let!(:payment_method_without_store) { create(:payment_method) }
|
|
679
672
|
|
|
680
673
|
context 'when the store has payment methods' do
|
|
681
|
-
before { order.
|
|
674
|
+
before { order.update!(store: store_with_payment_methods) }
|
|
682
675
|
|
|
683
676
|
it 'returns only the matching payment methods for that store' do
|
|
684
677
|
expect(order.available_payment_methods).to match_array(
|
|
@@ -706,7 +699,7 @@ RSpec.describe Spree::Order, type: :model do
|
|
|
706
699
|
end
|
|
707
700
|
|
|
708
701
|
context 'when the store does not have payment methods' do
|
|
709
|
-
before { order.
|
|
702
|
+
before { order.update!(store: store_without_payment_methods) }
|
|
710
703
|
|
|
711
704
|
it 'returns all matching payment methods regardless of store' do
|
|
712
705
|
expect(order.available_payment_methods).to match_array(
|
|
@@ -1443,12 +1436,12 @@ RSpec.describe Spree::Order, type: :model do
|
|
|
1443
1436
|
|
|
1444
1437
|
describe "#total_applicable_store_credit" do
|
|
1445
1438
|
context "order is in the confirm state" do
|
|
1446
|
-
before { order.
|
|
1439
|
+
before { order.update(state: 'confirm') }
|
|
1447
1440
|
include_examples "check total store credit from payments"
|
|
1448
1441
|
end
|
|
1449
1442
|
|
|
1450
1443
|
context "order is completed" do
|
|
1451
|
-
before { order.
|
|
1444
|
+
before { order.update(state: 'complete') }
|
|
1452
1445
|
include_examples "check total store credit from payments"
|
|
1453
1446
|
end
|
|
1454
1447
|
|
|
@@ -1462,7 +1455,7 @@ RSpec.describe Spree::Order, type: :model do
|
|
|
1462
1455
|
context "the store credit is more than the order total" do
|
|
1463
1456
|
let(:order_total) { store_credit.amount - 1 }
|
|
1464
1457
|
|
|
1465
|
-
before { order.
|
|
1458
|
+
before { order.update(total: order_total) }
|
|
1466
1459
|
|
|
1467
1460
|
it "returns the order total" do
|
|
1468
1461
|
expect(subject.total_applicable_store_credit).to eq order_total
|
|
@@ -1472,7 +1465,7 @@ RSpec.describe Spree::Order, type: :model do
|
|
|
1472
1465
|
context "the store credit is less than the order total" do
|
|
1473
1466
|
let(:order_total) { store_credit.amount * 10 }
|
|
1474
1467
|
|
|
1475
|
-
before { order.
|
|
1468
|
+
before { order.update(total: order_total) }
|
|
1476
1469
|
|
|
1477
1470
|
it "returns the store credit amount" do
|
|
1478
1471
|
expect(subject.total_applicable_store_credit).to eq store_credit.amount
|
|
@@ -158,7 +158,8 @@ module Spree
|
|
|
158
158
|
amount: -500,
|
|
159
159
|
finalized: true,
|
|
160
160
|
label: 'Some other credit')
|
|
161
|
-
|
|
161
|
+
|
|
162
|
+
line_item.adjustments.each { |item| item.update_column(:eligible, true) }
|
|
162
163
|
|
|
163
164
|
order.recalculate
|
|
164
165
|
|
|
@@ -172,7 +173,7 @@ module Spree
|
|
|
172
173
|
create_adjustment('Promotion A', -200)
|
|
173
174
|
create_adjustment('Promotion B', -200)
|
|
174
175
|
end
|
|
175
|
-
line_item.adjustments.each { |
|
|
176
|
+
line_item.adjustments.each { |item| item.update_column(:eligible, true) }
|
|
176
177
|
|
|
177
178
|
order.recalculate
|
|
178
179
|
|
|
@@ -186,7 +187,7 @@ module Spree
|
|
|
186
187
|
create_adjustment('Promotion A', -200)
|
|
187
188
|
create_adjustment('Promotion B', -200)
|
|
188
189
|
end
|
|
189
|
-
line_item.adjustments.each { |
|
|
190
|
+
line_item.adjustments.each { |item| item.update_column(:eligible, true) }
|
|
190
191
|
|
|
191
192
|
order.recalculate
|
|
192
193
|
|
|
@@ -122,7 +122,7 @@ module Spree
|
|
|
122
122
|
end
|
|
123
123
|
|
|
124
124
|
context 'the order has no user' do
|
|
125
|
-
before { order.
|
|
125
|
+
before { order.update!(user_id: nil) }
|
|
126
126
|
it 'errors' do
|
|
127
127
|
expect { new_payment }.to raise_error(ActiveRecord::RecordNotFound)
|
|
128
128
|
end
|
|
@@ -130,7 +130,7 @@ module Spree
|
|
|
130
130
|
|
|
131
131
|
context 'the order and the credit card have no user' do
|
|
132
132
|
before do
|
|
133
|
-
order.
|
|
133
|
+
order.update!(user_id: nil)
|
|
134
134
|
credit_card.update!(user_id: nil)
|
|
135
135
|
end
|
|
136
136
|
it 'errors' do
|
|
@@ -156,20 +156,10 @@ module Spree
|
|
|
156
156
|
context "unpermitted" do
|
|
157
157
|
let(:attributes) { ActionController::Parameters.new(valid_attributes) }
|
|
158
158
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
payment_method: nil,
|
|
164
|
-
source: nil
|
|
165
|
-
)
|
|
166
|
-
end
|
|
167
|
-
else
|
|
168
|
-
it "raises an exception" do
|
|
169
|
-
expect {
|
|
170
|
-
new_payment
|
|
171
|
-
}.to raise_exception(ActionController::UnfilteredParameters)
|
|
172
|
-
end
|
|
159
|
+
it "raises an exception" do
|
|
160
|
+
expect {
|
|
161
|
+
new_payment
|
|
162
|
+
}.to raise_exception(ActionController::UnfilteredParameters)
|
|
173
163
|
end
|
|
174
164
|
end
|
|
175
165
|
|
|
@@ -134,7 +134,7 @@ RSpec.describe Spree::Payment, type: :model do
|
|
|
134
134
|
describe "#process!" do
|
|
135
135
|
context 'with autocapture' do
|
|
136
136
|
before do
|
|
137
|
-
payment.payment_method.
|
|
137
|
+
payment.payment_method.update!(auto_capture: true)
|
|
138
138
|
end
|
|
139
139
|
|
|
140
140
|
it "should purchase" do
|
|
@@ -145,11 +145,11 @@ RSpec.describe Spree::Payment, type: :model do
|
|
|
145
145
|
|
|
146
146
|
context 'without autocapture' do
|
|
147
147
|
before do
|
|
148
|
-
payment.payment_method.
|
|
148
|
+
payment.payment_method.update!(auto_capture: false)
|
|
149
149
|
end
|
|
150
150
|
|
|
151
151
|
context 'when in the checkout state' do
|
|
152
|
-
before { payment.
|
|
152
|
+
before { payment.update!(state: 'checkout') }
|
|
153
153
|
|
|
154
154
|
it "authorizes" do
|
|
155
155
|
payment.process!
|
|
@@ -158,7 +158,7 @@ RSpec.describe Spree::Payment, type: :model do
|
|
|
158
158
|
end
|
|
159
159
|
|
|
160
160
|
context 'when in the processing state' do
|
|
161
|
-
before { payment.
|
|
161
|
+
before { payment.update!(state: 'processing') }
|
|
162
162
|
|
|
163
163
|
it "does not authorize" do
|
|
164
164
|
payment.process!
|
|
@@ -167,7 +167,7 @@ RSpec.describe Spree::Payment, type: :model do
|
|
|
167
167
|
end
|
|
168
168
|
|
|
169
169
|
context 'when in the pending state' do
|
|
170
|
-
before { payment.
|
|
170
|
+
before { payment.update!(state: 'pending') }
|
|
171
171
|
|
|
172
172
|
it "does not re-authorize" do
|
|
173
173
|
expect(payment).to_not receive(:authorize!)
|
|
@@ -177,7 +177,7 @@ RSpec.describe Spree::Payment, type: :model do
|
|
|
177
177
|
end
|
|
178
178
|
|
|
179
179
|
context 'when in a failed state' do
|
|
180
|
-
before { payment.
|
|
180
|
+
before { payment.update!(state: 'failed') }
|
|
181
181
|
|
|
182
182
|
it "raises an exception" do
|
|
183
183
|
expect {
|
|
@@ -187,7 +187,7 @@ RSpec.describe Spree::Payment, type: :model do
|
|
|
187
187
|
end
|
|
188
188
|
|
|
189
189
|
context 'when in the completed state' do
|
|
190
|
-
before { payment.
|
|
190
|
+
before { payment.update!(state: 'completed') }
|
|
191
191
|
|
|
192
192
|
it "authorizes" do
|
|
193
193
|
payment.process!
|
|
@@ -253,7 +253,7 @@ RSpec.describe Spree::Payment, type: :model do
|
|
|
253
253
|
|
|
254
254
|
context 'when the source is a credit card without an address' do
|
|
255
255
|
let(:card) { create(:credit_card, address: nil) }
|
|
256
|
-
before { order.
|
|
256
|
+
before { order.update!(bill_address: address) }
|
|
257
257
|
let(:address) { create(:address) }
|
|
258
258
|
|
|
259
259
|
it 'send the order bill address' do
|
|
@@ -278,7 +278,7 @@ RSpec.describe Spree::Payment, type: :model do
|
|
|
278
278
|
|
|
279
279
|
let(:store_credit_payment) { create(:store_credit_payment) }
|
|
280
280
|
let(:store_credit_payment_method) { create(:store_credit_payment_method) }
|
|
281
|
-
before { order.
|
|
281
|
+
before { order.update!(bill_address: address) }
|
|
282
282
|
let(:address) { create(:address) }
|
|
283
283
|
|
|
284
284
|
it 'send the order bill address' do
|
|
@@ -932,7 +932,7 @@ RSpec.describe Spree::Payment, type: :model do
|
|
|
932
932
|
end
|
|
933
933
|
|
|
934
934
|
context 'the order has no user' do
|
|
935
|
-
before { order.
|
|
935
|
+
before { order.update!(user_id: nil) }
|
|
936
936
|
it 'errors' do
|
|
937
937
|
expect { subject }.to raise_error(ActiveRecord::RecordNotFound)
|
|
938
938
|
end
|
|
@@ -940,7 +940,7 @@ RSpec.describe Spree::Payment, type: :model do
|
|
|
940
940
|
|
|
941
941
|
context 'the order and the credit card have no user' do
|
|
942
942
|
before do
|
|
943
|
-
order.
|
|
943
|
+
order.update!(user_id: nil)
|
|
944
944
|
credit_card.update!(user_id: nil)
|
|
945
945
|
end
|
|
946
946
|
it 'errors' do
|
|
@@ -976,7 +976,7 @@ RSpec.describe Spree::Payment, type: :model do
|
|
|
976
976
|
# Sets the payment's order to a different Ruby object entirely
|
|
977
977
|
payment.order = Spree::Order.find(payment.order_id)
|
|
978
978
|
email = 'foo@example.com'
|
|
979
|
-
order.
|
|
979
|
+
order.update(email: email)
|
|
980
980
|
expect(payment.gateway_options[:email]).to eq(email)
|
|
981
981
|
end
|
|
982
982
|
end
|
|
@@ -25,11 +25,13 @@ RSpec.describe Spree::PermissionSets::UserManagement do
|
|
|
25
25
|
context 'when the user does not have a role' do
|
|
26
26
|
let(:user) { create(:user) }
|
|
27
27
|
it { is_expected.to be_able_to(:update_email, user) }
|
|
28
|
+
it { is_expected.to be_able_to(:update_password, user) }
|
|
28
29
|
end
|
|
29
30
|
|
|
30
31
|
context 'when the user has a role' do
|
|
31
32
|
let(:user) { create(:user, spree_roles: [create(:role)]) }
|
|
32
33
|
it { is_expected.not_to be_able_to(:update_email, user) }
|
|
34
|
+
it { is_expected.not_to be_able_to(:update_password, user) }
|
|
33
35
|
end
|
|
34
36
|
|
|
35
37
|
it { is_expected.not_to be_able_to(:delete, Spree.user_class) }
|
|
@@ -12,10 +12,10 @@ RSpec.describe Spree::Preference, type: :model do
|
|
|
12
12
|
|
|
13
13
|
describe "type coversion for values" do
|
|
14
14
|
def round_trip_preference(key, value)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
element = Spree::Preference.new
|
|
16
|
+
element.value = value
|
|
17
|
+
element.key = key
|
|
18
|
+
element.save
|
|
19
19
|
|
|
20
20
|
Spree::Preference.find_by(key: key)
|
|
21
21
|
end
|
|
@@ -272,9 +272,9 @@ RSpec.describe Spree::Preferences::Preferable, type: :model do
|
|
|
272
272
|
before(:all) do
|
|
273
273
|
class CreatePrefTest < ActiveRecord::Migration[4.2]
|
|
274
274
|
def self.up
|
|
275
|
-
create_table :pref_tests do |
|
|
276
|
-
|
|
277
|
-
|
|
275
|
+
create_table :pref_tests do |item|
|
|
276
|
+
item.string :col
|
|
277
|
+
item.text :preferences
|
|
278
278
|
end
|
|
279
279
|
end
|
|
280
280
|
|
|
@@ -42,10 +42,10 @@ RSpec.describe Spree::Promotion::Rules::FirstRepeatPurchaseSince do
|
|
|
42
42
|
let(:order_completion_date_2) { 1.day.ago }
|
|
43
43
|
before do
|
|
44
44
|
old_order_1 = create :completed_order_with_totals, user: user
|
|
45
|
-
old_order_1.
|
|
45
|
+
old_order_1.update(completed_at: order_completion_date_1)
|
|
46
46
|
|
|
47
47
|
old_order_2 = create :completed_order_with_totals, user: user
|
|
48
|
-
old_order_2.
|
|
48
|
+
old_order_2.update(completed_at: order_completion_date_2)
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
context "the last completed order was greater than the preferred days ago" do
|
|
@@ -40,7 +40,7 @@ RSpec.describe Spree::Promotion::Rules::NthOrder do
|
|
|
40
40
|
context "when the user has completed orders" do
|
|
41
41
|
before do
|
|
42
42
|
old_order = create :completed_order_with_totals, user: user
|
|
43
|
-
old_order.
|
|
43
|
+
old_order.update(completed_at: 1.day.ago)
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
context "when this order will be the 'nth' order" do
|
|
@@ -49,7 +49,7 @@ RSpec.describe Spree::Promotion::Rules::NthOrder do
|
|
|
49
49
|
|
|
50
50
|
context "when this order is completed and is still the 'nth' order" do
|
|
51
51
|
before do
|
|
52
|
-
order.
|
|
52
|
+
order.update(completed_at: Time.current)
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
it { is_expected.to be true }
|