solidus_core 2.7.4 → 2.8.0

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.
Files changed (136) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -17
  3. data/app/assets/images/logo/solidus.svg +18 -0
  4. data/app/assets/javascripts/spree.js.erb +2 -2
  5. data/app/helpers/spree/base_helper.rb +1 -7
  6. data/app/helpers/spree/taxons_helper.rb +2 -2
  7. data/app/mailers/spree/carton_mailer.rb +4 -4
  8. data/app/models/spree/calculator/flat_percent_item_total.rb +4 -1
  9. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +5 -3
  10. data/app/models/spree/calculator/tiered_percent.rb +2 -1
  11. data/app/models/spree/country.rb +8 -0
  12. data/app/models/spree/fulfilment_changer.rb +9 -1
  13. data/app/models/spree/gallery/product_gallery.rb +18 -0
  14. data/app/models/spree/gallery/variant_gallery.rb +21 -0
  15. data/app/models/spree/image.rb +11 -1
  16. data/app/models/spree/inventory_unit.rb +8 -0
  17. data/app/models/spree/line_item.rb +1 -1
  18. data/app/models/spree/order.rb +0 -4
  19. data/app/models/spree/order_cancellations.rb +31 -10
  20. data/app/models/spree/order_contents.rb +1 -5
  21. data/app/models/spree/order_inventory.rb +5 -4
  22. data/app/models/spree/product.rb +9 -0
  23. data/app/models/spree/product/scopes.rb +3 -4
  24. data/app/models/spree/promotion.rb +1 -6
  25. data/app/models/spree/promotion_handler/coupon.rb +15 -0
  26. data/app/models/spree/reimbursement.rb +21 -6
  27. data/app/models/spree/reimbursement_performer.rb +12 -6
  28. data/app/models/spree/reimbursement_type.rb +1 -1
  29. data/app/models/spree/reimbursement_type/credit.rb +5 -2
  30. data/app/models/spree/reimbursement_type/exchange.rb +1 -1
  31. data/app/models/spree/reimbursement_type/original_payment.rb +1 -1
  32. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +6 -6
  33. data/app/models/spree/reimbursement_type/store_credit.rb +18 -3
  34. data/app/models/spree/shipment.rb +11 -11
  35. data/app/models/spree/stock/allocator/base.rb +19 -0
  36. data/app/models/spree/stock/allocator/on_hand_first.rb +42 -0
  37. data/app/models/spree/stock/content_item.rb +1 -1
  38. data/app/models/spree/stock/inventory_units_finalizer.rb +47 -0
  39. data/app/models/spree/stock/location_sorter/base.rb +38 -0
  40. data/app/models/spree/stock/location_sorter/default_first.rb +15 -0
  41. data/app/models/spree/stock/location_sorter/unsorted.rb +14 -0
  42. data/app/models/spree/stock/simple_coordinator.rb +24 -10
  43. data/app/models/spree/stock_location.rb +2 -0
  44. data/app/models/spree/store_credit.rb +4 -12
  45. data/app/models/spree/store_credit_event.rb +2 -2
  46. data/app/models/spree/store_credit_reason.rb +11 -0
  47. data/app/models/spree/taxon.rb +8 -3
  48. data/app/models/spree/unit_cancel.rb +3 -0
  49. data/app/models/spree/variant.rb +18 -7
  50. data/config/initializers/money.rb +5 -0
  51. data/config/locales/en.yml +661 -527
  52. data/db/default/spree/store_credit.rb +1 -1
  53. data/db/default/spree/zones.rb +2 -2
  54. data/db/migrate/20180710170104_create_spree_store_credit_reasons_table.rb +42 -0
  55. data/db/migrate/20190106184413_remove_code_from_spree_promotions.rb +41 -0
  56. data/lib/generators/spree/dummy/templates/rails/test.rb +0 -3
  57. data/lib/generators/spree/install/install_generator.rb +2 -2
  58. data/lib/generators/spree/install/templates/config/initializers/spree.rb.tt +2 -2
  59. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +1 -1
  60. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +1 -1
  61. data/lib/solidus/migrations/promotions_with_code_handlers.rb +66 -0
  62. data/lib/spree/app_configuration.rb +20 -4
  63. data/lib/spree/core/controller_helpers/common.rb +1 -1
  64. data/lib/spree/core/stock_configuration.rb +12 -0
  65. data/lib/spree/core/version.rb +1 -1
  66. data/lib/spree/i18n.rb +4 -0
  67. data/lib/spree/money.rb +13 -11
  68. data/lib/spree/permission_sets.rb +0 -1
  69. data/lib/spree/permission_sets/promotion_management.rb +1 -0
  70. data/lib/spree/testing_support/dummy_app.rb +13 -2
  71. data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/backend/all.js +1 -1
  72. data/lib/spree/testing_support/dummy_app/assets/javascripts/spree/frontend/all.js +1 -1
  73. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +5 -5
  74. data/lib/spree/testing_support/factories/{store_credit_update_reason_factory.rb → store_credit_reason_factory.rb} +1 -1
  75. data/lib/spree/testing_support/partial_double_verification.rb +13 -0
  76. data/lib/spree/testing_support/shared_examples/gallery.rb +18 -0
  77. data/spec/helpers/products_helper_spec.rb +10 -8
  78. data/spec/helpers/taxons_helper_spec.rb +3 -1
  79. data/spec/lib/i18n_spec.rb +5 -0
  80. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +6 -2
  81. data/spec/lib/spree/core/stock_configuration_spec.rb +19 -0
  82. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +14 -0
  83. data/spec/lib/spree/money_spec.rb +12 -13
  84. data/spec/migrate/20190106184413_remove_code_from_spree_promotions_spec.rb +136 -0
  85. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +10 -1
  86. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +18 -6
  87. data/spec/models/spree/calculator/tiered_percent_spec.rb +7 -1
  88. data/spec/models/spree/country_spec.rb +76 -0
  89. data/spec/models/spree/customer_return_spec.rb +2 -1
  90. data/spec/models/spree/fulfilment_changer_spec.rb +33 -0
  91. data/spec/models/spree/gallery/product_gallery_spec.rb +21 -0
  92. data/spec/models/spree/gallery/variant_gallery_spec.rb +21 -0
  93. data/spec/models/spree/inventory_unit_spec.rb +1 -4
  94. data/spec/models/spree/order/checkout_spec.rb +6 -6
  95. data/spec/models/spree/order/finalizing_spec.rb +1 -20
  96. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +2 -1
  97. data/spec/models/spree/order/updating_spec.rb +1 -1
  98. data/spec/models/spree/order_cancellations_spec.rb +55 -14
  99. data/spec/models/spree/order_inventory_spec.rb +12 -5
  100. data/spec/models/spree/order_merger_spec.rb +6 -3
  101. data/spec/models/spree/order_spec.rb +3 -7
  102. data/spec/models/spree/order_updater_spec.rb +3 -8
  103. data/spec/models/spree/payment/cancellation_spec.rb +4 -3
  104. data/spec/models/spree/payment_spec.rb +1 -17
  105. data/spec/models/spree/permission_sets/promotion_management_spec.rb +2 -0
  106. data/spec/models/spree/product_spec.rb +10 -1
  107. data/spec/models/spree/promotion_handler/coupon_spec.rb +62 -8
  108. data/spec/models/spree/promotion_spec.rb +24 -10
  109. data/spec/models/spree/refund_spec.rb +2 -1
  110. data/spec/models/spree/reimbursement_performer_spec.rb +5 -4
  111. data/spec/models/spree/reimbursement_spec.rb +26 -2
  112. data/spec/models/spree/reimbursement_type/credit_spec.rb +2 -1
  113. data/spec/models/spree/reimbursement_type/exchange_spec.rb +2 -1
  114. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +2 -1
  115. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +14 -2
  116. data/spec/models/spree/return_item_spec.rb +1 -1
  117. data/spec/models/spree/shipment_spec.rb +20 -13
  118. data/spec/models/spree/shipping_calculator_spec.rb +13 -3
  119. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +146 -0
  120. data/spec/models/spree/stock/content_item_spec.rb +70 -0
  121. data/spec/models/spree/stock/estimator_spec.rb +5 -2
  122. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +34 -0
  123. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +20 -0
  124. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +19 -0
  125. data/spec/models/spree/stock/simple_coordinator_spec.rb +17 -0
  126. data/spec/models/spree/store_credit_event_spec.rb +12 -12
  127. data/spec/models/spree/store_credit_spec.rb +2 -2
  128. data/spec/models/spree/unit_cancel_spec.rb +20 -1
  129. data/spec/models/spree/variant_spec.rb +46 -24
  130. data/spec/spec_helper.rb +1 -0
  131. metadata +30 -9
  132. data/.yardopts +0 -1
  133. data/app/models/spree/store_credit_update_reason.rb +0 -4
  134. data/lib/spree/permission_sets/report_display.rb +0 -11
  135. data/spec/lib/spree/core/testing_support/factories/store_credit_update_reason_factory_spec.rb +0 -14
  136. data/spec/models/spree/permission_sets/report_display_spec.rb +0 -25
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+
5
+ module Spree
6
+ module Stock
7
+ module LocationSorter
8
+ RSpec.describe DefaultFirst, type: :model do
9
+ subject { described_class.new(stock_locations) }
10
+
11
+ let(:stock_locations) { OpenStruct.new(order_default: sorted_stock_locations) }
12
+ let(:sorted_stock_locations) { instance_double('Spree::StockLocation::ActiveRecord_Relation') }
13
+
14
+ it 'returns the default stock location first' do
15
+ expect(subject.sort).to eq(sorted_stock_locations)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+
5
+ module Spree
6
+ module Stock
7
+ module LocationSorter
8
+ RSpec.describe Unsorted, type: :model do
9
+ subject { described_class.new(stock_locations) }
10
+
11
+ let(:stock_locations) { instance_double('Spree::StockLocation::ActiveRecord_Relation') }
12
+
13
+ it 'returns the original stock locations unsorted' do
14
+ expect(subject.sort).to eq(stock_locations)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -15,6 +15,16 @@ module Spree
15
15
  subject.shipments
16
16
  end
17
17
 
18
+ it 'uses the configured stock location sorter' do
19
+ expect(Spree::Config.stock).to receive(:location_sorter_class).and_call_original
20
+ subject.shipments
21
+ end
22
+
23
+ it 'uses the pluggable allocator class' do
24
+ expect(Spree::Config.stock).to receive(:allocator_class).and_call_original
25
+ subject.shipments
26
+ end
27
+
18
28
  it 'builds shipments' do
19
29
  expect(subject.shipments.size).to eq(1)
20
30
  end
@@ -41,6 +51,13 @@ module Spree
41
51
  end
42
52
  end
43
53
 
54
+ describe "#allocate_inventory" do
55
+ it 'is deprecated' do
56
+ expect(Spree::Deprecation).to receive(:warn)
57
+ subject.send :allocate_inventory, subject.instance_variable_get(:@availability).on_hand_by_stock_location_id
58
+ end
59
+ end
60
+
44
61
  # regression spec
45
62
  context "when there is one unit that has stock in a stock location that a non-tracked unit has no stock item in" do
46
63
  let!(:stock_location_1) { create(:stock_location, propagate_all_variants: false, active: true) }
@@ -34,11 +34,11 @@ RSpec.describe Spree::StoreCreditEvent do
34
34
  end
35
35
  end
36
36
 
37
- describe "update reason validation" do
37
+ describe "update store credit reason validation" do
38
38
  subject { event.valid? }
39
39
 
40
40
  context "adjustment event" do
41
- context "has an update reason" do
41
+ context "has a store credit reason" do
42
42
  let(:event) { build(:store_credit_adjustment_event) }
43
43
 
44
44
  it "returns true" do
@@ -46,22 +46,22 @@ RSpec.describe Spree::StoreCreditEvent do
46
46
  end
47
47
  end
48
48
 
49
- context "doesn't have an update reason" do
50
- let(:event) { build(:store_credit_adjustment_event, update_reason: nil) }
49
+ context "doesn't have a store credit reason" do
50
+ let(:event) { build(:store_credit_adjustment_event, store_credit_reason: nil) }
51
51
 
52
52
  it "returns false" do
53
53
  expect(subject).to eq false
54
54
  end
55
55
 
56
- it "adds an error message indicating the update reason is missing" do
56
+ it "adds an error message indicating the store credit reason is missing" do
57
57
  subject
58
- expect(event.errors.full_messages).to match ["Update reason can't be blank"]
58
+ expect(event.errors.full_messages).to match ["Store credit reason can't be blank"]
59
59
  end
60
60
  end
61
61
  end
62
62
 
63
63
  context "invalidate event" do
64
- context "has an update reason" do
64
+ context "has a store credit reason" do
65
65
  let(:event) { build(:store_credit_invalidate_event) }
66
66
 
67
67
  it "returns true" do
@@ -69,21 +69,21 @@ RSpec.describe Spree::StoreCreditEvent do
69
69
  end
70
70
  end
71
71
 
72
- context "doesn't have an update reason" do
73
- let(:event) { build(:store_credit_invalidate_event, update_reason: nil) }
72
+ context "doesn't have a store credit reason" do
73
+ let(:event) { build(:store_credit_invalidate_event, store_credit_reason: nil) }
74
74
 
75
75
  it "returns false" do
76
76
  expect(subject).to eq false
77
77
  end
78
78
 
79
- it "adds an error message indicating the update reason is missing" do
79
+ it "adds an error message indicating the store credit reason is missing" do
80
80
  subject
81
- expect(event.errors.full_messages).to match ["Update reason can't be blank"]
81
+ expect(event.errors.full_messages).to match ["Store credit reason can't be blank"]
82
82
  end
83
83
  end
84
84
  end
85
85
 
86
- context "event doesn't require an update reason" do
86
+ context "event doesn't require a store credit reason" do
87
87
  let(:event) { build(:store_credit_auth_event) }
88
88
 
89
89
  it "returns true" do
@@ -809,7 +809,7 @@ RSpec.describe Spree::StoreCredit do
809
809
 
810
810
  describe "#update_amount" do
811
811
  let(:invalidation_user) { create(:user) }
812
- let(:invalidation_reason) { create(:store_credit_update_reason) }
812
+ let(:invalidation_reason) { create(:store_credit_reason) }
813
813
 
814
814
  subject { store_credit.update_amount(amount, invalidation_reason, invalidation_user) }
815
815
 
@@ -852,7 +852,7 @@ RSpec.describe Spree::StoreCredit do
852
852
 
853
853
  describe "#invalidate" do
854
854
  let(:invalidation_user) { create(:user) }
855
- let(:invalidation_reason) { create(:store_credit_update_reason) }
855
+ let(:invalidation_reason) { create(:store_credit_reason) }
856
856
 
857
857
  before do
858
858
  store_credit.save!
@@ -3,7 +3,7 @@
3
3
  require 'rails_helper'
4
4
 
5
5
  RSpec.describe Spree::UnitCancel do
6
- let(:unit_cancel) { Spree::UnitCancel.create!(inventory_unit: inventory_unit, reason: Spree::UnitCancel::SHORT_SHIP) }
6
+ let(:unit_cancel) { described_class.create!(inventory_unit: inventory_unit, reason: described_class::SHORT_SHIP) }
7
7
  let(:inventory_unit) { create(:inventory_unit) }
8
8
 
9
9
  describe '#adjust!' do
@@ -57,5 +57,24 @@ RSpec.describe Spree::UnitCancel do
57
57
  expect { subject }.to raise_error RuntimeError, "Adjustable does not match line item"
58
58
  end
59
59
  end
60
+
61
+ context "multiple inventory units" do
62
+ let(:quantity) { 4 }
63
+ let(:order) { create(:order_with_line_items, line_items_attributes: [{ quantity: quantity }]) }
64
+ let(:line_item) { order.line_items.first }
65
+ let(:inventory_units) { line_item.inventory_units }
66
+
67
+ it "has the right amount of inventory units" do
68
+ expect(inventory_units.size).to eq quantity
69
+ end
70
+
71
+ it "properly creates adjustments for line_item" do
72
+ inventory_units.each do |inventory_unit|
73
+ described_class.create!(inventory_unit: inventory_unit, reason: described_class::SHORT_SHIP).adjust!
74
+ inventory_unit.cancel!
75
+ end
76
+ expect(line_item.reload.total.to_d).to eq(0)
77
+ end
78
+ end
60
79
  end
61
80
  end
@@ -3,6 +3,8 @@
3
3
  require 'rails_helper'
4
4
 
5
5
  RSpec.describe Spree::Variant, type: :model do
6
+ it { is_expected.to be_invalid }
7
+
6
8
  let!(:variant) { create(:variant) }
7
9
 
8
10
  it_behaves_like 'default_price'
@@ -22,6 +24,8 @@ RSpec.describe Spree::Variant, type: :model do
22
24
  expect(variant).to be_valid
23
25
  variant.product = nil
24
26
  expect(variant).to be_invalid
27
+ variant.price = nil
28
+ expect(variant).to be_invalid
25
29
  end
26
30
  end
27
31
 
@@ -788,30 +792,6 @@ RSpec.describe Spree::Variant, type: :model do
788
792
  end
789
793
  end
790
794
 
791
- describe "#display_image" do
792
- subject { variant.display_image }
793
-
794
- context "variant has associated images" do
795
- let(:attachment) { File.open(File.expand_path('../../fixtures/thinking-cat.jpg', __dir__)) }
796
- let(:image_params) { { viewable_id: variant.id, viewable_type: 'Spree::Variant', attachment: attachment, alt: "position 1", position: 1 } }
797
- let!(:first_image) { Spree::Image.create(image_params) }
798
- let!(:second_image) { image_params.merge(alt: "position 2", position: 2) }
799
-
800
- it "returns the first image" do
801
- expect(subject).to eq first_image
802
- end
803
- end
804
-
805
- context "variant does not have any associated images" do
806
- it "returns an image" do
807
- expect(subject).to be_a(Spree::Image)
808
- end
809
- it "returns unpersisted record" do
810
- expect(subject).to be_new_record
811
- end
812
- end
813
- end
814
-
815
795
  describe "#variant_properties" do
816
796
  let(:option_value_1) { create(:option_value) }
817
797
  let(:option_value_2) { create(:option_value) }
@@ -834,4 +814,46 @@ RSpec.describe Spree::Variant, type: :model do
834
814
  end
835
815
  end
836
816
  end
817
+
818
+ describe "#gallery" do
819
+ let(:variant) { build_stubbed(:variant) }
820
+ subject { variant.gallery }
821
+
822
+ it "responds to #images" do
823
+ expect(subject).to respond_to(:images)
824
+ end
825
+
826
+ context "when variant.images is empty" do
827
+ let(:product) { create(:product) }
828
+ let(:variant) { create(:variant, product: product) }
829
+
830
+ it "fallbacks to variant.product.master.images" do
831
+ product.master.images = [create(:image)]
832
+
833
+ expect(product.master).not_to eq variant
834
+
835
+ expect(variant.gallery.images).to eq product.master.images
836
+ end
837
+
838
+ context "and variant.product.master.images is also empty" do
839
+ it "returns Spree::Image.none" do
840
+ expect(product.master).not_to eq variant
841
+ expect(product.master.images.presence).to be nil
842
+
843
+ expect(variant.gallery.images).to eq Spree::Image.none
844
+ end
845
+ end
846
+
847
+ context "and is master" do
848
+ it "returns Spree::Image.none" do
849
+ variant = product.master
850
+
851
+ expect(variant.is_master?).to be true
852
+ expect(variant.images.presence).to be nil
853
+
854
+ expect(variant.gallery.images).to eq Spree::Image.none
855
+ end
856
+ end
857
+ end
858
+ end
837
859
  end
data/spec/spec_helper.rb CHANGED
@@ -7,6 +7,7 @@ end
7
7
 
8
8
  require 'rspec/core'
9
9
 
10
+ require 'spree/testing_support/partial_double_verification'
10
11
  require 'spree/testing_support/preferences'
11
12
  require 'spree/config'
12
13
  require 'with_model'
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.7.4
4
+ version: 2.8.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: 2019-10-23 00:00:00.000000000 Z
11
+ date: 2019-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionmailer
@@ -370,11 +370,11 @@ executables: []
370
370
  extensions: []
371
371
  extra_rdoc_files: []
372
372
  files:
373
- - ".yardopts"
374
373
  - LICENSE
375
374
  - README.md
376
375
  - Rakefile
377
376
  - app/assets/config/solidus_core_manifest.js
377
+ - app/assets/images/logo/solidus.svg
378
378
  - app/assets/images/logo/solidus_logo.png
379
379
  - app/assets/images/noimage/large.png
380
380
  - app/assets/images/noimage/mini.png
@@ -439,6 +439,8 @@ files:
439
439
  - app/models/spree/distributed_amounts_handler.rb
440
440
  - app/models/spree/exchange.rb
441
441
  - app/models/spree/fulfilment_changer.rb
442
+ - app/models/spree/gallery/product_gallery.rb
443
+ - app/models/spree/gallery/variant_gallery.rb
442
444
  - app/models/spree/gateway.rb
443
445
  - app/models/spree/gateway/bogus.rb
444
446
  - app/models/spree/gateway/bogus_simple.rb
@@ -560,13 +562,19 @@ files:
560
562
  - app/models/spree/shipping_rate_tax.rb
561
563
  - app/models/spree/state.rb
562
564
  - app/models/spree/state_change.rb
565
+ - app/models/spree/stock/allocator/base.rb
566
+ - app/models/spree/stock/allocator/on_hand_first.rb
563
567
  - app/models/spree/stock/availability.rb
564
568
  - app/models/spree/stock/availability_validator.rb
565
569
  - app/models/spree/stock/content_item.rb
566
570
  - app/models/spree/stock/differentiator.rb
567
571
  - app/models/spree/stock/estimator.rb
568
572
  - app/models/spree/stock/inventory_unit_builder.rb
573
+ - app/models/spree/stock/inventory_units_finalizer.rb
569
574
  - app/models/spree/stock/inventory_validator.rb
575
+ - app/models/spree/stock/location_sorter/base.rb
576
+ - app/models/spree/stock/location_sorter/default_first.rb
577
+ - app/models/spree/stock/location_sorter/unsorted.rb
570
578
  - app/models/spree/stock/package.rb
571
579
  - app/models/spree/stock/quantifier.rb
572
580
  - app/models/spree/stock/shipping_rate_selector.rb
@@ -585,8 +593,8 @@ files:
585
593
  - app/models/spree/store_credit.rb
586
594
  - app/models/spree/store_credit_category.rb
587
595
  - app/models/spree/store_credit_event.rb
596
+ - app/models/spree/store_credit_reason.rb
588
597
  - app/models/spree/store_credit_type.rb
589
- - app/models/spree/store_credit_update_reason.rb
590
598
  - app/models/spree/store_payment_method.rb
591
599
  - app/models/spree/store_selector/by_server_name.rb
592
600
  - app/models/spree/store_selector/legacy.rb
@@ -643,6 +651,7 @@ files:
643
651
  - app/views/spree/test_mailer/test_email.text.erb
644
652
  - config/initializers/assets.rb
645
653
  - config/initializers/friendly_id.rb
654
+ - config/initializers/money.rb
646
655
  - config/locales/en.yml
647
656
  - db/default/spree/countries.rb
648
657
  - db/default/spree/refund_reasons.rb
@@ -676,6 +685,8 @@ files:
676
685
  - db/migrate/20180313220213_add_available_locales_to_stores.rb
677
686
  - db/migrate/20180322142651_add_amount_remaining_to_store_credit_events.rb
678
687
  - db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb
688
+ - db/migrate/20180710170104_create_spree_store_credit_reasons_table.rb
689
+ - db/migrate/20190106184413_remove_code_from_spree_promotions.rb
679
690
  - db/seeds.rb
680
691
  - lib/generators/spree/custom_user/custom_user_generator.rb
681
692
  - lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt
@@ -693,6 +704,7 @@ files:
693
704
  - lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js
694
705
  - lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css
695
706
  - lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css
707
+ - lib/solidus/migrations/promotions_with_code_handlers.rb
696
708
  - lib/solidus/migrations/rename_gateways.rb
697
709
  - lib/solidus_core.rb
698
710
  - lib/spree/app_configuration.rb
@@ -747,7 +759,6 @@ files:
747
759
  - lib/spree/permission_sets/product_management.rb
748
760
  - lib/spree/permission_sets/promotion_display.rb
749
761
  - lib/spree/permission_sets/promotion_management.rb
750
- - lib/spree/permission_sets/report_display.rb
751
762
  - lib/spree/permission_sets/restricted_stock_display.rb
752
763
  - lib/spree/permission_sets/restricted_stock_management.rb
753
764
  - lib/spree/permission_sets/stock_display.rb
@@ -828,8 +839,8 @@ files:
828
839
  - lib/spree/testing_support/factories/store_credit_category_factory.rb
829
840
  - lib/spree/testing_support/factories/store_credit_event_factory.rb
830
841
  - lib/spree/testing_support/factories/store_credit_factory.rb
842
+ - lib/spree/testing_support/factories/store_credit_reason_factory.rb
831
843
  - lib/spree/testing_support/factories/store_credit_type_factory.rb
832
- - lib/spree/testing_support/factories/store_credit_update_reason_factory.rb
833
844
  - lib/spree/testing_support/factories/store_factory.rb
834
845
  - lib/spree/testing_support/factories/tax_category_factory.rb
835
846
  - lib/spree/testing_support/factories/tax_rate_factory.rb
@@ -843,8 +854,10 @@ files:
843
854
  - lib/spree/testing_support/factories/zone_factory.rb
844
855
  - lib/spree/testing_support/flash.rb
845
856
  - lib/spree/testing_support/order_walkthrough.rb
857
+ - lib/spree/testing_support/partial_double_verification.rb
846
858
  - lib/spree/testing_support/preferences.rb
847
859
  - lib/spree/testing_support/sequences.rb
860
+ - lib/spree/testing_support/shared_examples/gallery.rb
848
861
  - lib/spree/testing_support/url_helpers.rb
849
862
  - lib/spree_core.rb
850
863
  - lib/tasks/core.rake
@@ -923,8 +936,8 @@ files:
923
936
  - spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb
924
937
  - spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb
925
938
  - spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb
939
+ - spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb
926
940
  - spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb
927
- - spec/lib/spree/core/testing_support/factories/store_credit_update_reason_factory_spec.rb
928
941
  - spec/lib/spree/core/testing_support/factories/store_factory_spec.rb
929
942
  - spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb
930
943
  - spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb
@@ -951,6 +964,7 @@ files:
951
964
  - spec/mailers/promotion_code_batch_mailer_spec.rb
952
965
  - spec/mailers/reimbursement_mailer_spec.rb
953
966
  - spec/mailers/test_mailer_spec.rb
967
+ - spec/migrate/20190106184413_remove_code_from_spree_promotions_spec.rb
954
968
  - spec/models/spree/ability_spec.rb
955
969
  - spec/models/spree/address_spec.rb
956
970
  - spec/models/spree/adjustment_reason_spec.rb
@@ -987,6 +1001,8 @@ files:
987
1001
  - spec/models/spree/distributed_amounts_handler_spec.rb
988
1002
  - spec/models/spree/exchange_spec.rb
989
1003
  - spec/models/spree/fulfilment_changer_spec.rb
1004
+ - spec/models/spree/gallery/product_gallery_spec.rb
1005
+ - spec/models/spree/gallery/variant_gallery_spec.rb
990
1006
  - spec/models/spree/gateway/bogus_simple.rb
991
1007
  - spec/models/spree/gateway/bogus_spec.rb
992
1008
  - spec/models/spree/gateway_spec.rb
@@ -1039,7 +1055,6 @@ files:
1039
1055
  - spec/models/spree/permission_sets/product_management_spec.rb
1040
1056
  - spec/models/spree/permission_sets/promotion_display_spec.rb
1041
1057
  - spec/models/spree/permission_sets/promotion_management_spec.rb
1042
- - spec/models/spree/permission_sets/report_display_spec.rb
1043
1058
  - spec/models/spree/permission_sets/restricted_stock_display_spec.rb
1044
1059
  - spec/models/spree/permission_sets/restricted_stock_management_spec.rb
1045
1060
  - spec/models/spree/permission_sets/stock_display_spec.rb
@@ -1115,11 +1130,16 @@ files:
1115
1130
  - spec/models/spree/shipping_rate_spec.rb
1116
1131
  - spec/models/spree/shipping_rate_tax_spec.rb
1117
1132
  - spec/models/spree/state_spec.rb
1133
+ - spec/models/spree/stock/allocator/on_hand_first_spec.rb
1118
1134
  - spec/models/spree/stock/availability_spec.rb
1119
1135
  - spec/models/spree/stock/availability_validator_spec.rb
1136
+ - spec/models/spree/stock/content_item_spec.rb
1120
1137
  - spec/models/spree/stock/differentiator_spec.rb
1121
1138
  - spec/models/spree/stock/estimator_spec.rb
1122
1139
  - spec/models/spree/stock/inventory_unit_builder_spec.rb
1140
+ - spec/models/spree/stock/inventory_units_finalizer_spec.rb
1141
+ - spec/models/spree/stock/location_sorter/default_first_spec.rb
1142
+ - spec/models/spree/stock/location_sorter/unsorted_spec.rb
1123
1143
  - spec/models/spree/stock/package_spec.rb
1124
1144
  - spec/models/spree/stock/quantifier_spec.rb
1125
1145
  - spec/models/spree/stock/shipping_rate_selector_spec.rb
@@ -1194,7 +1214,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1194
1214
  - !ruby/object:Gem::Version
1195
1215
  version: 1.8.23
1196
1216
  requirements: []
1197
- rubygems_version: 3.0.6
1217
+ rubyforge_project:
1218
+ rubygems_version: 2.7.3
1198
1219
  signing_key:
1199
1220
  specification_version: 4
1200
1221
  summary: Essential models, mailers, and classes for the Solidus e-commerce project.