solidus_core 2.9.6 → 2.10.3
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/engine.rb +2 -2
- data/lib/spree/core/importer/order.rb +28 -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 +3 -3
- 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/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/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_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 +49 -43
- data/spec/migrate/20190106184413_remove_code_from_spree_promotions_spec.rb +0 -148
- data/spec/models/spree/order/updating_spec.rb +0 -18
|
@@ -120,7 +120,7 @@ RSpec.describe Spree::StoreCredit do
|
|
|
120
120
|
let!(:store_credit) { create(:store_credit) }
|
|
121
121
|
let!(:test_category) { create(:store_credit_category, name: "Testing") }
|
|
122
122
|
|
|
123
|
-
subject { store_credit.
|
|
123
|
+
subject { store_credit.update(category: test_category) }
|
|
124
124
|
|
|
125
125
|
it "returns false" do
|
|
126
126
|
expect(subject).to eq false
|
|
@@ -170,7 +170,7 @@ RSpec.describe Spree::StoreCredit do
|
|
|
170
170
|
context "the authorized amount is defined" do
|
|
171
171
|
let(:authorized_amount) { 15.00 }
|
|
172
172
|
|
|
173
|
-
before { store_credit.
|
|
173
|
+
before { store_credit.update(amount_authorized: authorized_amount) }
|
|
174
174
|
|
|
175
175
|
it "subtracts the authorized amount from the credited amount" do
|
|
176
176
|
expect(store_credit.amount_remaining).to eq(store_credit.amount - authorized_amount)
|
|
@@ -181,7 +181,7 @@ RSpec.describe Spree::StoreCredit do
|
|
|
181
181
|
context "the amount_used is defined" do
|
|
182
182
|
let(:amount_used) { 10.0 }
|
|
183
183
|
|
|
184
|
-
before { store_credit.
|
|
184
|
+
before { store_credit.update(amount_used: amount_used) }
|
|
185
185
|
|
|
186
186
|
context "the authorized amount is not defined" do
|
|
187
187
|
it "subtracts the amount used from the credited amount" do
|
|
@@ -192,7 +192,7 @@ RSpec.describe Spree::StoreCredit do
|
|
|
192
192
|
context "the authorized amount is defined" do
|
|
193
193
|
let(:authorized_amount) { 15.00 }
|
|
194
194
|
|
|
195
|
-
before { store_credit.
|
|
195
|
+
before { store_credit.update(amount_authorized: authorized_amount) }
|
|
196
196
|
|
|
197
197
|
it "subtracts the amount used and the authorized amount from the credited amount" do
|
|
198
198
|
expect(store_credit.amount_remaining).to eq(store_credit.amount - amount_used - authorized_amount)
|
|
@@ -208,7 +208,7 @@ RSpec.describe Spree::StoreCredit do
|
|
|
208
208
|
let(:originator) { nil }
|
|
209
209
|
|
|
210
210
|
context "amount has not been authorized yet" do
|
|
211
|
-
before { store_credit.
|
|
211
|
+
before { store_credit.update(amount_authorized: authorization_amount) }
|
|
212
212
|
|
|
213
213
|
it "returns true" do
|
|
214
214
|
expect(store_credit.authorize(store_credit.amount - authorization_amount, store_credit.currency)).to be_truthy
|
|
@@ -234,7 +234,7 @@ RSpec.describe Spree::StoreCredit do
|
|
|
234
234
|
context "authorization has already happened" do
|
|
235
235
|
let!(:auth_event) { create(:store_credit_auth_event, store_credit: store_credit) }
|
|
236
236
|
|
|
237
|
-
before { store_credit.
|
|
237
|
+
before { store_credit.update(amount_authorized: store_credit.amount) }
|
|
238
238
|
|
|
239
239
|
it "returns true" do
|
|
240
240
|
expect(store_credit.authorize(store_credit.amount, store_credit.currency, action_authorization_code: auth_event.authorization_code)).to be true
|
|
@@ -777,7 +777,7 @@ RSpec.describe Spree::StoreCredit do
|
|
|
777
777
|
let!(:store_credits) do
|
|
778
778
|
[
|
|
779
779
|
create(:store_credit, user: user, amount: store_credit_amount),
|
|
780
|
-
create(:store_credit, user: user, amount: additional_store_credit_amount)
|
|
780
|
+
create(:store_credit, user: user.reload, amount: additional_store_credit_amount)
|
|
781
781
|
]
|
|
782
782
|
end
|
|
783
783
|
|
|
@@ -816,7 +816,7 @@ RSpec.describe Spree::StoreCredit do
|
|
|
816
816
|
context "amount is valid" do
|
|
817
817
|
let(:amount) { 10.0 }
|
|
818
818
|
|
|
819
|
-
before { store_credit.
|
|
819
|
+
before { store_credit.update!(amount: 30.0) }
|
|
820
820
|
|
|
821
821
|
it "returns true" do
|
|
822
822
|
expect(subject).to eq true
|
|
@@ -12,7 +12,7 @@ RSpec.describe Spree::TaxCategory, type: :model do
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
it "should undefault the previous default tax category" do
|
|
15
|
-
new_tax_category.
|
|
15
|
+
new_tax_category.update({ is_default: true })
|
|
16
16
|
expect(new_tax_category.is_default).to be true
|
|
17
17
|
|
|
18
18
|
tax_category.reload
|
|
@@ -29,7 +29,7 @@ RSpec.describe Spree::Taxon, type: :model do
|
|
|
29
29
|
context "updating a taxon permalink" do
|
|
30
30
|
it 'parameterizes permalink correctly' do
|
|
31
31
|
taxon.save!
|
|
32
|
-
taxon.
|
|
32
|
+
taxon.update(permalink: 'spécial&charactèrs')
|
|
33
33
|
expect(taxon.permalink).to eql "special-characters"
|
|
34
34
|
end
|
|
35
35
|
end
|
|
@@ -51,7 +51,7 @@ RSpec.describe Spree::Taxon, type: :model do
|
|
|
51
51
|
|
|
52
52
|
it 'parameterizes permalink correctly' do
|
|
53
53
|
taxon.save!
|
|
54
|
-
taxon.
|
|
54
|
+
taxon.update(permalink_part: 'spécial&charactèrs')
|
|
55
55
|
expect(taxon.reload.permalink).to eql "brands/special-characters"
|
|
56
56
|
end
|
|
57
57
|
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rails_helper'
|
|
4
|
+
|
|
5
|
+
RSpec.describe "Spree::Taxon::PaperclipAttachment", type: :model do
|
|
6
|
+
describe "#destroy_attachment" do
|
|
7
|
+
let(:taxon) { create(:taxon) }
|
|
8
|
+
|
|
9
|
+
context "when trying to destroy a valid attachment definition" do
|
|
10
|
+
context "and taxon has a file attached " do
|
|
11
|
+
it "removes the attachment" do
|
|
12
|
+
taxon.update(icon: File.new(Rails.root.join('..', '..', 'spec', 'fixtures', 'thinking-cat.jpg')))
|
|
13
|
+
expect(taxon.destroy_attachment(:icon)).to be_truthy
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
context "and the taxon does not have any file attached yet" do
|
|
17
|
+
it "returns false" do
|
|
18
|
+
expect(taxon.destroy_attachment(:icon)).to be_falsey
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
context "when trying to destroy an invalid attachment" do
|
|
24
|
+
it 'returns false' do
|
|
25
|
+
expect(taxon.destroy_attachment(:foo)).to be_falsey
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -48,6 +48,11 @@ RSpec.describe Spree::UnitCancel do
|
|
|
48
48
|
it "divides the line item total by the uncanceled units size" do
|
|
49
49
|
expect(subject).to eq(-10.0)
|
|
50
50
|
end
|
|
51
|
+
|
|
52
|
+
it "raises an error if dividing by 0" do
|
|
53
|
+
inventory_unit.cancel!
|
|
54
|
+
expect { subject }.to raise_error ZeroDivisionError, "Line Item does not have any inventory units available to cancel"
|
|
55
|
+
end
|
|
51
56
|
end
|
|
52
57
|
|
|
53
58
|
context "it is called with a line item that doesnt belong to the inventory unit" do
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rails_helper'
|
|
4
|
+
|
|
5
|
+
RSpec.describe Spree::UserLastUrlStorer::Rules::AuthenticationRule do
|
|
6
|
+
describe '#match?' do
|
|
7
|
+
let(:login_path) { '/sign_in' }
|
|
8
|
+
let(:request) { double(fullpath: fullpath) }
|
|
9
|
+
let(:controller) do
|
|
10
|
+
double(
|
|
11
|
+
request: request,
|
|
12
|
+
spree_login_path: login_path,
|
|
13
|
+
controller_name: 'controller_double'
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
subject { described_class.match?(controller) }
|
|
18
|
+
|
|
19
|
+
context 'when the request full path is an authentication route' do
|
|
20
|
+
let!(:fullpath) { login_path }
|
|
21
|
+
|
|
22
|
+
it { is_expected.to be true }
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
context 'when the request full path is not an authentication route' do
|
|
26
|
+
let!(:fullpath) { '/products/baseball-cap' }
|
|
27
|
+
|
|
28
|
+
it { is_expected.to be false }
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rails_helper'
|
|
4
|
+
|
|
5
|
+
RSpec.describe Spree::UserLastUrlStorer do
|
|
6
|
+
subject { described_class.new(controller) }
|
|
7
|
+
|
|
8
|
+
let(:fullpath) { '/products/baseball-cap' }
|
|
9
|
+
let(:session) { {} }
|
|
10
|
+
let(:request) { double(fullpath: fullpath) }
|
|
11
|
+
let(:controller) do
|
|
12
|
+
instance_double(
|
|
13
|
+
ApplicationController,
|
|
14
|
+
request: request,
|
|
15
|
+
session: session,
|
|
16
|
+
controller_name: 'app_controller_double'
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
module CustomRule
|
|
21
|
+
def self.match?(_controller)
|
|
22
|
+
true
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
after :each do
|
|
27
|
+
described_class.rules.delete('CustomRule')
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe '::rules' do
|
|
31
|
+
it 'includes default rules' do
|
|
32
|
+
rule = Spree::UserLastUrlStorer::Rules::AuthenticationRule
|
|
33
|
+
expect(described_class.rules).to include(rule)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it 'can add new rules' do
|
|
37
|
+
described_class.rules << CustomRule
|
|
38
|
+
expect(described_class.rules).to include(CustomRule)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe '#store_location' do
|
|
43
|
+
context 'when at least one rule matches' do
|
|
44
|
+
it 'does not set the path value into the session' do
|
|
45
|
+
described_class.rules << CustomRule
|
|
46
|
+
subject.store_location
|
|
47
|
+
expect(session[:spree_user_return_to]).to be_nil
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
context 'when no rule matches' do
|
|
52
|
+
it 'sets the path value into the session' do
|
|
53
|
+
described_class.rules << CustomRule
|
|
54
|
+
described_class.rules.delete('CustomRule')
|
|
55
|
+
subject.store_location
|
|
56
|
+
expect(session[:spree_user_return_to]).to eql fullpath
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -200,12 +200,12 @@ RSpec.describe Spree.user_class, type: :model do
|
|
|
200
200
|
context "part of the store credit has been used" do
|
|
201
201
|
let(:amount_used) { 35.00 }
|
|
202
202
|
|
|
203
|
-
before { store_credit.
|
|
203
|
+
before { store_credit.update(amount_used: amount_used) }
|
|
204
204
|
|
|
205
205
|
context "part of the store credit has been authorized" do
|
|
206
206
|
let(:authorized_amount) { 10 }
|
|
207
207
|
|
|
208
|
-
before { additional_store_credit.
|
|
208
|
+
before { additional_store_credit.update(amount_authorized: authorized_amount) }
|
|
209
209
|
|
|
210
210
|
it "returns sum of amounts minus used amount and authorized amount" do
|
|
211
211
|
expect(subject.total_available_store_credit.to_f).to eq(amount + additional_amount - amount_used - authorized_amount)
|
|
@@ -223,7 +223,7 @@ RSpec.describe Spree.user_class, type: :model do
|
|
|
223
223
|
context "part of the store credit has been authorized" do
|
|
224
224
|
let(:authorized_amount) { 10 }
|
|
225
225
|
|
|
226
|
-
before { additional_store_credit.
|
|
226
|
+
before { additional_store_credit.update(amount_authorized: authorized_amount) }
|
|
227
227
|
|
|
228
228
|
it "returns sum of amounts minus authorized amount" do
|
|
229
229
|
expect(subject.total_available_store_credit.to_f).to eq(amount + additional_amount - authorized_amount)
|
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.
|
|
4
|
+
version: 2.10.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Solidus Team
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-11-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: actionmailer
|
|
@@ -19,7 +19,7 @@ dependencies:
|
|
|
19
19
|
version: '5.1'
|
|
20
20
|
- - "<"
|
|
21
21
|
- !ruby/object:Gem::Version
|
|
22
|
-
version:
|
|
22
|
+
version: 6.1.x
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -29,7 +29,7 @@ dependencies:
|
|
|
29
29
|
version: '5.1'
|
|
30
30
|
- - "<"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
32
|
+
version: 6.1.x
|
|
33
33
|
- !ruby/object:Gem::Dependency
|
|
34
34
|
name: actionpack
|
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -39,7 +39,7 @@ dependencies:
|
|
|
39
39
|
version: '5.1'
|
|
40
40
|
- - "<"
|
|
41
41
|
- !ruby/object:Gem::Version
|
|
42
|
-
version:
|
|
42
|
+
version: 6.1.x
|
|
43
43
|
type: :runtime
|
|
44
44
|
prerelease: false
|
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -49,7 +49,7 @@ dependencies:
|
|
|
49
49
|
version: '5.1'
|
|
50
50
|
- - "<"
|
|
51
51
|
- !ruby/object:Gem::Version
|
|
52
|
-
version:
|
|
52
|
+
version: 6.1.x
|
|
53
53
|
- !ruby/object:Gem::Dependency
|
|
54
54
|
name: actionview
|
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -59,7 +59,7 @@ dependencies:
|
|
|
59
59
|
version: '5.1'
|
|
60
60
|
- - "<"
|
|
61
61
|
- !ruby/object:Gem::Version
|
|
62
|
-
version:
|
|
62
|
+
version: 6.1.x
|
|
63
63
|
type: :runtime
|
|
64
64
|
prerelease: false
|
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -69,7 +69,7 @@ dependencies:
|
|
|
69
69
|
version: '5.1'
|
|
70
70
|
- - "<"
|
|
71
71
|
- !ruby/object:Gem::Version
|
|
72
|
-
version:
|
|
72
|
+
version: 6.1.x
|
|
73
73
|
- !ruby/object:Gem::Dependency
|
|
74
74
|
name: activejob
|
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -79,7 +79,7 @@ dependencies:
|
|
|
79
79
|
version: '5.1'
|
|
80
80
|
- - "<"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version:
|
|
82
|
+
version: 6.1.x
|
|
83
83
|
type: :runtime
|
|
84
84
|
prerelease: false
|
|
85
85
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -89,7 +89,7 @@ dependencies:
|
|
|
89
89
|
version: '5.1'
|
|
90
90
|
- - "<"
|
|
91
91
|
- !ruby/object:Gem::Version
|
|
92
|
-
version:
|
|
92
|
+
version: 6.1.x
|
|
93
93
|
- !ruby/object:Gem::Dependency
|
|
94
94
|
name: activemodel
|
|
95
95
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -99,7 +99,7 @@ dependencies:
|
|
|
99
99
|
version: '5.1'
|
|
100
100
|
- - "<"
|
|
101
101
|
- !ruby/object:Gem::Version
|
|
102
|
-
version:
|
|
102
|
+
version: 6.1.x
|
|
103
103
|
type: :runtime
|
|
104
104
|
prerelease: false
|
|
105
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -109,7 +109,7 @@ dependencies:
|
|
|
109
109
|
version: '5.1'
|
|
110
110
|
- - "<"
|
|
111
111
|
- !ruby/object:Gem::Version
|
|
112
|
-
version:
|
|
112
|
+
version: 6.1.x
|
|
113
113
|
- !ruby/object:Gem::Dependency
|
|
114
114
|
name: activerecord
|
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -119,7 +119,7 @@ dependencies:
|
|
|
119
119
|
version: '5.1'
|
|
120
120
|
- - "<"
|
|
121
121
|
- !ruby/object:Gem::Version
|
|
122
|
-
version:
|
|
122
|
+
version: 6.1.x
|
|
123
123
|
type: :runtime
|
|
124
124
|
prerelease: false
|
|
125
125
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -129,7 +129,7 @@ dependencies:
|
|
|
129
129
|
version: '5.1'
|
|
130
130
|
- - "<"
|
|
131
131
|
- !ruby/object:Gem::Version
|
|
132
|
-
version:
|
|
132
|
+
version: 6.1.x
|
|
133
133
|
- !ruby/object:Gem::Dependency
|
|
134
134
|
name: activesupport
|
|
135
135
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -139,7 +139,7 @@ dependencies:
|
|
|
139
139
|
version: '5.1'
|
|
140
140
|
- - "<"
|
|
141
141
|
- !ruby/object:Gem::Version
|
|
142
|
-
version:
|
|
142
|
+
version: 6.1.x
|
|
143
143
|
type: :runtime
|
|
144
144
|
prerelease: false
|
|
145
145
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -149,7 +149,7 @@ dependencies:
|
|
|
149
149
|
version: '5.1'
|
|
150
150
|
- - "<"
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
|
-
version:
|
|
152
|
+
version: 6.1.x
|
|
153
153
|
- !ruby/object:Gem::Dependency
|
|
154
154
|
name: railties
|
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -159,7 +159,7 @@ dependencies:
|
|
|
159
159
|
version: '5.1'
|
|
160
160
|
- - "<"
|
|
161
161
|
- !ruby/object:Gem::Version
|
|
162
|
-
version:
|
|
162
|
+
version: 6.1.x
|
|
163
163
|
type: :runtime
|
|
164
164
|
prerelease: false
|
|
165
165
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -169,7 +169,7 @@ dependencies:
|
|
|
169
169
|
version: '5.1'
|
|
170
170
|
- - "<"
|
|
171
171
|
- !ruby/object:Gem::Version
|
|
172
|
-
version:
|
|
172
|
+
version: 6.1.x
|
|
173
173
|
- !ruby/object:Gem::Dependency
|
|
174
174
|
name: activemerchant
|
|
175
175
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -204,34 +204,34 @@ dependencies:
|
|
|
204
204
|
requirements:
|
|
205
205
|
- - "~>"
|
|
206
206
|
- !ruby/object:Gem::Version
|
|
207
|
-
version: '3.
|
|
208
|
-
- - ">="
|
|
209
|
-
- !ruby/object:Gem::Version
|
|
210
|
-
version: 3.0.1
|
|
207
|
+
version: '3.2'
|
|
211
208
|
type: :runtime
|
|
212
209
|
prerelease: false
|
|
213
210
|
version_requirements: !ruby/object:Gem::Requirement
|
|
214
211
|
requirements:
|
|
215
212
|
- - "~>"
|
|
216
213
|
- !ruby/object:Gem::Version
|
|
217
|
-
version: '3.
|
|
218
|
-
- - ">="
|
|
219
|
-
- !ruby/object:Gem::Version
|
|
220
|
-
version: 3.0.1
|
|
214
|
+
version: '3.2'
|
|
221
215
|
- !ruby/object:Gem::Dependency
|
|
222
216
|
name: cancancan
|
|
223
217
|
requirement: !ruby/object:Gem::Requirement
|
|
224
218
|
requirements:
|
|
225
|
-
- - "
|
|
219
|
+
- - ">="
|
|
226
220
|
- !ruby/object:Gem::Version
|
|
227
221
|
version: '2.2'
|
|
222
|
+
- - "<"
|
|
223
|
+
- !ruby/object:Gem::Version
|
|
224
|
+
version: '4.0'
|
|
228
225
|
type: :runtime
|
|
229
226
|
prerelease: false
|
|
230
227
|
version_requirements: !ruby/object:Gem::Requirement
|
|
231
228
|
requirements:
|
|
232
|
-
- - "
|
|
229
|
+
- - ">="
|
|
233
230
|
- !ruby/object:Gem::Version
|
|
234
231
|
version: '2.2'
|
|
232
|
+
- - "<"
|
|
233
|
+
- !ruby/object:Gem::Version
|
|
234
|
+
version: '4.0'
|
|
235
235
|
- !ruby/object:Gem::Dependency
|
|
236
236
|
name: carmen
|
|
237
237
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -309,9 +309,6 @@ dependencies:
|
|
|
309
309
|
- - ">="
|
|
310
310
|
- !ruby/object:Gem::Version
|
|
311
311
|
version: '4.2'
|
|
312
|
-
- - "<"
|
|
313
|
-
- !ruby/object:Gem::Version
|
|
314
|
-
version: '6'
|
|
315
312
|
type: :runtime
|
|
316
313
|
prerelease: false
|
|
317
314
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -319,9 +316,6 @@ dependencies:
|
|
|
319
316
|
- - ">="
|
|
320
317
|
- !ruby/object:Gem::Version
|
|
321
318
|
version: '4.2'
|
|
322
|
-
- - "<"
|
|
323
|
-
- !ruby/object:Gem::Version
|
|
324
|
-
version: '6'
|
|
325
319
|
- !ruby/object:Gem::Dependency
|
|
326
320
|
name: paranoia
|
|
327
321
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -356,14 +350,14 @@ dependencies:
|
|
|
356
350
|
requirements:
|
|
357
351
|
- - "~>"
|
|
358
352
|
- !ruby/object:Gem::Version
|
|
359
|
-
version: '0.
|
|
353
|
+
version: '0.6'
|
|
360
354
|
type: :runtime
|
|
361
355
|
prerelease: false
|
|
362
356
|
version_requirements: !ruby/object:Gem::Requirement
|
|
363
357
|
requirements:
|
|
364
358
|
- - "~>"
|
|
365
359
|
- !ruby/object:Gem::Version
|
|
366
|
-
version: '0.
|
|
360
|
+
version: '0.6'
|
|
367
361
|
description: Essential models, mailers, and classes for the Solidus e-commerce project.
|
|
368
362
|
email: contact@solidus.io
|
|
369
363
|
executables: []
|
|
@@ -619,6 +613,8 @@ files:
|
|
|
619
613
|
- app/models/spree/unit_cancel.rb
|
|
620
614
|
- app/models/spree/user_address.rb
|
|
621
615
|
- app/models/spree/user_class_handle.rb
|
|
616
|
+
- app/models/spree/user_last_url_storer.rb
|
|
617
|
+
- app/models/spree/user_last_url_storer/rules/authentication_rule.rb
|
|
622
618
|
- app/models/spree/user_stock_location.rb
|
|
623
619
|
- app/models/spree/validations/db_maximum_length_validator.rb
|
|
624
620
|
- app/models/spree/variant.rb
|
|
@@ -656,6 +652,7 @@ files:
|
|
|
656
652
|
- app/views/spree/test_mailer/test_email.text.erb
|
|
657
653
|
- config/initializers/assets.rb
|
|
658
654
|
- config/initializers/friendly_id.rb
|
|
655
|
+
- config/initializers/inflections.rb
|
|
659
656
|
- config/initializers/money.rb
|
|
660
657
|
- config/locales/en.yml
|
|
661
658
|
- db/default/spree/countries.rb
|
|
@@ -741,6 +738,14 @@ files:
|
|
|
741
738
|
- lib/spree/core/role_configuration.rb
|
|
742
739
|
- lib/spree/core/search/base.rb
|
|
743
740
|
- lib/spree/core/search/variant.rb
|
|
741
|
+
- lib/spree/core/state_machines.rb
|
|
742
|
+
- lib/spree/core/state_machines/inventory_unit.rb
|
|
743
|
+
- lib/spree/core/state_machines/payment.rb
|
|
744
|
+
- lib/spree/core/state_machines/reimbursement.rb
|
|
745
|
+
- lib/spree/core/state_machines/return_authorization.rb
|
|
746
|
+
- lib/spree/core/state_machines/return_item/acceptance_status.rb
|
|
747
|
+
- lib/spree/core/state_machines/return_item/reception_status.rb
|
|
748
|
+
- lib/spree/core/state_machines/shipment.rb
|
|
744
749
|
- lib/spree/core/stock_configuration.rb
|
|
745
750
|
- lib/spree/core/validators/email.rb
|
|
746
751
|
- lib/spree/core/version.rb
|
|
@@ -981,7 +986,6 @@ files:
|
|
|
981
986
|
- spec/mailers/promotion_code_batch_mailer_spec.rb
|
|
982
987
|
- spec/mailers/reimbursement_mailer_spec.rb
|
|
983
988
|
- spec/mailers/test_mailer_spec.rb
|
|
984
|
-
- spec/migrate/20190106184413_remove_code_from_spree_promotions_spec.rb
|
|
985
989
|
- spec/models/spree/ability_spec.rb
|
|
986
990
|
- spec/models/spree/address_spec.rb
|
|
987
991
|
- spec/models/spree/adjustment_reason_spec.rb
|
|
@@ -1038,7 +1042,6 @@ files:
|
|
|
1038
1042
|
- spec/models/spree/order/risk_assessment_spec.rb
|
|
1039
1043
|
- spec/models/spree/order/state_machine_spec.rb
|
|
1040
1044
|
- spec/models/spree/order/totals_spec.rb
|
|
1041
|
-
- spec/models/spree/order/updating_spec.rb
|
|
1042
1045
|
- spec/models/spree/order/validations_spec.rb
|
|
1043
1046
|
- spec/models/spree/order_cancellations_spec.rb
|
|
1044
1047
|
- spec/models/spree/order_capturing_spec.rb
|
|
@@ -1186,7 +1189,10 @@ files:
|
|
|
1186
1189
|
- spec/models/spree/tax_rate_spec.rb
|
|
1187
1190
|
- spec/models/spree/taxon_spec.rb
|
|
1188
1191
|
- spec/models/spree/taxonomy_spec.rb
|
|
1192
|
+
- spec/models/spree/taxons/paperclip_attachment_spec.rb
|
|
1189
1193
|
- spec/models/spree/unit_cancel_spec.rb
|
|
1194
|
+
- spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb
|
|
1195
|
+
- spec/models/spree/user_last_url_storer_spec.rb
|
|
1190
1196
|
- spec/models/spree/user_spec.rb
|
|
1191
1197
|
- spec/models/spree/validations/db_maximum_length_validator_spec.rb
|
|
1192
1198
|
- spec/models/spree/variant/price_selector_spec.rb
|
|
@@ -1215,7 +1221,7 @@ homepage: http://solidus.io
|
|
|
1215
1221
|
licenses:
|
|
1216
1222
|
- BSD-3-Clause
|
|
1217
1223
|
metadata: {}
|
|
1218
|
-
post_install_message:
|
|
1224
|
+
post_install_message:
|
|
1219
1225
|
rdoc_options: []
|
|
1220
1226
|
require_paths:
|
|
1221
1227
|
- lib
|
|
@@ -1223,15 +1229,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
1223
1229
|
requirements:
|
|
1224
1230
|
- - ">="
|
|
1225
1231
|
- !ruby/object:Gem::Version
|
|
1226
|
-
version: 2.
|
|
1232
|
+
version: 2.4.0
|
|
1227
1233
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1228
1234
|
requirements:
|
|
1229
1235
|
- - ">="
|
|
1230
1236
|
- !ruby/object:Gem::Version
|
|
1231
1237
|
version: 1.8.23
|
|
1232
1238
|
requirements: []
|
|
1233
|
-
rubygems_version: 3.
|
|
1234
|
-
signing_key:
|
|
1239
|
+
rubygems_version: 3.1.4
|
|
1240
|
+
signing_key:
|
|
1235
1241
|
specification_version: 4
|
|
1236
1242
|
summary: Essential models, mailers, and classes for the Solidus e-commerce project.
|
|
1237
1243
|
test_files: []
|