solidus_core 1.2.3 → 1.3.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/Gemfile +1 -1
- data/Rakefile +1 -1
- data/app/assets/javascripts/spree.js.coffee.erb +1 -1
- data/app/helpers/spree/base_helper.rb +21 -43
- data/app/helpers/spree/orders_helper.rb +0 -1
- data/app/helpers/spree/products_helper.rb +10 -12
- data/app/helpers/spree/taxons_helper.rb +4 -4
- data/app/mailers/spree/base_mailer.rb +1 -3
- data/app/mailers/spree/carton_mailer.rb +2 -2
- data/app/mailers/spree/order_mailer.rb +2 -2
- data/app/models/concerns/spree/adjustment_source.rb +12 -16
- data/app/models/concerns/spree/calculated_adjustments.rb +17 -14
- data/app/models/concerns/spree/default_price.rb +10 -26
- data/app/models/concerns/spree/display_money.rb +1 -1
- data/app/models/concerns/spree/ordered_property_value_list.rb +10 -12
- data/app/models/concerns/spree/ransackable_attributes.rb +6 -5
- data/app/models/concerns/spree/user_address_book.rb +87 -81
- data/app/models/concerns/spree/user_methods.rb +2 -2
- data/app/models/concerns/spree/user_payment_source.rb +12 -8
- data/app/models/spree/ability.rb +2 -2
- data/app/models/spree/address.rb +37 -38
- data/app/models/spree/adjustment.rb +2 -6
- data/app/models/spree/app_configuration.rb +60 -5
- data/app/models/spree/base.rb +1 -1
- data/app/models/spree/calculator/default_tax.rb +28 -24
- data/app/models/spree/calculator/flat_percent_item_total.rb +1 -1
- data/app/models/spree/calculator/flat_rate.rb +2 -2
- data/app/models/spree/calculator/flexi_rate.rb +4 -4
- data/app/models/spree/calculator/percent_per_item.rb +8 -9
- data/app/models/spree/calculator/price_sack.rb +3 -3
- data/app/models/spree/calculator/returns/default_refund_amount.rb +11 -12
- data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +1 -1
- data/app/models/spree/calculator/shipping/flat_rate.rb +2 -2
- data/app/models/spree/calculator/shipping/flexi_rate.rb +3 -3
- data/app/models/spree/calculator/shipping/per_item.rb +1 -1
- data/app/models/spree/calculator/shipping/price_sack.rb +3 -3
- data/app/models/spree/calculator/tiered_flat_rate.rb +2 -1
- data/app/models/spree/calculator/tiered_percent.rb +2 -1
- data/app/models/spree/calculator.rb +3 -3
- data/app/models/spree/carton.rb +2 -2
- data/app/models/spree/country.rb +7 -4
- data/app/models/spree/credit_card.rb +26 -22
- data/app/models/spree/customer_return.rb +8 -7
- data/app/models/spree/exchange.rb +1 -9
- data/app/models/spree/gateway/bogus.rb +31 -31
- data/app/models/spree/gateway/bogus_simple.rb +6 -8
- data/app/models/spree/gateway.rb +9 -15
- data/app/models/spree/image.rb +3 -3
- data/app/models/spree/inventory_unit.rb +23 -23
- data/app/models/spree/item_adjustments.rb +3 -2
- data/app/models/spree/legacy_user.rb +1 -5
- data/app/models/spree/line_item.rb +95 -84
- data/app/models/spree/option_type.rb +1 -1
- data/app/models/spree/option_value.rb +3 -1
- data/app/models/spree/order/checkout.rb +45 -44
- data/app/models/spree/order/payments.rb +42 -45
- data/app/models/spree/order.rb +70 -75
- data/app/models/spree/order_cancellations.rb +4 -4
- data/app/models/spree/order_capturing.rb +3 -2
- data/app/models/spree/order_contents.rb +61 -59
- data/app/models/spree/order_inventory.rb +59 -54
- data/app/models/spree/order_mutex.rb +0 -1
- data/app/models/spree/order_shipping.rb +8 -9
- data/app/models/spree/order_stock_location.rb +3 -3
- data/app/models/spree/order_update_attributes.rb +0 -2
- data/app/models/spree/order_updater.rb +11 -24
- data/app/models/spree/payment/processing.rb +26 -37
- data/app/models/spree/payment.rb +68 -71
- data/app/models/spree/payment_method/check.rb +2 -2
- data/app/models/spree/payment_method/store_credit.rb +6 -7
- data/app/models/spree/payment_method.rb +11 -8
- data/app/models/spree/preferences/configuration.rb +2 -2
- data/app/models/spree/preferences/preferable.rb +1 -1
- data/app/models/spree/preferences/preferable_class_methods.rb +1 -1
- data/app/models/spree/preferences/scoped_store.rb +6 -5
- data/app/models/spree/preferences/static_model_preferences.rb +1 -1
- data/app/models/spree/preferences/statically_configurable.rb +2 -2
- data/app/models/spree/preferences/store.rb +2 -6
- data/app/models/spree/price.rb +17 -19
- data/app/models/spree/product/scopes.rb +18 -17
- data/app/models/spree/product.rb +28 -11
- data/app/models/spree/product_property.rb +2 -0
- data/app/models/spree/product_scope/scopes.rb +22 -22
- data/app/models/spree/promotion/actions/create_adjustment.rb +3 -4
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +8 -8
- data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +3 -3
- data/app/models/spree/promotion/actions/free_shipping.rb +4 -4
- data/app/models/spree/promotion/rules/first_order.rb +7 -6
- data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +2 -3
- data/app/models/spree/promotion/rules/item_total.rb +5 -2
- data/app/models/spree/promotion/rules/nth_order.rb +3 -4
- data/app/models/spree/promotion/rules/one_use_per_user.rb +1 -2
- data/app/models/spree/promotion/rules/option_value.rb +1 -2
- data/app/models/spree/promotion/rules/product.rb +4 -4
- data/app/models/spree/promotion/rules/taxon.rb +5 -5
- data/app/models/spree/promotion/rules/user.rb +1 -1
- data/app/models/spree/promotion/rules/user_logged_in.rb +1 -1
- data/app/models/spree/promotion.rb +8 -8
- data/app/models/spree/promotion_action.rb +1 -1
- data/app/models/spree/promotion_builder.rb +2 -2
- data/app/models/spree/promotion_chooser.rb +1 -0
- data/app/models/spree/promotion_code/code_builder.rb +3 -3
- data/app/models/spree/promotion_handler/cart.rb +17 -16
- data/app/models/spree/promotion_handler/coupon.rb +10 -14
- data/app/models/spree/promotion_handler/page.rb +4 -4
- data/app/models/spree/promotion_rule.rb +4 -3
- data/app/models/spree/prototype.rb +0 -1
- data/app/models/spree/refund.rb +3 -3
- data/app/models/spree/reimbursement/reimbursement_type_engine.rb +1 -3
- data/app/models/spree/reimbursement.rb +3 -5
- data/app/models/spree/reimbursement_performer.rb +0 -5
- data/app/models/spree/reimbursement_tax_calculator.rb +2 -7
- data/app/models/spree/reimbursement_type/credit.rb +1 -1
- data/app/models/spree/reimbursement_type/original_payment.rb +1 -1
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +3 -3
- data/app/models/spree/reimbursement_type/store_credit.rb +1 -1
- data/app/models/spree/reimbursement_type.rb +1 -1
- data/app/models/spree/return_authorization.rb +38 -37
- data/app/models/spree/return_item/eligibility_validator/default.rb +4 -4
- data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +0 -1
- data/app/models/spree/return_item/eligibility_validator/rma_required.rb +0 -1
- data/app/models/spree/return_item.rb +24 -23
- data/app/models/spree/returns_calculator.rb +1 -2
- data/app/models/spree/shipment.rb +80 -74
- data/app/models/spree/shipping_calculator.rb +4 -5
- data/app/models/spree/shipping_manifest.rb +3 -4
- data/app/models/spree/shipping_method.rb +54 -23
- data/app/models/spree/shipping_method_stock_location.rb +4 -0
- data/app/models/spree/shipping_rate.rb +24 -29
- data/app/models/spree/shipping_rate_tax.rb +41 -0
- data/app/models/spree/state.rb +1 -1
- data/app/models/spree/state_change.rb +1 -1
- data/app/models/spree/stock/availability_validator.rb +2 -2
- data/app/models/spree/stock/coordinator.rb +12 -13
- data/app/models/spree/stock/differentiator.rb +1 -0
- data/app/models/spree/stock/estimator.rb +18 -25
- data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
- data/app/models/spree/stock/package.rb +19 -9
- data/app/models/spree/stock/packer.rb +2 -3
- data/app/models/spree/stock/prioritizer.rb +3 -2
- data/app/models/spree/stock/quantifier.rb +2 -3
- data/app/models/spree/stock/shipping_rate_selector.rb +0 -1
- data/app/models/spree/stock/shipping_rate_sorter.rb +0 -1
- data/app/models/spree/stock/splitter/backordered.rb +0 -2
- data/app/models/spree/stock/splitter/base.rb +3 -2
- data/app/models/spree/stock/splitter/shipping_category.rb +2 -1
- data/app/models/spree/stock/splitter/weight.rb +2 -2
- data/app/models/spree/stock_item.rb +36 -37
- data/app/models/spree/stock_location.rb +17 -13
- data/app/models/spree/stock_movement.rb +1 -3
- data/app/models/spree/stock_transfer.rb +8 -8
- data/app/models/spree/store.rb +6 -0
- data/app/models/spree/store_credit.rb +24 -24
- data/app/models/spree/store_credit_category.rb +1 -2
- data/app/models/spree/tax/item_adjuster.rb +37 -0
- data/app/models/spree/tax/order_adjuster.rb +38 -0
- data/app/models/spree/tax/shipping_rate_taxer.rb +31 -0
- data/app/models/spree/tax/tax_helpers.rb +49 -0
- data/app/models/spree/tax/tax_location.rb +33 -0
- data/app/models/spree/tax_category.rb +1 -1
- data/app/models/spree/tax_rate.rb +46 -111
- data/app/models/spree/taxon.rb +36 -12
- data/app/models/spree/taxonomy.rb +10 -10
- data/app/models/spree/validations/db_maximum_length_validator.rb +0 -1
- data/app/models/spree/variant/pricer.rb +19 -0
- data/app/models/spree/variant/pricing_options.rb +31 -0
- data/app/models/spree/variant/scopes.rb +9 -9
- data/app/models/spree/variant.rb +95 -89
- data/app/models/spree/variant_property_rule.rb +1 -1
- data/app/models/spree/variant_property_rule_value.rb +2 -0
- data/app/models/spree/zone.rb +60 -24
- data/config/initializers/friendly_id.rb +1 -1
- data/config/locales/en.yml +337 -51
- data/config/routes.rb +1 -1
- data/db/default/spree/countries.rb +9 -15
- data/db/default/spree/roles.rb +1 -2
- data/db/default/spree/states.rb +7 -11
- data/db/default/spree/store_credit.rb +2 -2
- data/db/default/spree/stores.rb +2 -1
- data/db/migrate/20120831092320_spree_one_two.rb +100 -101
- data/db/migrate/20120831092359_spree_promo_one_two.rb +12 -12
- data/db/migrate/20120905151823_add_toggle_tax_rate_display.rb +1 -1
- data/db/migrate/20121009142519_add_lock_version_to_variant.rb +1 -1
- data/db/migrate/20121010142909_add_states_required_to_countries.rb +1 -1
- data/db/migrate/20121012071449_add_on_demand_to_product_and_variant.rb +2 -2
- data/db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb +4 -4
- data/db/migrate/20121031162139_split_prices_from_variants.rb +8 -8
- data/db/migrate/20121107003422_remove_not_null_from_spree_prices_amount.rb +2 -2
- data/db/migrate/20121109173623_add_cost_currency_to_variants.rb +1 -1
- data/db/migrate/20121124203911_add_position_to_taxonomies.rb +1 -1
- data/db/migrate/20130120201805_add_position_to_product_properties.spree.rb +1 -2
- data/db/migrate/20130211190146_create_spree_stock_items.rb +1 -1
- data/db/migrate/20130213191427_create_default_stock.rb +12 -21
- data/db/migrate/20130226032817_change_meta_description_on_spree_products_to_text.rb +1 -1
- data/db/migrate/20130227143905_add_pending_to_inventory_unit.rb +2 -2
- data/db/migrate/20130228210442_create_shipping_method_zone.rb +1 -1
- data/db/migrate/20130301162924_create_shipping_method_categories.rb +2 -2
- data/db/migrate/20130304162240_create_spree_shipping_rates.rb +4 -4
- data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +2 -3
- data/db/migrate/20130306191917_add_active_field_to_stock_locations.rb +1 -1
- data/db/migrate/20130306195650_add_backorderable_to_stock_item.rb +1 -1
- data/db/migrate/20130307161754_add_default_quantity_to_stock_movement.rb +1 -1
- data/db/migrate/20130319062004_change_orders_total_precision.rb +4 -4
- data/db/migrate/20130319063911_change_spree_payments_amount_precision.rb +1 -3
- data/db/migrate/20130319064308_change_spree_return_authorization_amount_precision.rb +2 -4
- data/db/migrate/20130319082943_change_adjustments_amount_precision.rb +1 -3
- data/db/migrate/20130319190507_drop_source_and_destination_from_stock_movement.rb +2 -2
- data/db/migrate/20130325163316_migrate_inventory_unit_sold_to_on_hand.rb +2 -2
- data/db/migrate/20130417120035_update_adjustment_states.rb +2 -2
- data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +3 -3
- data/db/migrate/20130628021056_add_unique_index_to_permalink_on_spree_products.rb +1 -1
- data/db/migrate/20130628022817_add_unique_index_to_orders_shipments_and_stock_transfers.rb +3 -3
- data/db/migrate/20130718042445_add_cost_price_to_line_item.rb +1 -1
- data/db/migrate/20130718233855_set_backorderable_to_default_to_false.rb +2 -2
- data/db/migrate/20130807024301_upgrade_adjustments.rb +3 -3
- data/db/migrate/20130813004002_add_shipment_total_to_spree_orders.rb +1 -1
- data/db/migrate/20130813140619_expand_order_number_size.rb +2 -2
- data/db/migrate/20130815000406_add_adjustment_total_to_line_items.rb +1 -1
- data/db/migrate/20130815024413_add_adjustment_total_to_shipments.rb +1 -1
- data/db/migrate/20130826062534_add_depth_to_spree_taxons.rb +1 -1
- data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +1 -1
- data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +1 -1
- data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +1 -0
- data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +1 -1
- data/db/migrate/20131118043959_add_included_to_adjustments.rb +1 -1
- data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +0 -1
- data/db/migrate/20131211112807_create_spree_orders_promotions.rb +1 -1
- data/db/migrate/20131218054603_add_item_count_to_spree_orders.rb +1 -1
- data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +1 -0
- data/db/migrate/20140219060952_add_considered_risky_to_orders.rb +1 -1
- data/db/migrate/20140309023735_migrate_old_preferences.rb +4 -3
- data/db/migrate/20140309033438_create_store_from_preferences.rb +2 -2
- data/db/migrate/20140410141842_add_many_missing_indexes.rb +13 -15
- data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +38 -40
- data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +4 -4
- data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +1 -1
- data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +0 -1
- data/db/migrate/20140718195325_create_friendly_id_slugs.rb +4 -4
- data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +4 -6
- data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +1 -0
- data/db/migrate/20141217215630_update_product_slug_index.rb +2 -4
- data/db/migrate/20150112194216_add_position_to_stock_location.rb +2 -2
- data/db/migrate/20150225205344_move_promotion_code_to_promotion_code_value.rb +0 -1
- data/db/migrate/20150313201503_copy_shipped_shipments_to_cartons.rb +0 -1
- data/db/migrate/20150506181611_create_spree_store_credit_payment_method.rb +3 -3
- data/db/migrate/20150515211137_fix_adjustment_order_id.rb +0 -1
- data/db/migrate/20150612205731_remove_spree_configurations.rb +2 -2
- data/db/migrate/20150619160613_create_adjustment_reason.rb +1 -1
- data/db/migrate/20150723224133_remove_unnecessary_indexes.rb +10 -2
- data/db/migrate/20150731201146_add_spree_user_addresses.rb +0 -1
- data/db/migrate/20150811211025_add_finalized_to_spree_adjustments.rb +1 -1
- data/db/migrate/20151001121454_create_spree_shipping_method_stock_locations.rb +13 -0
- data/db/migrate/20151002023248_add_foreign_key_to_shipping_method_stock_location.rb +6 -0
- data/db/migrate/20151026093607_change_return_item_pre_tax_amount_to_amount.rb +29 -0
- data/db/migrate/20160111091912_add_column_available_to_all_on_spree_shipping_method.rb +5 -0
- data/db/migrate/20160116133604_add_position_to_spree_payment_methods.rb +5 -0
- data/db/migrate/20160122182105_add_carrier_and_service_level_to_spree_shipping_methods.rb +6 -0
- data/db/migrate/20160224201413_create_spree_shipping_rate_taxes.rb +11 -0
- data/db/migrate/20160229133259_add_cart_tax_country_iso_to_spree_store.rb +5 -0
- data/db/migrate/20160301103333_remove_pre_tax_amount_on_line_item_and_shipment.rb +6 -0
- data/db/migrate/20160308000300_disallow_adjustment_finalized_nulls.rb +19 -0
- data/db/migrate/20160318145302_add_timestamps_to_prices.rb +5 -0
- data/db/migrate/20160330204846_add_missing_timestamp_columns.rb +20 -0
- data/lib/generators/spree/custom_user/custom_user_generator.rb +3 -8
- data/lib/generators/spree/dummy/dummy_generator.rb +17 -19
- data/lib/generators/spree/install/install_generator.rb +15 -15
- data/lib/generators/spree/install/templates/config/initializers/spree.rb +1 -0
- data/lib/spree/core/controller_helpers/auth.rb +2 -4
- data/lib/spree/core/controller_helpers/common.rb +42 -43
- data/lib/spree/core/controller_helpers/order.rb +5 -9
- data/lib/spree/core/controller_helpers/payment_parameters.rb +4 -5
- data/lib/spree/core/controller_helpers/pricing.rb +27 -0
- data/lib/spree/core/controller_helpers/respond_with.rb +4 -4
- data/lib/spree/core/controller_helpers/search.rb +2 -2
- data/lib/spree/core/controller_helpers/store.rb +3 -3
- data/lib/spree/core/controller_helpers/strong_parameters.rb +4 -4
- data/lib/spree/core/current_store.rb +1 -1
- data/lib/spree/core/delegate_belongs_to.rb +19 -21
- data/lib/spree/core/engine.rb +12 -8
- data/lib/spree/core/environment/calculators.rb +0 -1
- data/lib/spree/core/environment_extension.rb +4 -4
- data/lib/spree/core/importer/order.rb +17 -22
- data/lib/spree/core/importer/product.rb +10 -9
- data/lib/spree/core/permalinks.rb +16 -16
- data/lib/spree/core/product_duplicator.rb +2 -3
- data/lib/spree/core/product_filters.rb +15 -16
- data/lib/spree/core/role_configuration.rb +2 -2
- data/lib/spree/core/search/base.rb +71 -57
- data/lib/spree/core/search/variant.rb +2 -4
- data/lib/spree/core/unreturned_item_charger.rb +1 -2
- data/lib/spree/core/validators/email.rb +2 -2
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +2 -4
- data/lib/spree/i18n.rb +1 -1
- data/lib/spree/localized_number.rb +3 -1
- data/lib/spree/migrations.rb +27 -26
- data/lib/spree/money.rb +19 -4
- data/lib/spree/permission_sets/base.rb +1 -1
- data/lib/spree/permitted_attributes.rb +7 -7
- data/lib/spree/responder.rb +4 -5
- data/lib/spree/testing_support/authorization_helpers.rb +1 -1
- data/lib/spree/testing_support/caching.rb +8 -8
- data/lib/spree/testing_support/capybara_ext.rb +11 -13
- data/lib/spree/testing_support/common_rake.rb +4 -4
- data/lib/spree/testing_support/controller_requests.rb +1 -1
- data/lib/spree/testing_support/extension_rake.rb +1 -2
- data/lib/spree/testing_support/factories/address_factory.rb +14 -3
- data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +1 -1
- data/lib/spree/testing_support/factories/carton_factory.rb +2 -2
- data/lib/spree/testing_support/factories/credit_card_factory.rb +4 -0
- data/lib/spree/testing_support/factories/customer_return_factory.rb +4 -6
- data/lib/spree/testing_support/factories/line_item_factory.rb +1 -1
- data/lib/spree/testing_support/factories/order_factory.rb +10 -11
- data/lib/spree/testing_support/factories/payment_factory.rb +5 -0
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -1
- data/lib/spree/testing_support/factories/promotion_factory.rb +0 -1
- data/lib/spree/testing_support/factories/refund_factory.rb +1 -1
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
- data/lib/spree/testing_support/factories/return_item_factory.rb +1 -1
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +5 -2
- data/lib/spree/testing_support/factories/state_factory.rb +17 -7
- data/lib/spree/testing_support/factories/stock_location_factory.rb +4 -4
- data/lib/spree/testing_support/factories/stock_transfer_factory.rb +1 -1
- data/lib/spree/testing_support/factories/store_credit_category_factory.rb +0 -1
- data/lib/spree/testing_support/factories/store_credit_type_factory.rb +0 -2
- data/lib/spree/testing_support/factories/tax_category_factory.rb +2 -2
- data/lib/spree/testing_support/factories/user_factory.rb +1 -1
- data/lib/spree/testing_support/factories/variant_factory.rb +1 -2
- data/lib/spree/testing_support/factories/zone_factory.rb +2 -1
- data/lib/spree/testing_support/i18n.rb +4 -5
- data/lib/spree/testing_support/order_walkthrough.rb +8 -9
- data/lib/spree/testing_support/preferences.rb +1 -1
- data/lib/spree/testing_support/sequences.rb +5 -4
- data/lib/tasks/core.rake +15 -19
- data/lib/tasks/email.rake +3 -3
- data/lib/tasks/exchanges.rake +12 -14
- data/lib/tasks/migrations/assure_store_on_orders.rake +38 -0
- data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +2 -2
- data/lib/tasks/migrations/copy_shipped_shipments_to_cartons.rake +1 -11
- data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +17 -0
- data/lib/tasks/migrations/migrate_user_addresses.rake +1 -1
- data/lib/tasks/order_capturing.rake +1 -1
- data/lib/tasks/upgrade.rake +11 -0
- data/script/rails +0 -1
- data/solidus_core.gemspec +6 -8
- data/spec/helpers/base_helper_spec.rb +15 -18
- data/spec/helpers/order_helper_spec.rb +2 -2
- data/spec/helpers/products_helper_spec.rb +43 -51
- data/spec/helpers/taxons_helper_spec.rb +1 -1
- data/spec/lib/i18n_spec.rb +11 -11
- data/spec/lib/search/base_spec.rb +12 -14
- data/spec/lib/search/variant_spec.rb +1 -0
- data/spec/lib/spree/core/controller_helpers/order_spec.rb +1 -7
- data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +26 -28
- data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +63 -0
- data/spec/lib/spree/core/controller_helpers/search_spec.rb +4 -2
- data/spec/lib/spree/core/delegate_belongs_to_spec.rb +1 -1
- data/spec/lib/spree/core/importer/order_spec.rb +95 -90
- data/spec/lib/spree/core/role_configuration_spec.rb +16 -16
- data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +35 -0
- data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +10 -1
- data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -1
- data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +6 -1
- data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +37 -1
- data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +2 -2
- data/spec/lib/spree/core/testing_support/factories/stock_packer_factory_spec.rb +1 -1
- data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +1 -2
- data/spec/lib/spree/core/testing_support/preferences_spec.rb +26 -0
- data/spec/lib/spree/core/unreturned_item_charger_spec.rb +7 -9
- data/spec/lib/spree/core/validators/email_spec.rb +8 -6
- data/spec/lib/spree/localized_number_spec.rb +1 -3
- data/spec/lib/spree/migrations_spec.rb +2 -2
- data/spec/lib/spree/money_spec.rb +75 -6
- data/spec/lib/tasks/exchanges_spec.rb +2 -12
- data/spec/lib/tasks/migrations/copy_shipped_shipments_to_cartons_spec.rb +0 -1
- data/spec/lib/tasks/order_capturing_spec.rb +1 -1
- data/spec/mailers/carton_mailer_spec.rb +3 -3
- data/spec/mailers/order_mailer_spec.rb +9 -11
- data/spec/mailers/reimbursement_mailer_spec.rb +2 -2
- data/spec/mailers/test_mailer_spec.rb +1 -1
- data/spec/models/spree/ability_spec.rb +4 -7
- data/spec/models/spree/address_spec.rb +32 -35
- data/spec/models/spree/adjustment_reason_spec.rb +0 -2
- data/spec/models/spree/adjustment_spec.rb +2 -2
- data/spec/models/spree/app_configuration_spec.rb +33 -3
- data/spec/models/spree/asset_spec.rb +1 -2
- data/spec/models/spree/calculator/default_tax_spec.rb +141 -52
- data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +1 -1
- data/spec/models/spree/calculator/flexi_rate_spec.rb +6 -6
- data/spec/models/spree/calculator/percent_on_line_item_spec.rb +1 -1
- data/spec/models/spree/calculator/price_sack_spec.rb +2 -2
- data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +9 -11
- data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +4 -4
- data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +2 -2
- data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +6 -7
- data/spec/models/spree/calculator/shipping/per_item_spec.rb +2 -2
- data/spec/models/spree/calculator/shipping/price_sack_spec.rb +2 -2
- data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +1 -2
- data/spec/models/spree/calculator/tiered_percent_spec.rb +1 -1
- data/spec/models/spree/calculator_spec.rb +3 -8
- data/spec/models/spree/carton_spec.rb +1 -1
- data/spec/models/spree/classification_spec.rb +1 -1
- data/spec/models/spree/concerns/display_money_spec.rb +0 -1
- data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +26 -1
- data/spec/models/spree/concerns/user_address_book_spec.rb +19 -12
- data/spec/models/spree/concerns/user_methods_spec.rb +1 -1
- data/spec/models/spree/country_spec.rb +52 -0
- data/spec/models/spree/credit_card_spec.rb +17 -12
- data/spec/models/spree/customer_return_spec.rb +27 -23
- data/spec/models/spree/exchange_spec.rb +2 -7
- data/spec/models/spree/gateway/bogus_simple.rb +2 -4
- data/spec/models/spree/gateway/bogus_spec.rb +4 -2
- data/spec/models/spree/gateway_spec.rb +8 -3
- data/spec/models/spree/inventory_unit_spec.rb +13 -14
- data/spec/models/spree/item_adjustments_spec.rb +36 -40
- data/spec/models/spree/line_item_spec.rb +92 -48
- data/spec/models/spree/option_type_spec.rb +1 -1
- data/spec/models/spree/option_value_spec.rb +1 -1
- data/spec/models/spree/order/address_spec.rb +1 -1
- data/spec/models/spree/order/callbacks_spec.rb +3 -3
- data/spec/models/spree/order/checkout_spec.rb +55 -48
- data/spec/models/spree/order/finalizing_spec.rb +8 -9
- data/spec/models/spree/order/payment_spec.rb +20 -20
- data/spec/models/spree/order/risk_assessment_spec.rb +1 -1
- data/spec/models/spree/order/state_machine_spec.rb +40 -131
- data/spec/models/spree/order/tax_spec.rb +11 -12
- data/spec/models/spree/order/totals_spec.rb +3 -3
- data/spec/models/spree/order/updating_spec.rb +2 -2
- data/spec/models/spree/order/validations_spec.rb +2 -2
- data/spec/models/spree/order_cancellations_spec.rb +1 -1
- data/spec/models/spree/order_capturing_spec.rb +1 -1
- data/spec/models/spree/order_contents_spec.rb +10 -11
- data/spec/models/spree/order_inventory_spec.rb +11 -11
- data/spec/models/spree/order_merger_spec.rb +1 -0
- data/spec/models/spree/order_shipping_spec.rb +8 -10
- data/spec/models/spree/order_spec.rb +137 -124
- data/spec/models/spree/order_stock_location_spec.rb +2 -2
- data/spec/models/spree/order_update_attributes_spec.rb +6 -10
- data/spec/models/spree/order_updater_spec.rb +4 -8
- data/spec/models/spree/payment_create_spec.rb +11 -12
- data/spec/models/spree/payment_method/store_credit_spec.rb +10 -6
- data/spec/models/spree/payment_method_spec.rb +4 -5
- data/spec/models/spree/payment_spec.rb +61 -69
- data/spec/models/spree/permission_sets/base_spec.rb +1 -1
- data/spec/models/spree/permission_sets/configuration_display.rb +0 -1
- data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -1
- data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -1
- data/spec/models/spree/permission_sets/order_display_spec.rb +0 -1
- data/spec/models/spree/permission_sets/order_management_spec.rb +0 -1
- data/spec/models/spree/permission_sets/product_display_spec.rb +0 -1
- data/spec/models/spree/permission_sets/product_management_spec.rb +0 -1
- data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -1
- data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -1
- data/spec/models/spree/permission_sets/report_display_spec.rb +0 -1
- data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -1
- data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -1
- data/spec/models/spree/permission_sets/restricted_stock_transfer_display_spec.rb +0 -1
- data/spec/models/spree/permission_sets/restricted_stock_transfer_management_spec.rb +6 -6
- data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -1
- data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -1
- data/spec/models/spree/permission_sets/stock_transfer_display_spec.rb +0 -1
- data/spec/models/spree/permission_sets/stock_transfer_management_spec.rb +0 -2
- data/spec/models/spree/permission_sets/user_display_spec.rb +0 -1
- data/spec/models/spree/permission_sets/user_management_spec.rb +0 -1
- data/spec/models/spree/preference_spec.rb +1 -4
- data/spec/models/spree/preferences/configuration_spec.rb +2 -7
- data/spec/models/spree/preferences/preferable_spec.rb +13 -24
- data/spec/models/spree/preferences/scoped_store_spec.rb +1 -1
- data/spec/models/spree/preferences/static_model_preferences_spec.rb +5 -6
- data/spec/models/spree/preferences/statically_configurable_spec.rb +2 -6
- data/spec/models/spree/preferences/store_spec.rb +2 -3
- data/spec/models/spree/price_spec.rb +6 -6
- data/spec/models/spree/product/scopes_spec.rb +20 -20
- data/spec/models/spree/product_duplicator_spec.rb +16 -29
- data/spec/models/spree/product_filter_spec.rb +2 -2
- data/spec/models/spree/product_spec.rb +53 -20
- data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +10 -12
- data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +4 -4
- data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +9 -9
- data/spec/models/spree/promotion/actions/free_shipping_spec.rb +1 -1
- data/spec/models/spree/promotion/rules/first_order_spec.rb +10 -10
- data/spec/models/spree/promotion/rules/item_total_spec.rb +63 -19
- data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +1 -1
- data/spec/models/spree/promotion/rules/product_spec.rb +8 -8
- data/spec/models/spree/promotion/rules/taxon_spec.rb +4 -4
- data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +3 -4
- data/spec/models/spree/promotion/rules/user_spec.rb +7 -7
- data/spec/models/spree/promotion_builder_spec.rb +10 -8
- data/spec/models/spree/promotion_category_spec.rb +1 -1
- data/spec/models/spree/promotion_code/code_builder_spec.rb +1 -3
- data/spec/models/spree/promotion_code_spec.rb +8 -7
- data/spec/models/spree/promotion_handler/cart_spec.rb +1 -1
- data/spec/models/spree/promotion_handler/coupon_spec.rb +28 -28
- data/spec/models/spree/promotion_handler/page_spec.rb +6 -7
- data/spec/models/spree/promotion_rule_spec.rb +1 -2
- data/spec/models/spree/promotion_spec.rb +25 -21
- data/spec/models/spree/refund_spec.rb +8 -11
- data/spec/models/spree/reimbursement/credit_spec.rb +2 -2
- data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +6 -4
- data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +1 -1
- data/spec/models/spree/reimbursement_performer_spec.rb +2 -2
- data/spec/models/spree/reimbursement_spec.rb +9 -11
- data/spec/models/spree/reimbursement_tax_calculator_spec.rb +4 -5
- data/spec/models/spree/reimbursement_type/credit_spec.rb +2 -2
- data/spec/models/spree/reimbursement_type/exchange_spec.rb +2 -3
- data/spec/models/spree/reimbursement_type/original_payment_spec.rb +4 -4
- data/spec/models/spree/reimbursement_type/store_credit_spec.rb +1 -1
- data/spec/models/spree/return_authorization_spec.rb +18 -21
- data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +7 -7
- data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -1
- data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -1
- data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +1 -1
- data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +1 -1
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +1 -2
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +3 -5
- data/spec/models/spree/return_item_spec.rb +29 -31
- data/spec/models/spree/returns_calculator_spec.rb +1 -1
- data/spec/models/spree/shipment_spec.rb +59 -43
- data/spec/models/spree/shipping_calculator_spec.rb +3 -3
- data/spec/models/spree/shipping_manifest_spec.rb +8 -7
- data/spec/models/spree/shipping_method_spec.rb +149 -24
- data/spec/models/spree/shipping_rate_spec.rb +116 -76
- data/spec/models/spree/shipping_rate_tax_spec.rb +83 -0
- data/spec/models/spree/state_spec.rb +2 -2
- data/spec/models/spree/stock/availability_validator_spec.rb +4 -4
- data/spec/models/spree/stock/coordinator_spec.rb +33 -49
- data/spec/models/spree/stock/differentiator_spec.rb +1 -1
- data/spec/models/spree/stock/estimator_spec.rb +83 -54
- data/spec/models/spree/stock/inventory_unit_builder_spec.rb +1 -3
- data/spec/models/spree/stock/package_spec.rb +27 -10
- data/spec/models/spree/stock/packer_spec.rb +4 -4
- data/spec/models/spree/stock/prioritizer_spec.rb +1 -1
- data/spec/models/spree/stock/quantifier_spec.rb +2 -6
- data/spec/models/spree/stock/splitter/backordered_spec.rb +1 -1
- data/spec/models/spree/stock/splitter/base_spec.rb +1 -2
- data/spec/models/spree/stock/splitter/shipping_category_spec.rb +1 -3
- data/spec/models/spree/stock/splitter/weight_spec.rb +3 -3
- data/spec/models/spree/stock_item_spec.rb +16 -16
- data/spec/models/spree/stock_location_spec.rb +6 -8
- data/spec/models/spree/stock_movement_spec.rb +1 -1
- data/spec/models/spree/stock_transfer_spec.rb +1 -3
- data/spec/models/spree/store_credit_category_spec.rb +1 -1
- data/spec/models/spree/store_credit_event_spec.rb +3 -5
- data/spec/models/spree/store_credit_spec.rb +24 -23
- data/spec/models/spree/store_spec.rb +21 -2
- data/spec/models/spree/tax/item_adjuster_spec.rb +74 -0
- data/spec/models/spree/tax/order_adjuster_spec.rb +49 -0
- data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +50 -0
- data/spec/models/spree/tax/tax_location_spec.rb +68 -0
- data/spec/models/spree/tax/taxation_integration_spec.rb +787 -0
- data/spec/models/spree/tax_category_spec.rb +2 -2
- data/spec/models/spree/tax_rate_spec.rb +185 -536
- data/spec/models/spree/taxon_spec.rb +69 -5
- data/spec/models/spree/taxonomy_spec.rb +2 -3
- data/spec/models/spree/tracker_spec.rb +1 -1
- data/spec/models/spree/transfer_item_spec.rb +1 -1
- data/spec/models/spree/unit_cancel_spec.rb +9 -14
- data/spec/models/spree/user_spec.rb +19 -24
- data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +1 -1
- data/spec/models/spree/variant/pricer_spec.rb +48 -0
- data/spec/models/spree/variant/pricing_options_spec.rb +106 -0
- data/spec/models/spree/variant/scopes_spec.rb +31 -8
- data/spec/models/spree/variant_property_rule_spec.rb +1 -1
- data/spec/models/spree/variant_spec.rb +166 -52
- data/spec/models/spree/zone_spec.rb +135 -10
- data/spec/support/big_decimal.rb +1 -1
- data/spec/support/concerns/working_factories.rb +2 -2
- data/spec/support/dummy_ability.rb +0 -1
- metadata +55 -44
- data/lib/generators/spree/dummy/templates/initializers/devise.rb +0 -3
- data/lib/spree/migration_helpers.rb +0 -19
- data/vendor/assets/stylesheets/skeleton.css +0 -242
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
require 'spree/testing_support/order_walkthrough'
|
|
3
3
|
|
|
4
|
-
describe Spree::Order, :
|
|
5
|
-
let(:
|
|
4
|
+
describe Spree::Order, type: :model do
|
|
5
|
+
let!(:store) { create(:store) }
|
|
6
|
+
let(:order) { Spree::Order.new(store: store) }
|
|
6
7
|
|
|
7
8
|
def assert_state_changed(order, from, to)
|
|
8
|
-
state_change_exists = order.state_changes.where(:
|
|
9
|
+
state_change_exists = order.state_changes.where(previous_state: from, next_state: to).exists?
|
|
9
10
|
assert state_change_exists, "Expected order to transition from #{from} to #{to}, but didn't."
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
context "with default state machine" do
|
|
13
14
|
transitions = [
|
|
14
|
-
{ :
|
|
15
|
-
{ :
|
|
16
|
-
{ :
|
|
17
|
-
{ :
|
|
15
|
+
{ address: :delivery },
|
|
16
|
+
{ delivery: :payment },
|
|
17
|
+
{ payment: :confirm },
|
|
18
|
+
{ delivery: :confirm }
|
|
18
19
|
]
|
|
19
20
|
|
|
20
21
|
transitions.each do |transition|
|
|
21
22
|
it "transitions from #{transition.keys.first} to #{transition.values.first}" do
|
|
22
|
-
transition = Spree::Order.find_transition(:
|
|
23
|
+
transition = Spree::Order.find_transition(from: transition.keys.first, to: transition.values.first)
|
|
23
24
|
expect(transition).not_to be_nil
|
|
24
25
|
end
|
|
25
26
|
end
|
|
26
27
|
|
|
27
28
|
it '.find_transition when contract was broken' do
|
|
28
|
-
expect(Spree::Order.find_transition({foo: :bar, baz: :dog})).to be_falsey
|
|
29
|
+
expect(Spree::Order.find_transition({ foo: :bar, baz: :dog })).to be_falsey
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
describe "remove_transition" do
|
|
@@ -34,7 +35,7 @@ describe Spree::Order, :type => :model do
|
|
|
34
35
|
end
|
|
35
36
|
|
|
36
37
|
it '.remove_transition' do
|
|
37
|
-
options = {:
|
|
38
|
+
options = { from: transitions.first.keys.first, to: transitions.first.values.first }
|
|
38
39
|
allow(Spree::Order).to receive(:next_event_transition).and_return([options])
|
|
39
40
|
expect(Spree::Order.remove_transition(options)).to be_truthy
|
|
40
41
|
end
|
|
@@ -50,7 +51,7 @@ describe Spree::Order, :type => :model do
|
|
|
50
51
|
end
|
|
51
52
|
|
|
52
53
|
it "passes delivery state when transitioning from address over delivery to payment" do
|
|
53
|
-
allow(order).to receive_messages
|
|
54
|
+
allow(order).to receive_messages payment_required?: true
|
|
54
55
|
order.state = "address"
|
|
55
56
|
expect(order.passed_checkout_step?("delivery")).to be false
|
|
56
57
|
order.state = "delivery"
|
|
@@ -62,7 +63,7 @@ describe Spree::Order, :type => :model do
|
|
|
62
63
|
context "#checkout_steps" do
|
|
63
64
|
context "when confirmation not required" do
|
|
64
65
|
before do
|
|
65
|
-
allow(order).to receive_messages
|
|
66
|
+
allow(order).to receive_messages payment_required?: true
|
|
66
67
|
end
|
|
67
68
|
|
|
68
69
|
specify do
|
|
@@ -72,7 +73,7 @@ describe Spree::Order, :type => :model do
|
|
|
72
73
|
|
|
73
74
|
context "when confirmation required" do
|
|
74
75
|
before do
|
|
75
|
-
allow(order).to receive_messages
|
|
76
|
+
allow(order).to receive_messages payment_required?: true
|
|
76
77
|
end
|
|
77
78
|
|
|
78
79
|
specify do
|
|
@@ -81,14 +82,14 @@ describe Spree::Order, :type => :model do
|
|
|
81
82
|
end
|
|
82
83
|
|
|
83
84
|
context "when payment not required" do
|
|
84
|
-
before { allow(order).to receive_messages
|
|
85
|
+
before { allow(order).to receive_messages payment_required?: false }
|
|
85
86
|
specify do
|
|
86
87
|
expect(order.checkout_steps).to eq(%w(address delivery confirm complete))
|
|
87
88
|
end
|
|
88
89
|
end
|
|
89
90
|
|
|
90
91
|
context "when payment required" do
|
|
91
|
-
before { allow(order).to receive_messages
|
|
92
|
+
before { allow(order).to receive_messages payment_required?: true }
|
|
92
93
|
specify do
|
|
93
94
|
expect(order.checkout_steps).to eq(%w(address delivery payment confirm complete))
|
|
94
95
|
end
|
|
@@ -166,7 +167,7 @@ describe Spree::Order, :type => :model do
|
|
|
166
167
|
before do
|
|
167
168
|
order.state = 'address'
|
|
168
169
|
order.ship_address = ship_address
|
|
169
|
-
|
|
170
|
+
FactoryGirl.create(:shipment, order: order, cost: 10)
|
|
170
171
|
order.email = "user@example.com"
|
|
171
172
|
order.save!
|
|
172
173
|
end
|
|
@@ -180,11 +181,11 @@ describe Spree::Order, :type => :model do
|
|
|
180
181
|
end
|
|
181
182
|
|
|
182
183
|
it "updates totals" do
|
|
183
|
-
line_item = FactoryGirl.create(:line_item, :
|
|
184
|
+
line_item = FactoryGirl.create(:line_item, price: 10, adjustment_total: 10)
|
|
184
185
|
order.line_items << line_item
|
|
185
|
-
tax_rate = create(:tax_rate, :
|
|
186
|
-
allow(Spree::TaxRate).to receive_messages :
|
|
187
|
-
FactoryGirl.create(:tax_adjustment, :
|
|
186
|
+
tax_rate = create(:tax_rate, tax_category: line_item.tax_category, amount: 0.05)
|
|
187
|
+
allow(Spree::TaxRate).to receive_messages match: [tax_rate]
|
|
188
|
+
FactoryGirl.create(:tax_adjustment, adjustable: line_item, source: tax_rate, order: order)
|
|
188
189
|
order.email = "user@example.com"
|
|
189
190
|
order.next!
|
|
190
191
|
expect(order.adjustment_total).to eq(0.5)
|
|
@@ -194,7 +195,7 @@ describe Spree::Order, :type => :model do
|
|
|
194
195
|
end
|
|
195
196
|
|
|
196
197
|
it "transitions to delivery" do
|
|
197
|
-
allow(order).to receive_messages(:
|
|
198
|
+
allow(order).to receive_messages(ensure_available_shipping_rates: true)
|
|
198
199
|
order.next!
|
|
199
200
|
assert_state_changed(order, 'address', 'delivery')
|
|
200
201
|
expect(order.state).to eq("delivery")
|
|
@@ -202,7 +203,7 @@ describe Spree::Order, :type => :model do
|
|
|
202
203
|
|
|
203
204
|
it "does not call persist_order_address if there is no address on the order" do
|
|
204
205
|
# otherwise, it will crash
|
|
205
|
-
allow(order).to receive_messages(:
|
|
206
|
+
allow(order).to receive_messages(ensure_available_shipping_rates: true)
|
|
206
207
|
|
|
207
208
|
order.user = FactoryGirl.create(:user)
|
|
208
209
|
order.save!
|
|
@@ -212,7 +213,7 @@ describe Spree::Order, :type => :model do
|
|
|
212
213
|
end
|
|
213
214
|
|
|
214
215
|
it "calls persist_order_address on the order's user" do
|
|
215
|
-
allow(order).to receive_messages(:
|
|
216
|
+
allow(order).to receive_messages(ensure_available_shipping_rates: true)
|
|
216
217
|
|
|
217
218
|
order.user = FactoryGirl.create(:user)
|
|
218
219
|
order.ship_address = FactoryGirl.create(:address)
|
|
@@ -224,7 +225,7 @@ describe Spree::Order, :type => :model do
|
|
|
224
225
|
end
|
|
225
226
|
|
|
226
227
|
it "does not call persist_order_address on the order's user for a temporary address" do
|
|
227
|
-
allow(order).to receive_messages(:
|
|
228
|
+
allow(order).to receive_messages(ensure_available_shipping_rates: true)
|
|
228
229
|
|
|
229
230
|
order.user = FactoryGirl.create(:user)
|
|
230
231
|
order.temporary_address = true
|
|
@@ -245,9 +246,11 @@ describe Spree::Order, :type => :model do
|
|
|
245
246
|
context 'when order has default selected_shipping_rate_id' do
|
|
246
247
|
let(:shipment) { create(:shipment, order: order) }
|
|
247
248
|
let(:shipping_method) { create(:shipping_method) }
|
|
248
|
-
let(:shipping_rate) {
|
|
249
|
+
let(:shipping_rate) {
|
|
250
|
+
[
|
|
249
251
|
Spree::ShippingRate.create!(shipping_method: shipping_method, cost: 10.00, shipment: shipment)
|
|
250
|
-
]
|
|
252
|
+
]
|
|
253
|
+
}
|
|
251
254
|
|
|
252
255
|
before do
|
|
253
256
|
order.state = 'address'
|
|
@@ -301,7 +304,7 @@ describe Spree::Order, :type => :model do
|
|
|
301
304
|
|
|
302
305
|
context "with payment required" do
|
|
303
306
|
before do
|
|
304
|
-
allow(order).to receive_messages
|
|
307
|
+
allow(order).to receive_messages payment_required?: true
|
|
305
308
|
end
|
|
306
309
|
|
|
307
310
|
it "transitions to payment" do
|
|
@@ -314,7 +317,7 @@ describe Spree::Order, :type => :model do
|
|
|
314
317
|
|
|
315
318
|
context "without payment required" do
|
|
316
319
|
before do
|
|
317
|
-
allow(order).to receive_messages
|
|
320
|
+
allow(order).to receive_messages payment_required?: false
|
|
318
321
|
end
|
|
319
322
|
|
|
320
323
|
it "transitions to complete" do
|
|
@@ -420,7 +423,7 @@ describe Spree::Order, :type => :model do
|
|
|
420
423
|
# Regression test for https://github.com/spree/spree/issues/2028
|
|
421
424
|
context "when payment is not required" do
|
|
422
425
|
before do
|
|
423
|
-
allow(order).to receive_messages
|
|
426
|
+
allow(order).to receive_messages payment_required?: false
|
|
424
427
|
end
|
|
425
428
|
|
|
426
429
|
it "does not call process payments" do
|
|
@@ -463,7 +466,7 @@ describe Spree::Order, :type => :model do
|
|
|
463
466
|
order.line_items << FactoryGirl.create(:line_item)
|
|
464
467
|
order.line_items.first.variant.stock_items.each do |si|
|
|
465
468
|
si.set_count_on_hand(0)
|
|
466
|
-
si.update_attributes(:
|
|
469
|
+
si.update_attributes(backorderable: false)
|
|
467
470
|
end
|
|
468
471
|
|
|
469
472
|
Spree::OrderUpdater.new(order).update
|
|
@@ -536,7 +539,7 @@ describe Spree::Order, :type => :model do
|
|
|
536
539
|
|
|
537
540
|
context 'when the exchange is not for an unreturned item' do
|
|
538
541
|
it 'does not allow the order to completed' do
|
|
539
|
-
expect { order.complete! }.to raise_error
|
|
542
|
+
expect { order.complete! }.to raise_error Spree::Order::InsufficientStock
|
|
540
543
|
expect(order.payments.first.state).to eq('checkout')
|
|
541
544
|
end
|
|
542
545
|
end
|
|
@@ -618,7 +621,7 @@ describe Spree::Order, :type => :model do
|
|
|
618
621
|
let(:order) { create(:order_with_line_items) }
|
|
619
622
|
|
|
620
623
|
it 'can complete the order' do
|
|
621
|
-
|
|
624
|
+
create(:payment, state: 'completed', order: order, amount: order.total)
|
|
622
625
|
order.update!
|
|
623
626
|
expect(order.complete).to eq(true)
|
|
624
627
|
end
|
|
@@ -637,7 +640,7 @@ describe Spree::Order, :type => :model do
|
|
|
637
640
|
|
|
638
641
|
skip "should only call default transitions once when checkout_flow is redefined" do
|
|
639
642
|
order = SubclassedOrder.new
|
|
640
|
-
allow(order).to receive_messages
|
|
643
|
+
allow(order).to receive_messages payment_required?: true
|
|
641
644
|
expect(order).to receive(:process_payments!).once
|
|
642
645
|
order.state = "payment"
|
|
643
646
|
order.next!
|
|
@@ -662,7 +665,7 @@ describe Spree::Order, :type => :model do
|
|
|
662
665
|
end
|
|
663
666
|
|
|
664
667
|
it "should not keep old event transitions when checkout_flow is redefined" do
|
|
665
|
-
expect(Spree::Order.next_event_transitions).to eq([{:
|
|
668
|
+
expect(Spree::Order.next_event_transitions).to eq([{ cart: :payment }, { payment: :complete }])
|
|
666
669
|
end
|
|
667
670
|
|
|
668
671
|
it "should not keep old events when checkout_flow is redefined" do
|
|
@@ -692,10 +695,15 @@ describe Spree::Order, :type => :model do
|
|
|
692
695
|
Spree::Order.checkout_flow(&@old_checkout_flow)
|
|
693
696
|
end
|
|
694
697
|
|
|
698
|
+
it "does not attempt to check shipping rates" do
|
|
699
|
+
order.email = 'user@example.com'
|
|
700
|
+
expect(order).not_to receive(:ensure_available_shipping_rates)
|
|
701
|
+
order.next!
|
|
702
|
+
assert_state_changed(order, 'cart', 'complete')
|
|
703
|
+
end
|
|
704
|
+
|
|
695
705
|
it "does not attempt to process payments" do
|
|
696
706
|
order.email = 'user@example.com'
|
|
697
|
-
order.store = FactoryGirl.build(:store)
|
|
698
|
-
allow(order).to receive(:ensure_available_shipping_rates).and_return(true)
|
|
699
707
|
allow(order).to receive(:ensure_promotions_eligible).and_return(true)
|
|
700
708
|
allow(order).to receive(:ensure_line_item_variants_are_not_deleted).and_return(true)
|
|
701
709
|
allow(order).to receive_message_chain(:line_items, :present?).and_return(true)
|
|
@@ -705,7 +713,6 @@ describe Spree::Order, :type => :model do
|
|
|
705
713
|
order.next!
|
|
706
714
|
assert_state_changed(order, 'cart', 'complete')
|
|
707
715
|
end
|
|
708
|
-
|
|
709
716
|
end
|
|
710
717
|
|
|
711
718
|
context "insert checkout step" do
|
|
@@ -724,7 +731,7 @@ describe Spree::Order, :type => :model do
|
|
|
724
731
|
end
|
|
725
732
|
|
|
726
733
|
it "should maintain removed transitions" do
|
|
727
|
-
transition = Spree::Order.find_transition(:
|
|
734
|
+
transition = Spree::Order.find_transition(from: :delivery, to: :confirm)
|
|
728
735
|
expect(transition).to be_nil
|
|
729
736
|
end
|
|
730
737
|
|
|
@@ -771,7 +778,7 @@ describe Spree::Order, :type => :model do
|
|
|
771
778
|
end
|
|
772
779
|
|
|
773
780
|
it "should maintain removed transitions" do
|
|
774
|
-
transition = Spree::Order.find_transition(:
|
|
781
|
+
transition = Spree::Order.find_transition(from: :delivery, to: :confirm)
|
|
775
782
|
expect(transition).to be_nil
|
|
776
783
|
end
|
|
777
784
|
|
|
@@ -793,7 +800,7 @@ describe Spree::Order, :type => :model do
|
|
|
793
800
|
it 'calls update_atributes without order params' do
|
|
794
801
|
expect {
|
|
795
802
|
order.update_from_params( params, permitted_params)
|
|
796
|
-
}.not_to change{order.attributes}
|
|
803
|
+
}.not_to change{ order.attributes }
|
|
797
804
|
end
|
|
798
805
|
|
|
799
806
|
it 'runs the callbacks' do
|
|
@@ -815,12 +822,12 @@ describe Spree::Order, :type => :model do
|
|
|
815
822
|
payments_attributes: [
|
|
816
823
|
{
|
|
817
824
|
payment_method_id: 1,
|
|
818
|
-
source_attributes: attributes_for(:credit_card)
|
|
819
|
-
}
|
|
825
|
+
source_attributes: attributes_for(:credit_card)
|
|
826
|
+
}
|
|
820
827
|
],
|
|
821
|
-
existing_card: credit_card.id
|
|
828
|
+
existing_card: credit_card.id
|
|
822
829
|
},
|
|
823
|
-
cvc_confirm: "737"
|
|
830
|
+
cvc_confirm: "737"
|
|
824
831
|
)
|
|
825
832
|
end
|
|
826
833
|
|
|
@@ -857,8 +864,8 @@ describe Spree::Order, :type => :model do
|
|
|
857
864
|
end
|
|
858
865
|
|
|
859
866
|
context 'has params' do
|
|
860
|
-
let(:permitted_params) { [
|
|
861
|
-
let(:params) { ActionController::Parameters.new(order: {
|
|
867
|
+
let(:permitted_params) { [:good_param] }
|
|
868
|
+
let(:params) { ActionController::Parameters.new(order: { bad_param: 'okay' } ) }
|
|
862
869
|
|
|
863
870
|
it 'does not let through unpermitted attributes' do
|
|
864
871
|
expect(order).to receive(:assign_attributes).with({})
|
|
@@ -866,10 +873,10 @@ describe Spree::Order, :type => :model do
|
|
|
866
873
|
end
|
|
867
874
|
|
|
868
875
|
context 'has allowed params' do
|
|
869
|
-
let(:params) { ActionController::Parameters.new(order: {
|
|
876
|
+
let(:params) { ActionController::Parameters.new(order: { good_param: 'okay' } ) }
|
|
870
877
|
|
|
871
878
|
it 'accepts permitted attributes' do
|
|
872
|
-
expect(order).to receive(:assign_attributes).with({"good_param" => 'okay'})
|
|
879
|
+
expect(order).to receive(:assign_attributes).with({ "good_param" => 'okay' })
|
|
873
880
|
order.update_from_params(params, permitted_params)
|
|
874
881
|
end
|
|
875
882
|
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe Spree::Order, :
|
|
3
|
+
describe Spree::Order, type: :model do
|
|
4
4
|
let(:order) { stub_model("Spree::Order") }
|
|
5
5
|
|
|
6
6
|
context "#finalize!" do
|
|
7
|
+
let!(:store) { create(:store) }
|
|
7
8
|
let(:order) { Spree::Order.create(email: 'test@example.com', store: store) }
|
|
8
|
-
let(:store) { FactoryGirl.build(:store) }
|
|
9
9
|
|
|
10
10
|
before do
|
|
11
11
|
order.update_column :state, 'complete'
|
|
@@ -35,15 +35,14 @@ describe Spree::Order, :type => :model do
|
|
|
35
35
|
Spree::Shipment.create(order: order)
|
|
36
36
|
order.shipments.reload
|
|
37
37
|
|
|
38
|
-
allow(order).to receive_messages(
|
|
38
|
+
allow(order).to receive_messages(paid?: true, complete?: true)
|
|
39
39
|
order.finalize!
|
|
40
40
|
order.reload # reload so we're sure the changes are persisted
|
|
41
41
|
expect(order.shipment_state).to eq('ready')
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
-
after { Spree::Config.set :track_inventory_levels => true }
|
|
45
44
|
it "should not sell inventory units if track_inventory_levels is false" do
|
|
46
|
-
Spree::Config.set :
|
|
45
|
+
Spree::Config.set track_inventory_levels: false
|
|
47
46
|
expect(Spree::InventoryUnit).not_to receive(:sell_units)
|
|
48
47
|
order.finalize!
|
|
49
48
|
end
|
|
@@ -62,7 +61,7 @@ describe Spree::Order, :type => :model do
|
|
|
62
61
|
end
|
|
63
62
|
|
|
64
63
|
it "should not send duplicate confirmation emails" do
|
|
65
|
-
allow(order).to receive_messages(
|
|
64
|
+
allow(order).to receive_messages(confirmation_delivered?: true)
|
|
66
65
|
expect(Spree::OrderMailer).not_to receive(:confirm_email)
|
|
67
66
|
order.finalize!
|
|
68
67
|
end
|
|
@@ -81,12 +80,12 @@ describe Spree::Order, :type => :model do
|
|
|
81
80
|
|
|
82
81
|
context "order is considered risky" do
|
|
83
82
|
before do
|
|
84
|
-
allow(order).to receive_messages
|
|
83
|
+
allow(order).to receive_messages is_risky?: true
|
|
85
84
|
end
|
|
86
85
|
|
|
87
86
|
context "and order is approved" do
|
|
88
87
|
before do
|
|
89
|
-
allow(order).to receive_messages
|
|
88
|
+
allow(order).to receive_messages approved?: true
|
|
90
89
|
end
|
|
91
90
|
|
|
92
91
|
it "should leave order in complete state" do
|
|
@@ -98,7 +97,7 @@ describe Spree::Order, :type => :model do
|
|
|
98
97
|
|
|
99
98
|
context "order is not considered risky" do
|
|
100
99
|
before do
|
|
101
|
-
allow(order).to receive_messages
|
|
100
|
+
allow(order).to receive_messages is_risky?: false
|
|
102
101
|
end
|
|
103
102
|
|
|
104
103
|
it "should set completed_at" do
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
3
|
module Spree
|
|
4
|
-
describe Spree::Order, :
|
|
4
|
+
describe Spree::Order, type: :model do
|
|
5
5
|
let(:order) { stub_model(Spree::Order) }
|
|
6
6
|
let(:updater) { Spree::OrderUpdater.new(order) }
|
|
7
7
|
|
|
@@ -11,12 +11,12 @@ module Spree
|
|
|
11
11
|
Spree::Config[:auto_capture] = true
|
|
12
12
|
|
|
13
13
|
allow(order).to receive_message_chain(:line_items, :empty?).and_return(false)
|
|
14
|
-
allow(order).to receive_messages :
|
|
14
|
+
allow(order).to receive_messages total: 100
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it 'processes all checkout payments' do
|
|
18
|
-
payment_1 = create(:payment, :
|
|
19
|
-
payment_2 = create(:payment, :
|
|
18
|
+
payment_1 = create(:payment, amount: 50)
|
|
19
|
+
payment_2 = create(:payment, amount: 50)
|
|
20
20
|
allow(order).to receive(:unprocessed_payments).and_return([payment_1, payment_2])
|
|
21
21
|
|
|
22
22
|
order.process_payments!
|
|
@@ -28,9 +28,9 @@ module Spree
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
it 'does not go over total for order' do
|
|
31
|
-
payment_1 = create(:payment, :
|
|
32
|
-
payment_2 = create(:payment, :
|
|
33
|
-
payment_3 = create(:payment, :
|
|
31
|
+
payment_1 = create(:payment, amount: 50)
|
|
32
|
+
payment_2 = create(:payment, amount: 50)
|
|
33
|
+
payment_3 = create(:payment, amount: 50)
|
|
34
34
|
allow(order).to receive(:unprocessed_payments).and_return([payment_1, payment_2, payment_3])
|
|
35
35
|
|
|
36
36
|
order.process_payments!
|
|
@@ -43,8 +43,8 @@ module Spree
|
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
it "does not use failed payments" do
|
|
46
|
-
payment_1 = create(:payment, :
|
|
47
|
-
payment_2 = create(:payment, :
|
|
46
|
+
payment_1 = create(:payment, amount: 50)
|
|
47
|
+
payment_2 = create(:payment, amount: 50, state: 'failed')
|
|
48
48
|
allow(order).to receive(:pending_payments).and_return([payment_1])
|
|
49
49
|
|
|
50
50
|
expect(payment_2).not_to receive(:process!)
|
|
@@ -72,12 +72,12 @@ module Spree
|
|
|
72
72
|
let(:payment_method){ create(:credit_card_payment_method) }
|
|
73
73
|
let(:payment_attributes) do
|
|
74
74
|
{
|
|
75
|
-
:
|
|
76
|
-
:
|
|
77
|
-
:
|
|
78
|
-
:
|
|
79
|
-
:
|
|
80
|
-
:
|
|
75
|
+
payment_method_id: payment_method.id,
|
|
76
|
+
source_attributes: {
|
|
77
|
+
name: "Ryan Bigg",
|
|
78
|
+
number: "41111111111111111111",
|
|
79
|
+
expiry: "01 / 15",
|
|
80
|
+
verification_value: "123"
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
end
|
|
@@ -129,12 +129,12 @@ module Spree
|
|
|
129
129
|
before { expect(payment).to receive(:process!).and_raise(Spree::Core::GatewayError) }
|
|
130
130
|
|
|
131
131
|
it "should return true when configured to allow checkout on gateway failures" do
|
|
132
|
-
Spree::Config.set :
|
|
132
|
+
Spree::Config.set allow_checkout_on_gateway_error: true
|
|
133
133
|
expect(order.process_payments!).to be true
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
it "should return false when not configured to allow checkout on gateway failures" do
|
|
137
|
-
Spree::Config.set :
|
|
137
|
+
Spree::Config.set allow_checkout_on_gateway_error: false
|
|
138
138
|
expect(order.process_payments!).to be false
|
|
139
139
|
end
|
|
140
140
|
end
|
|
@@ -142,7 +142,7 @@ module Spree
|
|
|
142
142
|
|
|
143
143
|
context "#authorize_payments!" do
|
|
144
144
|
let(:payment) { stub_model(Spree::Payment) }
|
|
145
|
-
before { allow(order).to receive_messages :
|
|
145
|
+
before { allow(order).to receive_messages unprocessed_payments: [payment], total: 10 }
|
|
146
146
|
subject { order.authorize_payments! }
|
|
147
147
|
|
|
148
148
|
it "processes payments with attempt_authorization!" do
|
|
@@ -155,7 +155,7 @@ module Spree
|
|
|
155
155
|
|
|
156
156
|
context "#capture_payments!" do
|
|
157
157
|
let(:payment) { stub_model(Spree::Payment) }
|
|
158
|
-
before { allow(order).to receive_messages :
|
|
158
|
+
before { allow(order).to receive_messages unprocessed_payments: [payment], total: 10 }
|
|
159
159
|
subject { order.capture_payments! }
|
|
160
160
|
|
|
161
161
|
it "processes payments with attempt_authorization!" do
|
|
@@ -198,7 +198,7 @@ module Spree
|
|
|
198
198
|
before { order.update_attributes(state: 'canceled') }
|
|
199
199
|
|
|
200
200
|
it "it should be a negative amount incorporating reimbursements" do
|
|
201
|
-
expect(order.outstanding_balance).to eq
|
|
201
|
+
expect(order.outstanding_balance).to eq(-10)
|
|
202
202
|
end
|
|
203
203
|
end
|
|
204
204
|
|