solidus_core 1.1.4 → 1.2.0.beta1
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/assets/images/logo/solidus_logo.png +0 -0
- data/app/helpers/spree/base_helper.rb +2 -3
- data/app/models/concerns/spree/adjustment_source.rb +1 -1
- data/app/models/concerns/spree/default_price.rb +3 -1
- data/app/models/concerns/spree/named_type.rb +1 -1
- data/app/models/concerns/spree/user_methods.rb +10 -0
- data/app/models/spree/adjustment.rb +1 -1
- data/app/models/spree/adjustment_reason.rb +2 -4
- data/app/models/spree/app_configuration.rb +36 -0
- data/app/models/spree/base.rb +10 -1
- data/app/models/spree/calculator/tiered_percent.rb +2 -1
- data/app/models/spree/classification.rb +1 -1
- data/app/models/spree/country.rb +3 -3
- data/app/models/spree/credit_card.rb +2 -2
- data/app/models/spree/customer_return.rb +3 -4
- data/app/models/spree/inventory_unit.rb +13 -24
- data/app/models/spree/item_adjustments.rb +5 -5
- data/app/models/spree/line_item.rb +6 -15
- data/app/models/spree/log_entry.rb +1 -1
- data/app/models/spree/option_type.rb +4 -2
- data/app/models/spree/option_type_prototype.rb +6 -0
- data/app/models/spree/option_value.rb +1 -1
- data/app/models/spree/order.rb +18 -63
- data/app/models/spree/order/checkout.rb +4 -2
- data/app/models/spree/order_cancellations.rb +52 -1
- data/app/models/spree/order_contents.rb +1 -1
- data/app/models/spree/order_merger.rb +143 -0
- data/app/models/spree/order_shipping.rb +3 -3
- data/app/models/spree/order_update_attributes.rb +42 -0
- data/app/models/spree/order_updater.rb +1 -1
- data/app/models/spree/payment.rb +16 -10
- data/app/models/spree/payment_create.rb +68 -0
- data/app/models/spree/payment_method.rb +0 -1
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/price.rb +1 -8
- data/app/models/spree/product.rb +9 -44
- data/app/models/spree/product/scopes.rb +9 -7
- data/app/models/spree/promotion/rules/nth_order.rb +1 -1
- data/app/models/spree/promotion/rules/taxon.rb +2 -1
- data/app/models/spree/promotion_chooser.rb +1 -0
- data/app/models/spree/promotion_code.rb +1 -1
- data/app/models/spree/promotion_rule_taxon.rb +6 -0
- data/app/models/spree/property.rb +2 -1
- data/app/models/spree/property_prototype.rb +6 -0
- data/app/models/spree/prototype.rb +6 -2
- data/app/models/spree/reimbursement.rb +10 -0
- data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +1 -1
- data/app/models/spree/return_reason.rb +1 -7
- data/app/models/spree/role_user.rb +3 -5
- data/app/models/spree/shipment.rb +6 -11
- data/app/models/spree/shipping_method.rb +1 -7
- data/app/models/spree/shipping_rate.rb +3 -14
- data/app/models/spree/stock/coordinator.rb +48 -4
- data/app/models/spree/stock/estimator.rb +3 -6
- data/app/models/spree/stock/packer.rb +18 -2
- data/app/models/spree/stock/shipping_rate_selector.rb +16 -0
- data/app/models/spree/stock/shipping_rate_sorter.rb +16 -0
- data/app/models/spree/stock_item.rb +19 -15
- data/app/models/spree/stock_location.rb +2 -12
- data/app/models/spree/stock_transfer.rb +3 -3
- data/app/models/spree/store_credit.rb +2 -2
- data/app/models/spree/tax_category.rb +3 -2
- data/app/models/spree/tax_rate.rb +7 -14
- data/app/models/spree/taxon.rb +4 -1
- data/app/models/spree/taxonomy.rb +1 -1
- data/app/models/spree/transfer_item.rb +2 -2
- data/app/models/spree/unit_cancel.rb +2 -0
- data/app/models/spree/variant.rb +9 -14
- data/app/models/spree/zone.rb +6 -0
- data/app/models/spree/zone_member.rb +1 -4
- data/app/views/spree/order_mailer/cancel_email.text.erb +0 -0
- data/config/locales/en.yml +7 -5
- data/db/default/spree/countries.rb +1 -1
- data/db/default/spree/zones.rb +5 -11
- data/db/migrate/20130213191427_create_default_stock.rb +1 -1
- data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +1 -1
- data/db/migrate/20140309033438_create_store_from_preferences.rb +5 -2
- data/db/migrate/20141009204607_add_store_id_to_orders.rb +6 -2
- data/db/migrate/20141215235502_remove_extra_products_slug_index.rb +5 -0
- data/db/migrate/20141217215630_update_product_slug_index.rb +6 -0
- data/db/migrate/20150225205344_move_promotion_code_to_promotion_code_value.rb +2 -2
- data/db/migrate/20150609093816_increase_scale_on_pre_tax_amounts.rb +10 -0
- data/db/migrate/20151117063249_convert_habtm_to_hmt_for_properties_prototypes.rb +17 -0
- data/db/migrate/20151124062500_convert_habtm_to_hmt_for_option_type_prototypes.rb +17 -0
- data/db/migrate/20151126063028_convert_habtm_to_hmt_for_taxons_promotion_rules.rb +15 -0
- data/db/migrate/20151219020209_add_stock_item_unique_index.rb +9 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +1 -1
- data/lib/generators/spree/dummy/templates/rails/database.yml +1 -1
- data/lib/generators/spree/install/templates/config/initializers/spree.rb +25 -1
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +3 -0
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +3 -0
- data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css +3 -0
- data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +3 -0
- data/lib/spree/core/controller_helpers/common.rb +1 -1
- data/lib/spree/core/controller_helpers/order.rb +1 -1
- data/lib/spree/core/controller_helpers/payment_parameters.rb +104 -5
- data/lib/spree/core/engine.rb +3 -2
- data/lib/spree/core/stock_configuration.rb +11 -0
- data/lib/spree/core/unreturned_item_charger.rb +4 -4
- data/lib/spree/core/version.rb +9 -1
- data/lib/spree/permission_sets/restricted_stock_transfer_management.rb +15 -24
- data/lib/spree/permitted_attributes.rb +3 -1
- data/lib/spree/testing_support/capybara_ext.rb +14 -40
- data/lib/spree/testing_support/factories.rb +0 -15
- data/lib/spree/testing_support/factories/address_factory.rb +3 -0
- data/lib/spree/testing_support/factories/adjustment_factory.rb +9 -1
- data/lib/spree/testing_support/factories/carton_factory.rb +4 -1
- data/lib/spree/testing_support/factories/customer_return_factory.rb +4 -0
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +5 -0
- data/lib/spree/testing_support/factories/line_item_factory.rb +3 -0
- data/lib/spree/testing_support/factories/option_type_factory.rb +6 -0
- data/lib/spree/testing_support/factories/{options_factory.rb → option_value_factory.rb} +0 -5
- data/lib/spree/testing_support/factories/order_factory.rb +13 -3
- data/lib/spree/testing_support/factories/order_promotion_factory.rb +3 -0
- data/lib/spree/testing_support/factories/payment_factory.rb +13 -5
- data/lib/spree/testing_support/factories/price_factory.rb +2 -0
- data/lib/spree/testing_support/factories/product_factory.rb +7 -1
- data/lib/spree/testing_support/factories/product_option_type_factory.rb +3 -0
- data/lib/spree/testing_support/factories/product_property_factory.rb +3 -0
- data/lib/spree/testing_support/factories/promotion_code_factory.rb +3 -0
- data/lib/spree/testing_support/factories/promotion_factory.rb +3 -0
- data/lib/spree/testing_support/factories/prototype_factory.rb +2 -0
- data/lib/spree/testing_support/factories/refund_factory.rb +10 -5
- data/lib/spree/testing_support/factories/refund_reason_factory.rb +5 -0
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +2 -0
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +4 -4
- data/lib/spree/testing_support/factories/return_item_factory.rb +4 -0
- data/lib/spree/testing_support/factories/return_reason_factory.rb +5 -0
- data/lib/spree/testing_support/factories/shipment_factory.rb +6 -1
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +22 -10
- data/lib/spree/testing_support/factories/shipping_rate_factory.rb +9 -0
- data/lib/spree/testing_support/factories/state_factory.rb +2 -0
- data/lib/spree/testing_support/factories/stock_item_factory.rb +4 -1
- data/lib/spree/testing_support/factories/stock_location_factory.rb +8 -0
- data/lib/spree/testing_support/factories/stock_movement_factory.rb +2 -0
- data/lib/spree/testing_support/factories/{stock_factory.rb → stock_package_factory.rb} +5 -10
- data/lib/spree/testing_support/factories/stock_packer_factory.rb +13 -0
- data/lib/spree/testing_support/factories/stock_transfer_factory.rb +2 -2
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +4 -1
- data/lib/spree/testing_support/factories/store_credit_factory.rb +10 -6
- data/lib/spree/testing_support/factories/tax_category_factory.rb +2 -0
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +4 -0
- data/lib/spree/testing_support/factories/taxon_factory.rb +2 -0
- data/lib/spree/testing_support/factories/user_factory.rb +6 -2
- data/lib/spree/testing_support/factories/variant_factory.rb +5 -0
- data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +3 -0
- data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +4 -0
- data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +3 -0
- data/lib/spree/testing_support/factories/zone_factory.rb +6 -0
- data/lib/spree/testing_support/sequences.rb +9 -0
- data/lib/tasks/exchanges.rake +4 -3
- data/lib/tasks/migrations/copy_shipped_shipments_to_cartons.rake +2 -2
- data/solidus_core.gemspec +4 -5
- data/spec/helpers/base_helper_spec.rb +6 -6
- data/spec/helpers/order_helper_spec.rb +1 -1
- data/spec/helpers/products_helper_spec.rb +2 -2
- data/spec/helpers/taxons_helper_spec.rb +1 -1
- data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +107 -7
- data/spec/lib/spree/core/importer/order_spec.rb +1 -1
- data/spec/lib/spree/core/stock_configuration_spec.rb +16 -0
- data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +24 -0
- data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +18 -0
- data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +42 -0
- data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +28 -0
- data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +49 -0
- data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +24 -0
- data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +30 -0
- data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +30 -0
- data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +30 -0
- data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/prototype_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +18 -0
- data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +18 -0
- data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +28 -0
- data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +24 -0
- data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +26 -0
- data/spec/lib/spree/core/testing_support/factories/stock_packer_factory_spec.rb +16 -0
- data/spec/lib/spree/core/testing_support/factories/stock_transfer_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +42 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +18 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_update_reason_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/tracker_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +22 -0
- data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +36 -0
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +18 -0
- data/spec/lib/spree/core/unreturned_item_charger_spec.rb +1 -1
- data/spec/lib/spree/core/version_spec.rb +17 -0
- data/spec/lib/spree/money_spec.rb +1 -1
- data/spec/mailers/carton_mailer_spec.rb +1 -1
- data/spec/mailers/order_mailer_spec.rb +1 -1
- data/spec/mailers/reimbursement_mailer_spec.rb +1 -3
- data/spec/mailers/test_mailer_spec.rb +1 -3
- data/spec/models/spree/address_spec.rb +4 -4
- data/spec/models/spree/adjustment_reason_spec.rb +1 -3
- data/spec/models/spree/app_configuration_spec.rb +4 -0
- data/spec/models/spree/calculator/price_sack_spec.rb +3 -3
- data/spec/models/spree/calculator/shipping/price_sack_spec.rb +3 -3
- data/spec/models/spree/calculator/tiered_percent_spec.rb +86 -10
- data/spec/models/spree/carton_spec.rb +3 -1
- data/spec/models/spree/classification_spec.rb +3 -3
- data/spec/models/spree/credit_card_spec.rb +16 -16
- data/spec/models/spree/customer_return_spec.rb +1 -1
- data/spec/models/spree/gateway/bogus_simple.rb +1 -1
- data/spec/models/spree/inventory_unit_spec.rb +3 -3
- data/spec/models/spree/item_adjustments_spec.rb +1 -1
- data/spec/models/spree/line_item_spec.rb +2 -2
- data/spec/models/spree/option_type_spec.rb +2 -2
- data/spec/models/spree/option_value_spec.rb +2 -2
- data/spec/models/spree/order/callbacks_spec.rb +1 -1
- data/spec/models/spree/order/checkout_spec.rb +16 -11
- data/spec/models/spree/order/payment_spec.rb +24 -22
- data/spec/models/spree/order/state_machine_spec.rb +1 -1
- data/spec/models/spree/order/validations_spec.rb +1 -1
- data/spec/models/spree/order_cancellations_spec.rb +63 -0
- data/spec/models/spree/order_contents_spec.rb +1 -1
- data/spec/models/spree/order_merger_spec.rb +133 -0
- data/spec/models/spree/order_spec.rb +39 -159
- data/spec/models/spree/order_update_attributes_spec.rb +82 -0
- data/spec/models/spree/order_updater_spec.rb +6 -4
- data/spec/models/spree/payment_create_spec.rb +131 -0
- data/spec/models/spree/payment_spec.rb +130 -48
- data/spec/models/spree/permission_sets/restricted_stock_transfer_management_spec.rb +91 -33
- data/spec/models/spree/product_filter_spec.rb +3 -3
- data/spec/models/spree/product_spec.rb +80 -26
- data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +1 -1
- data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +2 -2
- data/spec/models/spree/promotion/rules/nth_order_spec.rb +1 -1
- data/spec/models/spree/promotion/rules/user_spec.rb +2 -2
- data/spec/models/spree/promotion_handler/coupon_spec.rb +2 -2
- data/spec/models/spree/promotion_spec.rb +18 -18
- data/spec/models/spree/reimbursement_spec.rb +22 -0
- data/spec/models/spree/return_item_spec.rb +2 -2
- data/spec/models/spree/shipment_spec.rb +28 -12
- data/spec/models/spree/shipping_method_spec.rb +2 -2
- data/spec/models/spree/shipping_rate_spec.rb +3 -3
- data/spec/models/spree/stock/coordinator_spec.rb +5 -0
- data/spec/models/spree/stock/estimator_spec.rb +35 -1
- data/spec/models/spree/stock/package_spec.rb +1 -1
- data/spec/models/spree/stock/packer_spec.rb +2 -3
- data/spec/models/spree/stock/shipping_rate_selector_spec.rb +16 -0
- data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +16 -0
- data/spec/models/spree/stock_item_spec.rb +5 -7
- data/spec/models/spree/stock_location_spec.rb +5 -9
- data/spec/models/spree/stock_transfer_spec.rb +33 -13
- data/spec/models/spree/store_credit_event_spec.rb +1 -1
- data/spec/models/spree/store_credit_spec.rb +1 -1
- data/spec/models/spree/tax_rate_spec.rb +381 -120
- data/spec/models/spree/taxon_spec.rb +3 -3
- data/spec/models/spree/transfer_item_spec.rb +4 -4
- data/spec/models/spree/unit_cancel_spec.rb +1 -1
- data/spec/models/spree/variant_spec.rb +3 -3
- data/spec/models/spree/zone_spec.rb +35 -1
- data/spec/support/concerns/working_factories.rb +9 -0
- data/vendor/assets/javascripts/jquery-migrate-1.0.0.js +498 -0
- data/vendor/assets/javascripts/jquery.payment.js +231 -80
- metadata +103 -27
- data/app/models/spree/order/currency_updater.rb +0 -40
- data/spec/models/spree/order/currency_updater_spec.rb +0 -32
|
@@ -228,4 +228,26 @@ describe Spree::Reimbursement, type: :model do
|
|
|
228
228
|
expect(subject.customer_return).to eq customer_return
|
|
229
229
|
end
|
|
230
230
|
end
|
|
231
|
+
|
|
232
|
+
describe "#return_all" do
|
|
233
|
+
subject { reimbursement.return_all }
|
|
234
|
+
|
|
235
|
+
let!(:default_refund_reason) { Spree::RefundReason.find_or_create_by!(name: Spree::RefundReason::RETURN_PROCESSING_REASON, mutable: false) }
|
|
236
|
+
let(:order) { create(:shipped_order, line_items_count: 1) }
|
|
237
|
+
let(:inventory_unit) { order.inventory_units.first }
|
|
238
|
+
let(:return_item) { build(:return_item, inventory_unit: inventory_unit) }
|
|
239
|
+
let(:reimbursement) { build(:reimbursement, order: order, return_items: [return_item]) }
|
|
240
|
+
|
|
241
|
+
it "accepts all the return items" do
|
|
242
|
+
expect { subject }.to change { return_item.acceptance_status }.to "accepted"
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
it "persists the reimbursement" do
|
|
246
|
+
expect { subject }.to change { reimbursement.persisted? }.to true
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
it "performs a reimbursment" do
|
|
250
|
+
expect { subject }.to change { reimbursement.refunds.count }.by(1)
|
|
251
|
+
end
|
|
252
|
+
end
|
|
231
253
|
end
|
|
@@ -18,7 +18,7 @@ describe Spree::ReturnItem, :type => :model do
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
describe '#receive!' do
|
|
21
|
-
let(:now) { Time.
|
|
21
|
+
let(:now) { Time.current }
|
|
22
22
|
let(:order) { create(:shipped_order)}
|
|
23
23
|
let(:inventory_unit) { create(:inventory_unit, order: order,state: 'shipped') }
|
|
24
24
|
let!(:customer_return) { create(:customer_return_without_return_items, return_items: [return_item], stock_location_id: inventory_unit.shipment.stock_location_id) }
|
|
@@ -660,7 +660,7 @@ describe Spree::ReturnItem, :type => :model do
|
|
|
660
660
|
let(:old_reception_status) { 'cancelled' }
|
|
661
661
|
|
|
662
662
|
it 'succeeds' do
|
|
663
|
-
|
|
663
|
+
subject.save!
|
|
664
664
|
end
|
|
665
665
|
end
|
|
666
666
|
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
require 'benchmark'
|
|
3
3
|
|
|
4
|
-
describe Spree::Shipment, :
|
|
5
|
-
let(:stock_location) { create(:stock_location) }
|
|
4
|
+
describe Spree::Shipment, type: :model do
|
|
6
5
|
let(:order) { create(:order_ready_to_ship, line_items_count: 1) }
|
|
7
6
|
let(:shipping_method) { create(:shipping_method, name: "UPS") }
|
|
8
7
|
let(:stock_location) { create(:stock_location) }
|
|
@@ -33,11 +32,9 @@ describe Spree::Shipment, :type => :model do
|
|
|
33
32
|
end
|
|
34
33
|
end
|
|
35
34
|
|
|
36
|
-
# Regression test for
|
|
35
|
+
# Regression test for https://github.com/spree/spree/issues/4063
|
|
37
36
|
context "number generation" do
|
|
38
|
-
before
|
|
39
|
-
allow(order).to receive :update!
|
|
40
|
-
end
|
|
37
|
+
before { allow(order).to receive :update! }
|
|
41
38
|
|
|
42
39
|
it "generates a number containing a letter + 11 numbers" do
|
|
43
40
|
shipment.save
|
|
@@ -210,6 +207,11 @@ describe Spree::Shipment, :type => :model do
|
|
|
210
207
|
expect(shipment.refresh_rates).to eq([])
|
|
211
208
|
end
|
|
212
209
|
|
|
210
|
+
it 'uses the pluggable estimator class' do
|
|
211
|
+
expect(Spree::StockConfiguration).to receive(:estimator_class).and_call_original
|
|
212
|
+
shipment.refresh_rates
|
|
213
|
+
end
|
|
214
|
+
|
|
213
215
|
context 'to_package' do
|
|
214
216
|
let(:inventory_units) do
|
|
215
217
|
[build(:inventory_unit, line_item: line_item, variant: variant, state: 'on_hand'),
|
|
@@ -314,7 +316,7 @@ describe Spree::Shipment, :type => :model do
|
|
|
314
316
|
shipment.update!(order)
|
|
315
317
|
end
|
|
316
318
|
|
|
317
|
-
# Regression test for
|
|
319
|
+
# Regression test for https://github.com/spree/spree/issues/4347
|
|
318
320
|
context "with adjustments" do
|
|
319
321
|
before do
|
|
320
322
|
shipment.adjustments << Spree::Adjustment.create(order: order, label: "Label", amount: 5)
|
|
@@ -322,7 +324,7 @@ describe Spree::Shipment, :type => :model do
|
|
|
322
324
|
|
|
323
325
|
it "transitions to shipped" do
|
|
324
326
|
shipment.update_column(:state, "ready")
|
|
325
|
-
|
|
327
|
+
shipment.ship!
|
|
326
328
|
end
|
|
327
329
|
end
|
|
328
330
|
end
|
|
@@ -493,7 +495,7 @@ describe Spree::Shipment, :type => :model do
|
|
|
493
495
|
end
|
|
494
496
|
|
|
495
497
|
context "#ready" do
|
|
496
|
-
# Regression test for
|
|
498
|
+
# Regression test for https://github.com/spree/spree/issues/2040
|
|
497
499
|
it "cannot ready a shipment for an order if the order is unpaid" do
|
|
498
500
|
expect(order).to receive_messages(paid?: false)
|
|
499
501
|
expect(shipment).not_to be_can_ready
|
|
@@ -633,7 +635,7 @@ describe Spree::Shipment, :type => :model do
|
|
|
633
635
|
end
|
|
634
636
|
end
|
|
635
637
|
|
|
636
|
-
# Regression test for
|
|
638
|
+
# Regression test for https://github.com/spree/spree/issues/3349
|
|
637
639
|
context "#destroy" do
|
|
638
640
|
it "destroys linked shipping_rates" do
|
|
639
641
|
reflection = Spree::Shipment.reflect_on_association(:shipping_rates)
|
|
@@ -641,8 +643,8 @@ describe Spree::Shipment, :type => :model do
|
|
|
641
643
|
end
|
|
642
644
|
end
|
|
643
645
|
|
|
644
|
-
# Regression test for
|
|
645
|
-
# The need for this was discovered in the research for
|
|
646
|
+
# Regression test for https://github.com/spree/spree/issues/4072 (kinda)
|
|
647
|
+
# The need for this was discovered in the research for https://github.com/spree/spree/issues/4702
|
|
646
648
|
context "state changes" do
|
|
647
649
|
before do
|
|
648
650
|
# Must be stubbed so transition can succeed
|
|
@@ -750,4 +752,18 @@ describe Spree::Shipment, :type => :model do
|
|
|
750
752
|
end
|
|
751
753
|
end
|
|
752
754
|
end
|
|
755
|
+
|
|
756
|
+
describe ".by_store" do
|
|
757
|
+
it "returns shipments by store" do
|
|
758
|
+
olivanders_store = create(:store, name: 'Olivanders')
|
|
759
|
+
wizard_shipment = create(:shipment, order: create(:order, store: olivanders_store))
|
|
760
|
+
create(:shipment, order: build(:order, store: create(:store, name: 'Target')))
|
|
761
|
+
|
|
762
|
+
shipments = Spree::Shipment.by_store(olivanders_store)
|
|
763
|
+
|
|
764
|
+
expect(Spree::Shipment.count).to eq(2)
|
|
765
|
+
expect(shipments.count).to eq(1)
|
|
766
|
+
expect(shipments.first).to eq(wizard_shipment)
|
|
767
|
+
end
|
|
768
|
+
end
|
|
753
769
|
end
|
|
@@ -20,7 +20,7 @@ describe Spree::ShippingMethod, :type => :model do
|
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
# Regression test for
|
|
23
|
+
# Regression test for https://github.com/spree/spree/issues/4492
|
|
24
24
|
context "#shipments" do
|
|
25
25
|
let!(:shipping_method) { create(:shipping_method) }
|
|
26
26
|
let!(:shipment) do
|
|
@@ -77,7 +77,7 @@ describe Spree::ShippingMethod, :type => :model do
|
|
|
77
77
|
end
|
|
78
78
|
end
|
|
79
79
|
|
|
80
|
-
# Regression test for
|
|
80
|
+
# Regression test for https://github.com/spree/spree/issues/4320
|
|
81
81
|
context "soft deletion" do
|
|
82
82
|
let(:shipping_method) { create(:shipping_method) }
|
|
83
83
|
it "soft-deletes when destroy is called" do
|
|
@@ -97,14 +97,14 @@ describe Spree::ShippingRate, :type => :model do
|
|
|
97
97
|
end
|
|
98
98
|
end
|
|
99
99
|
|
|
100
|
-
# Regression test for
|
|
100
|
+
# Regression test for https://github.com/spree/spree/issues/3829
|
|
101
101
|
context "#shipping_method" do
|
|
102
102
|
it "can be retrieved" do
|
|
103
103
|
expect(shipping_rate.shipping_method.reload).to eq(shipping_method)
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
it "can be retrieved even when deleted" do
|
|
107
|
-
shipping_method.update_column(:deleted_at, Time.
|
|
107
|
+
shipping_method.update_column(:deleted_at, Time.current)
|
|
108
108
|
shipping_rate.save
|
|
109
109
|
shipping_rate.reload
|
|
110
110
|
expect(shipping_rate.shipping_method).to eq(shipping_method)
|
|
@@ -123,7 +123,7 @@ describe Spree::ShippingRate, :type => :model do
|
|
|
123
123
|
end
|
|
124
124
|
|
|
125
125
|
it "can be retrieved even when deleted" do
|
|
126
|
-
tax_rate.update_column(:deleted_at, Time.
|
|
126
|
+
tax_rate.update_column(:deleted_at, Time.current)
|
|
127
127
|
shipping_rate.save
|
|
128
128
|
shipping_rate.reload
|
|
129
129
|
expect(shipping_rate.tax_rate).to eq(tax_rate)
|
|
@@ -15,6 +15,11 @@ module Spree
|
|
|
15
15
|
expect(subject).to receive(:estimate_packages).ordered
|
|
16
16
|
subject.packages
|
|
17
17
|
end
|
|
18
|
+
|
|
19
|
+
it 'uses the pluggable estimator class' do
|
|
20
|
+
expect(Spree::StockConfiguration).to receive(:estimator_class).and_call_original
|
|
21
|
+
subject.packages
|
|
22
|
+
end
|
|
18
23
|
end
|
|
19
24
|
|
|
20
25
|
describe "#shipments" do
|
|
@@ -117,7 +117,7 @@ module Spree
|
|
|
117
117
|
expect(subject.shipping_rates(package).map(&:shipping_method_id)).to eq([generic_method.id])
|
|
118
118
|
end
|
|
119
119
|
|
|
120
|
-
# regression for
|
|
120
|
+
# regression for https://github.com/spree/spree/issues/3287
|
|
121
121
|
it "doesn't select backend rates even if they're more affordable" do
|
|
122
122
|
expect(subject.shipping_rates(package).map(&:selected)).to eq [true]
|
|
123
123
|
end
|
|
@@ -140,6 +140,40 @@ module Spree
|
|
|
140
140
|
expect(shipping_rates.first.tax_rate).to eq(tax_rate)
|
|
141
141
|
end
|
|
142
142
|
end
|
|
143
|
+
|
|
144
|
+
it 'uses the configured shipping rate selector' do
|
|
145
|
+
shipping_rate = Spree::ShippingRate.new
|
|
146
|
+
allow(Spree::ShippingRate).to receive(:new).and_return(shipping_rate)
|
|
147
|
+
|
|
148
|
+
selector_class = Class.new do
|
|
149
|
+
def initialize(_); end;
|
|
150
|
+
|
|
151
|
+
def find_default
|
|
152
|
+
Spree::ShippingRate.new
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
Spree::Config.shipping_rate_selector_class = selector_class
|
|
156
|
+
|
|
157
|
+
subject.shipping_rates(package)
|
|
158
|
+
|
|
159
|
+
expect(shipping_rate.selected).to eq(true)
|
|
160
|
+
|
|
161
|
+
Spree::Config.shipping_rate_selector_class = nil
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
it 'uses the configured shipping rate sorter' do
|
|
165
|
+
class Spree::Stock::TestSorter; end;
|
|
166
|
+
Spree::Config.shipping_rate_sorter_class = Spree::Stock::TestSorter
|
|
167
|
+
|
|
168
|
+
sorter = double(:sorter, sort: nil)
|
|
169
|
+
allow(Spree::Stock::TestSorter).to receive(:new).and_return(sorter)
|
|
170
|
+
|
|
171
|
+
subject.shipping_rates(package)
|
|
172
|
+
|
|
173
|
+
expect(sorter).to have_received(:sort)
|
|
174
|
+
|
|
175
|
+
Spree::Config.shipping_rate_sorter_class = nil
|
|
176
|
+
end
|
|
143
177
|
end
|
|
144
178
|
end
|
|
145
179
|
end
|
|
@@ -47,7 +47,7 @@ module Spree
|
|
|
47
47
|
expect(item.quantity).to eq 1
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
-
# Contains regression test for
|
|
50
|
+
# Contains regression test for https://github.com/spree/spree/issues/2804
|
|
51
51
|
it 'builds a list of shipping methods common to all categories' do
|
|
52
52
|
category1 = create(:shipping_category)
|
|
53
53
|
category2 = create(:shipping_category)
|
|
@@ -28,9 +28,8 @@ module Spree
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
it 'variants are added as backordered without enough on_hand' do
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
)
|
|
31
|
+
inventory_units[0..2].each { |iu| stock_location.stock_item(iu.variant_id).set_count_on_hand(1) }
|
|
32
|
+
inventory_units[3..4].each { |iu| stock_location.stock_item(iu.variant_id).set_count_on_hand(0) }
|
|
34
33
|
|
|
35
34
|
package = subject.default_package
|
|
36
35
|
expect(package.on_hand.size).to eq 3
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Spree::Stock::ShippingRateSelector do
|
|
4
|
+
describe '#sort' do
|
|
5
|
+
it 'sorts by increasing cost' do
|
|
6
|
+
cheapest_shipping_rate = Spree::ShippingRate.new(cost: 1.00)
|
|
7
|
+
middle_shipping_rate = Spree::ShippingRate.new(cost: 5.00)
|
|
8
|
+
expensive_shipping_rate = Spree::ShippingRate.new(cost: 42.00)
|
|
9
|
+
shipping_rates = [expensive_shipping_rate, middle_shipping_rate, cheapest_shipping_rate]
|
|
10
|
+
|
|
11
|
+
sorter = Spree::Stock::ShippingRateSelector.new(shipping_rates)
|
|
12
|
+
|
|
13
|
+
expect(sorter.find_default).to eq(cheapest_shipping_rate)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Spree::Stock::ShippingRateSorter do
|
|
4
|
+
describe '#sort' do
|
|
5
|
+
it 'sorts by increasing cost' do
|
|
6
|
+
cheapest_shipping_rate = Spree::ShippingRate.new(cost: 1.00)
|
|
7
|
+
middle_shipping_rate = Spree::ShippingRate.new(cost: 5.00)
|
|
8
|
+
expensive_shipping_rate = Spree::ShippingRate.new(cost: 42.00)
|
|
9
|
+
shipping_rates = [expensive_shipping_rate, middle_shipping_rate, cheapest_shipping_rate]
|
|
10
|
+
|
|
11
|
+
sorter = Spree::Stock::ShippingRateSorter.new(shipping_rates)
|
|
12
|
+
|
|
13
|
+
expect(sorter.sort).to eq([cheapest_shipping_rate, middle_shipping_rate, expensive_shipping_rate])
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -77,7 +77,7 @@ describe Spree::StockItem, :type => :model do
|
|
|
77
77
|
subject.update_column(:count_on_hand, -2)
|
|
78
78
|
end
|
|
79
79
|
|
|
80
|
-
# Regression test for
|
|
80
|
+
# Regression test for https://github.com/spree/spree/issues/3755
|
|
81
81
|
it "processes existing backorders, even with negative stock" do
|
|
82
82
|
expect(inventory_unit).to receive(:fill_backorder)
|
|
83
83
|
expect(inventory_unit_2).not_to receive(:fill_backorder)
|
|
@@ -85,7 +85,7 @@ describe Spree::StockItem, :type => :model do
|
|
|
85
85
|
expect(subject.count_on_hand).to eq(-1)
|
|
86
86
|
end
|
|
87
87
|
|
|
88
|
-
# Test for
|
|
88
|
+
# Test for https://github.com/spree/spree/issues/3755
|
|
89
89
|
it "does not process backorders when stock is adjusted negatively" do
|
|
90
90
|
expect(inventory_unit).not_to receive(:fill_backorder)
|
|
91
91
|
expect(inventory_unit_2).not_to receive(:fill_backorder)
|
|
@@ -149,7 +149,7 @@ describe Spree::StockItem, :type => :model do
|
|
|
149
149
|
before { Spree::StockMovement.create(stock_item: subject, quantity: 1) }
|
|
150
150
|
|
|
151
151
|
it "doesnt raise ReadOnlyRecord error" do
|
|
152
|
-
|
|
152
|
+
subject.destroy
|
|
153
153
|
end
|
|
154
154
|
end
|
|
155
155
|
|
|
@@ -157,9 +157,7 @@ describe Spree::StockItem, :type => :model do
|
|
|
157
157
|
before { subject.destroy }
|
|
158
158
|
|
|
159
159
|
it "recreates stock item just fine" do
|
|
160
|
-
|
|
161
|
-
stock_location.stock_items.create!(variant: subject.variant)
|
|
162
|
-
}.not_to raise_error
|
|
160
|
+
stock_location.stock_items.create!(variant: subject.variant)
|
|
163
161
|
end
|
|
164
162
|
|
|
165
163
|
it "doesnt allow recreating more than one stock item at once" do
|
|
@@ -264,7 +262,7 @@ describe Spree::StockItem, :type => :model do
|
|
|
264
262
|
end
|
|
265
263
|
end
|
|
266
264
|
|
|
267
|
-
# Regression test for
|
|
265
|
+
# Regression test for https://github.com/spree/spree/issues/4651
|
|
268
266
|
context "variant" do
|
|
269
267
|
it "can be found even if the variant is deleted" do
|
|
270
268
|
subject.variant.destroy
|
|
@@ -170,10 +170,7 @@ module Spree
|
|
|
170
170
|
end
|
|
171
171
|
|
|
172
172
|
it 'zero on_hand with all backordered' do
|
|
173
|
-
|
|
174
|
-
count_on_hand: 0,
|
|
175
|
-
backorderable?: true)
|
|
176
|
-
expect(subject).to receive(:stock_item).with(variant).and_return(zero_stock_item)
|
|
173
|
+
stock_item.set_count_on_hand(0)
|
|
177
174
|
|
|
178
175
|
on_hand, backordered = subject.fill_status(variant, 20)
|
|
179
176
|
expect(on_hand).to eq 0
|
|
@@ -182,12 +179,11 @@ module Spree
|
|
|
182
179
|
|
|
183
180
|
context 'when backordering is not allowed' do
|
|
184
181
|
before do
|
|
185
|
-
|
|
186
|
-
expect(subject).to receive(:stock_item).with(variant).and_return(@stock_item)
|
|
182
|
+
stock_item.update!(backorderable: false)
|
|
187
183
|
end
|
|
188
184
|
|
|
189
185
|
it 'all on_hand' do
|
|
190
|
-
|
|
186
|
+
stock_item.set_count_on_hand(10)
|
|
191
187
|
|
|
192
188
|
on_hand, backordered = subject.fill_status(variant, 5)
|
|
193
189
|
expect(on_hand).to eq 5
|
|
@@ -195,7 +191,7 @@ module Spree
|
|
|
195
191
|
end
|
|
196
192
|
|
|
197
193
|
it 'some on_hand' do
|
|
198
|
-
|
|
194
|
+
stock_item.set_count_on_hand(10)
|
|
199
195
|
|
|
200
196
|
on_hand, backordered = subject.fill_status(variant, 20)
|
|
201
197
|
expect(on_hand).to eq 10
|
|
@@ -203,7 +199,7 @@ module Spree
|
|
|
203
199
|
end
|
|
204
200
|
|
|
205
201
|
it 'zero on_hand' do
|
|
206
|
-
|
|
202
|
+
stock_item.set_count_on_hand(0)
|
|
207
203
|
|
|
208
204
|
on_hand, backordered = subject.fill_status(variant, 20)
|
|
209
205
|
expect(on_hand).to eq 0
|
|
@@ -48,7 +48,7 @@ module Spree
|
|
|
48
48
|
|
|
49
49
|
context "finalized" do
|
|
50
50
|
before do
|
|
51
|
-
stock_transfer.update_attributes(finalized_at: Time.
|
|
51
|
+
stock_transfer.update_attributes(finalized_at: Time.current)
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
it { is_expected.to eq false }
|
|
@@ -56,7 +56,7 @@ module Spree
|
|
|
56
56
|
|
|
57
57
|
context "shipped" do
|
|
58
58
|
before do
|
|
59
|
-
stock_transfer.update_attributes(shipped_at: Time.
|
|
59
|
+
stock_transfer.update_attributes(shipped_at: Time.current)
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
it { is_expected.to eq false }
|
|
@@ -64,7 +64,7 @@ module Spree
|
|
|
64
64
|
|
|
65
65
|
context "closed" do
|
|
66
66
|
before do
|
|
67
|
-
stock_transfer.update_attributes(closed_at: Time.
|
|
67
|
+
stock_transfer.update_attributes(closed_at: Time.current)
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
it { is_expected.to eq false }
|
|
@@ -72,7 +72,7 @@ module Spree
|
|
|
72
72
|
|
|
73
73
|
context "finalized and closed" do
|
|
74
74
|
before do
|
|
75
|
-
stock_transfer.update_attributes(finalized_at: Time.
|
|
75
|
+
stock_transfer.update_attributes(finalized_at: Time.current, closed_at: Time.current)
|
|
76
76
|
end
|
|
77
77
|
|
|
78
78
|
it { is_expected.to eq false }
|
|
@@ -80,7 +80,7 @@ module Spree
|
|
|
80
80
|
|
|
81
81
|
context "shipped and closed" do
|
|
82
82
|
before do
|
|
83
|
-
stock_transfer.update_attributes(shipped_at: Time.
|
|
83
|
+
stock_transfer.update_attributes(shipped_at: Time.current, closed_at: Time.current)
|
|
84
84
|
end
|
|
85
85
|
|
|
86
86
|
it { is_expected.to eq false }
|
|
@@ -88,7 +88,7 @@ module Spree
|
|
|
88
88
|
|
|
89
89
|
context "finalized and shipped" do
|
|
90
90
|
before do
|
|
91
|
-
stock_transfer.update_attributes(finalized_at: Time.
|
|
91
|
+
stock_transfer.update_attributes(finalized_at: Time.current, shipped_at: Time.current)
|
|
92
92
|
end
|
|
93
93
|
|
|
94
94
|
it { is_expected.to eq true }
|
|
@@ -100,7 +100,7 @@ module Spree
|
|
|
100
100
|
|
|
101
101
|
context "finalized" do
|
|
102
102
|
before do
|
|
103
|
-
stock_transfer.update_attributes(finalized_at: Time.
|
|
103
|
+
stock_transfer.update_attributes(finalized_at: Time.current)
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
it { is_expected.to eq false }
|
|
@@ -108,7 +108,7 @@ module Spree
|
|
|
108
108
|
|
|
109
109
|
context "shipped" do
|
|
110
110
|
before do
|
|
111
|
-
stock_transfer.update_attributes(shipped_at: Time.
|
|
111
|
+
stock_transfer.update_attributes(shipped_at: Time.current)
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
it { is_expected.to eq false }
|
|
@@ -116,7 +116,7 @@ module Spree
|
|
|
116
116
|
|
|
117
117
|
context "closed" do
|
|
118
118
|
before do
|
|
119
|
-
stock_transfer.update_attributes(closed_at: Time.
|
|
119
|
+
stock_transfer.update_attributes(closed_at: Time.current)
|
|
120
120
|
end
|
|
121
121
|
|
|
122
122
|
it { is_expected.to eq false }
|
|
@@ -124,7 +124,7 @@ module Spree
|
|
|
124
124
|
|
|
125
125
|
context "finalized and closed" do
|
|
126
126
|
before do
|
|
127
|
-
stock_transfer.update_attributes(finalized_at: Time.
|
|
127
|
+
stock_transfer.update_attributes(finalized_at: Time.current, closed_at: Time.current)
|
|
128
128
|
end
|
|
129
129
|
|
|
130
130
|
it { is_expected.to eq false }
|
|
@@ -132,7 +132,7 @@ module Spree
|
|
|
132
132
|
|
|
133
133
|
context "shipped and closed" do
|
|
134
134
|
before do
|
|
135
|
-
stock_transfer.update_attributes(shipped_at: Time.
|
|
135
|
+
stock_transfer.update_attributes(shipped_at: Time.current, closed_at: Time.current)
|
|
136
136
|
end
|
|
137
137
|
|
|
138
138
|
it { is_expected.to eq false }
|
|
@@ -165,7 +165,7 @@ module Spree
|
|
|
165
165
|
|
|
166
166
|
context "can't be finalized" do
|
|
167
167
|
before do
|
|
168
|
-
stock_transfer.update_attributes(finalized_at: Time.
|
|
168
|
+
stock_transfer.update_attributes(finalized_at: Time.current)
|
|
169
169
|
end
|
|
170
170
|
|
|
171
171
|
it "doesn't set a finalized_at date" do
|
|
@@ -225,7 +225,7 @@ module Spree
|
|
|
225
225
|
|
|
226
226
|
context "stock transfer is finalized" do
|
|
227
227
|
before do
|
|
228
|
-
stock_transfer.update_attributes!(finalized_at: Time.
|
|
228
|
+
stock_transfer.update_attributes!(finalized_at: Time.current)
|
|
229
229
|
end
|
|
230
230
|
|
|
231
231
|
it "doesn't destroy the stock transfer" do
|
|
@@ -249,6 +249,26 @@ module Spree
|
|
|
249
249
|
end
|
|
250
250
|
end
|
|
251
251
|
|
|
252
|
+
describe '#ship' do
|
|
253
|
+
let(:stock_transfer) { create(:stock_transfer, tracking_number: "ABC123") }
|
|
254
|
+
|
|
255
|
+
context "tracking number is provided" do
|
|
256
|
+
subject { stock_transfer.ship(tracking_number: "XYZ123") }
|
|
257
|
+
|
|
258
|
+
it "updates the tracking number" do
|
|
259
|
+
expect { subject }.to change { stock_transfer.tracking_number }.from("ABC123").to("XYZ123")
|
|
260
|
+
end
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
context "tracking number is not provided" do
|
|
264
|
+
subject { stock_transfer.ship }
|
|
265
|
+
|
|
266
|
+
it "preserves the existing tracking number" do
|
|
267
|
+
expect { subject }.to_not change { stock_transfer.tracking_number }.from("ABC123")
|
|
268
|
+
end
|
|
269
|
+
end
|
|
270
|
+
end
|
|
271
|
+
|
|
252
272
|
describe '#transfer' do
|
|
253
273
|
let(:stock_transfer) { create(:stock_transfer_with_items) }
|
|
254
274
|
|