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
|
@@ -2,6 +2,7 @@ require 'spec_helper'
|
|
|
2
2
|
|
|
3
3
|
module Spree
|
|
4
4
|
describe OrderUpdater, type: :model do
|
|
5
|
+
let!(:store) { create :store }
|
|
5
6
|
let(:order) { Spree::Order.create }
|
|
6
7
|
let(:updater) { Spree::OrderUpdater.new(order) }
|
|
7
8
|
|
|
@@ -38,14 +39,14 @@ module Spree
|
|
|
38
39
|
let(:promotion_action) do
|
|
39
40
|
Promotion::Actions::CreateAdjustment.create!({
|
|
40
41
|
calculator: calculator,
|
|
41
|
-
promotion: promotion
|
|
42
|
+
promotion: promotion
|
|
42
43
|
})
|
|
43
44
|
end
|
|
44
45
|
|
|
45
46
|
before do
|
|
46
47
|
updater.update
|
|
47
48
|
create(:adjustment, source: promotion_action, adjustable: order, order: order)
|
|
48
|
-
create(:line_item, :
|
|
49
|
+
create(:line_item, order: order, price: 10) # in addition to the two already created
|
|
49
50
|
updater.update
|
|
50
51
|
end
|
|
51
52
|
|
|
@@ -60,7 +61,7 @@ module Spree
|
|
|
60
61
|
order.line_items.first.update_columns({
|
|
61
62
|
adjustment_total: 10.05,
|
|
62
63
|
additional_tax_total: 0.05,
|
|
63
|
-
included_tax_total: 0.05
|
|
64
|
+
included_tax_total: 0.05
|
|
64
65
|
})
|
|
65
66
|
updater.update_adjustment_total
|
|
66
67
|
expect(order.adjustment_total).to eq(10.05)
|
|
@@ -86,7 +87,6 @@ module Spree
|
|
|
86
87
|
expect(order.shipment_state).to be_nil
|
|
87
88
|
end
|
|
88
89
|
|
|
89
|
-
|
|
90
90
|
["shipped", "ready", "pending"].each do |state|
|
|
91
91
|
it "is #{state}" do
|
|
92
92
|
create(:shipment, order: order, state: state)
|
|
@@ -165,7 +165,6 @@ module Spree
|
|
|
165
165
|
end
|
|
166
166
|
|
|
167
167
|
context "order is canceled" do
|
|
168
|
-
|
|
169
168
|
before do
|
|
170
169
|
order.state = 'canceled'
|
|
171
170
|
end
|
|
@@ -181,7 +180,6 @@ module Spree
|
|
|
181
180
|
end
|
|
182
181
|
|
|
183
182
|
context "and is paid" do
|
|
184
|
-
|
|
185
183
|
it "is credit_owed" do
|
|
186
184
|
order.payment_total = 30
|
|
187
185
|
order.total = 30
|
|
@@ -190,7 +188,6 @@ module Spree
|
|
|
190
188
|
updater.update_payment_state
|
|
191
189
|
}.to change { order.payment_state }.to 'credit_owed'
|
|
192
190
|
end
|
|
193
|
-
|
|
194
191
|
end
|
|
195
192
|
|
|
196
193
|
context "and payment is refunded" do
|
|
@@ -203,7 +200,6 @@ module Spree
|
|
|
203
200
|
end
|
|
204
201
|
end
|
|
205
202
|
end
|
|
206
|
-
|
|
207
203
|
end
|
|
208
204
|
|
|
209
205
|
it "state change" do
|
|
@@ -25,13 +25,13 @@ module Spree
|
|
|
25
25
|
context 'with a new source' do
|
|
26
26
|
let(:attributes) do
|
|
27
27
|
{
|
|
28
|
-
:
|
|
29
|
-
:
|
|
30
|
-
:
|
|
31
|
-
:
|
|
32
|
-
:
|
|
33
|
-
:
|
|
34
|
-
:
|
|
28
|
+
amount: 100,
|
|
29
|
+
payment_method: payment_method,
|
|
30
|
+
source_attributes: {
|
|
31
|
+
expiry: "01 / 99",
|
|
32
|
+
number: '1234567890123',
|
|
33
|
+
verification_value: '123',
|
|
34
|
+
name: 'Foo Bar'
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
end
|
|
@@ -48,9 +48,8 @@ module Spree
|
|
|
48
48
|
{
|
|
49
49
|
amount: 100,
|
|
50
50
|
payment_method: payment_method,
|
|
51
|
-
source_attributes: {expiry: "1 / 12"}
|
|
51
|
+
source_attributes: { expiry: "1 / 12" }
|
|
52
52
|
}
|
|
53
|
-
|
|
54
53
|
end
|
|
55
54
|
it "errors when payment source not valid" do
|
|
56
55
|
expect(new_payment).not_to be_valid
|
|
@@ -71,7 +70,7 @@ module Spree
|
|
|
71
70
|
{
|
|
72
71
|
source_attributes: {
|
|
73
72
|
existing_card_id: credit_card.id,
|
|
74
|
-
verification_value: '321'
|
|
73
|
+
verification_value: '321'
|
|
75
74
|
}
|
|
76
75
|
}
|
|
77
76
|
end
|
|
@@ -89,9 +88,9 @@ module Spree
|
|
|
89
88
|
end
|
|
90
89
|
|
|
91
90
|
context 'with request_env' do
|
|
92
|
-
let(:request_env){ {'USER_AGENT' => 'Firefox'} }
|
|
91
|
+
let(:request_env){ { 'USER_AGENT' => 'Firefox' } }
|
|
93
92
|
it 'sets the request_env on the payment' do
|
|
94
|
-
expect(new_payment.request_env).to eq({'USER_AGENT' => 'Firefox'})
|
|
93
|
+
expect(new_payment.request_env).to eq({ 'USER_AGENT' => 'Firefox' })
|
|
95
94
|
end
|
|
96
95
|
end
|
|
97
96
|
|
|
@@ -70,7 +70,7 @@ describe Spree::PaymentMethod::StoreCredit do
|
|
|
70
70
|
let(:auth_code) { auth_event.authorization_code }
|
|
71
71
|
let(:gateway_options) { super().merge(originator: originator) }
|
|
72
72
|
|
|
73
|
-
let(:authorized_amount) { capture_amount/100.0 }
|
|
73
|
+
let(:authorized_amount) { capture_amount / 100.0 }
|
|
74
74
|
let(:auth_event) { create(:store_credit_auth_event, store_credit: store_credit, amount: authorized_amount) }
|
|
75
75
|
let(:store_credit) { create(:store_credit, amount_authorized: authorized_amount) }
|
|
76
76
|
let(:originator) { nil }
|
|
@@ -85,7 +85,7 @@ describe Spree::PaymentMethod::StoreCredit do
|
|
|
85
85
|
end
|
|
86
86
|
|
|
87
87
|
context 'when unable to authorize the amount' do
|
|
88
|
-
let(:authorized_amount) { (capture_amount-1)/100 }
|
|
88
|
+
let(:authorized_amount) { (capture_amount - 1) / 100 }
|
|
89
89
|
|
|
90
90
|
before do
|
|
91
91
|
allow_any_instance_of(Spree::StoreCredit).to receive_messages(authorize: true)
|
|
@@ -256,10 +256,12 @@ describe Spree::PaymentMethod::StoreCredit do
|
|
|
256
256
|
let(:captured_amount) { 10.0 }
|
|
257
257
|
|
|
258
258
|
context "capture event found" do
|
|
259
|
-
let!(:store_credit_event) {
|
|
259
|
+
let!(:store_credit_event) {
|
|
260
|
+
create(:store_credit_capture_event,
|
|
260
261
|
authorization_code: auth_code,
|
|
261
262
|
amount: captured_amount,
|
|
262
|
-
store_credit: store_credit)
|
|
263
|
+
store_credit: store_credit)
|
|
264
|
+
}
|
|
263
265
|
|
|
264
266
|
it "creates a store credit for the same amount that was captured" do
|
|
265
267
|
expect_any_instance_of(Spree::StoreCredit).to receive(:credit).with(captured_amount, auth_code, store_credit.currency)
|
|
@@ -269,10 +271,12 @@ describe Spree::PaymentMethod::StoreCredit do
|
|
|
269
271
|
|
|
270
272
|
context "capture event not found" do
|
|
271
273
|
context "auth event found" do
|
|
272
|
-
let!(:store_credit_event) {
|
|
274
|
+
let!(:store_credit_event) {
|
|
275
|
+
create(:store_credit_auth_event,
|
|
273
276
|
authorization_code: auth_code,
|
|
274
277
|
amount: captured_amount,
|
|
275
|
-
store_credit: store_credit)
|
|
278
|
+
store_credit: store_credit)
|
|
279
|
+
}
|
|
276
280
|
|
|
277
281
|
it "creates a store credit for the same amount that was captured" do
|
|
278
282
|
expect_any_instance_of(Spree::StoreCredit).to receive(:void).with(auth_code)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe Spree::PaymentMethod, :
|
|
3
|
+
describe Spree::PaymentMethod, type: :model do
|
|
4
4
|
describe ".available" do
|
|
5
5
|
let!(:payment_method_nil_display) { create(:payment_method, active: true, display_on: nil) }
|
|
6
6
|
let!(:payment_method_both_display) { create(:payment_method, active: true, display_on: 'both') }
|
|
@@ -34,7 +34,7 @@ describe Spree::PaymentMethod, :type => :model do
|
|
|
34
34
|
payment_method_nil_display,
|
|
35
35
|
payment_method_both_display,
|
|
36
36
|
payment_method_front_display,
|
|
37
|
-
payment_method_back_display
|
|
37
|
+
payment_method_back_display
|
|
38
38
|
]
|
|
39
39
|
)
|
|
40
40
|
end
|
|
@@ -64,7 +64,7 @@ describe Spree::PaymentMethod, :type => :model do
|
|
|
64
64
|
payment_method_nil_display,
|
|
65
65
|
payment_method_both_display,
|
|
66
66
|
store_2_payment_method,
|
|
67
|
-
no_store_payment_method
|
|
67
|
+
no_store_payment_method
|
|
68
68
|
]
|
|
69
69
|
)
|
|
70
70
|
end
|
|
@@ -78,7 +78,7 @@ describe Spree::PaymentMethod, :type => :model do
|
|
|
78
78
|
payment_method_nil_display,
|
|
79
79
|
payment_method_both_display,
|
|
80
80
|
store_2_payment_method,
|
|
81
|
-
no_store_payment_method
|
|
81
|
+
no_store_payment_method
|
|
82
82
|
]
|
|
83
83
|
)
|
|
84
84
|
end
|
|
@@ -143,5 +143,4 @@ describe Spree::PaymentMethod, :type => :model do
|
|
|
143
143
|
end
|
|
144
144
|
end
|
|
145
145
|
end
|
|
146
|
-
|
|
147
146
|
end
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe Spree::Payment, :
|
|
4
|
-
let(:
|
|
3
|
+
describe Spree::Payment, type: :model do
|
|
4
|
+
let(:store) { create :store }
|
|
5
|
+
let(:order) { Spree::Order.create(store: store) }
|
|
5
6
|
let(:refund_reason) { create(:refund_reason) }
|
|
6
7
|
|
|
7
8
|
let(:gateway) do
|
|
8
|
-
gateway = Spree::Gateway::Bogus.new(:
|
|
9
|
-
allow(gateway).to receive_messages :
|
|
9
|
+
gateway = Spree::Gateway::Bogus.new(active: true, name: 'Bogus gateway')
|
|
10
|
+
allow(gateway).to receive_messages source_required: true
|
|
10
11
|
gateway
|
|
11
12
|
end
|
|
12
13
|
|
|
@@ -44,7 +45,6 @@ describe Spree::Payment, :type => :model do
|
|
|
44
45
|
end
|
|
45
46
|
|
|
46
47
|
context '.risky' do
|
|
47
|
-
|
|
48
48
|
let!(:payment_1) { create(:payment, avs_response: 'Y', cvv_response_code: 'M', cvv_response_message: 'Match') }
|
|
49
49
|
let!(:payment_2) { create(:payment, avs_response: 'Y', cvv_response_code: 'M', cvv_response_message: '') }
|
|
50
50
|
let!(:payment_3) { create(:payment, avs_response: 'A', cvv_response_code: 'M', cvv_response_message: 'Match') }
|
|
@@ -53,7 +53,6 @@ describe Spree::Payment, :type => :model do
|
|
|
53
53
|
it 'should not return successful responses' do
|
|
54
54
|
expect(subject.class.risky.to_a).to match_array([payment_3, payment_4])
|
|
55
55
|
end
|
|
56
|
-
|
|
57
56
|
end
|
|
58
57
|
|
|
59
58
|
context "#captured_amount" do
|
|
@@ -91,7 +90,7 @@ describe Spree::Payment, :type => :model do
|
|
|
91
90
|
payment.source = Spree::CreditCard.new
|
|
92
91
|
expect(payment).not_to be_valid
|
|
93
92
|
cc_errors = payment.errors['Credit Card']
|
|
94
|
-
expect(cc_errors).to include("Number can't be blank")
|
|
93
|
+
expect(cc_errors).to include("Card Number can't be blank")
|
|
95
94
|
expect(cc_errors).to include("Month is not a number")
|
|
96
95
|
expect(cc_errors).to include("Year is not a number")
|
|
97
96
|
expect(cc_errors).to include("Verification Value can't be blank")
|
|
@@ -111,7 +110,6 @@ describe Spree::Payment, :type => :model do
|
|
|
111
110
|
payment.failure
|
|
112
111
|
expect(payment.state).to eql('failed')
|
|
113
112
|
end
|
|
114
|
-
|
|
115
113
|
end
|
|
116
114
|
|
|
117
115
|
context 'invalidate' do
|
|
@@ -122,7 +120,6 @@ describe Spree::Payment, :type => :model do
|
|
|
122
120
|
end
|
|
123
121
|
|
|
124
122
|
context "the payment's source is invalid" do
|
|
125
|
-
|
|
126
123
|
before(:each) do
|
|
127
124
|
card.year = 2014
|
|
128
125
|
payment.source = card
|
|
@@ -131,7 +128,7 @@ describe Spree::Payment, :type => :model do
|
|
|
131
128
|
it "transitions to invalid" do
|
|
132
129
|
payment.state = 'checkout'
|
|
133
130
|
payment.invalidate
|
|
134
|
-
expect(payment.state).to eq
|
|
131
|
+
expect(payment.state).to eq 'invalid'
|
|
135
132
|
end
|
|
136
133
|
end
|
|
137
134
|
end
|
|
@@ -210,22 +207,22 @@ describe Spree::Payment, :type => :model do
|
|
|
210
207
|
|
|
211
208
|
it "should invalidate if payment method doesnt support source" do
|
|
212
209
|
expect(payment.payment_method).to receive(:supports?).with(payment.source).and_return(false)
|
|
213
|
-
expect { payment.process!}.to raise_error(Spree::Core::GatewayError)
|
|
210
|
+
expect { payment.process! }.to raise_error(Spree::Core::GatewayError)
|
|
214
211
|
expect(payment.state).to eq('invalid')
|
|
215
212
|
end
|
|
216
213
|
|
|
217
214
|
# Regression test for https://github.com/spree/spree/issues/4598
|
|
218
215
|
it "should allow payments with a gateway_customer_profile_id" do
|
|
219
|
-
|
|
220
|
-
expect(payment.payment_method).to receive(:supports?).with(
|
|
216
|
+
payment.source.update!(gateway_customer_profile_id: "customer_1", brand: 'visa')
|
|
217
|
+
expect(payment.payment_method.provider_class).to receive(:supports?).with('visa').and_return(false)
|
|
221
218
|
expect(payment).to receive(:started_processing!)
|
|
222
219
|
payment.process!
|
|
223
220
|
end
|
|
224
221
|
|
|
225
222
|
# Another regression test for https://github.com/spree/spree/issues/4598
|
|
226
223
|
it "should allow payments with a gateway_payment_profile_id" do
|
|
227
|
-
|
|
228
|
-
expect(payment.payment_method).to receive(:supports?).with(
|
|
224
|
+
payment.source.update!(gateway_payment_profile_id: "customer_1", brand: 'visa')
|
|
225
|
+
expect(payment.payment_method.provider_class).to receive(:supports?).with('visa').and_return(false)
|
|
229
226
|
expect(payment).to receive(:started_processing!)
|
|
230
227
|
payment.process!
|
|
231
228
|
end
|
|
@@ -240,10 +237,10 @@ describe Spree::Payment, :type => :model do
|
|
|
240
237
|
end
|
|
241
238
|
|
|
242
239
|
it "should call authorize on the gateway with the currency code" do
|
|
243
|
-
allow(payment).to receive_messages :
|
|
240
|
+
allow(payment).to receive_messages currency: 'GBP'
|
|
244
241
|
expect(payment.payment_method).to receive(:authorize).with(amount_in_cents,
|
|
245
242
|
card,
|
|
246
|
-
hash_including({:
|
|
243
|
+
hash_including({ currency: "GBP" })).and_return(success_response)
|
|
247
244
|
payment.authorize!
|
|
248
245
|
end
|
|
249
246
|
|
|
@@ -463,7 +460,7 @@ describe Spree::Payment, :type => :model do
|
|
|
463
460
|
|
|
464
461
|
context "if unsuccessful" do
|
|
465
462
|
it "should not make payment complete" do
|
|
466
|
-
allow(gateway).to receive_messages :
|
|
463
|
+
allow(gateway).to receive_messages capture: failed_response
|
|
467
464
|
expect(payment).to receive(:failure)
|
|
468
465
|
expect(payment).not_to receive(:complete)
|
|
469
466
|
expect { payment.capture! }.to raise_error(Spree::Core::GatewayError)
|
|
@@ -495,7 +492,7 @@ describe Spree::Payment, :type => :model do
|
|
|
495
492
|
context "if successful" do
|
|
496
493
|
it "should update the response_code with the authorization from the gateway" do
|
|
497
494
|
# Change it to something different
|
|
498
|
-
allow(gateway).to receive_messages :
|
|
495
|
+
allow(gateway).to receive_messages cancel: success_response
|
|
499
496
|
payment.cancel!
|
|
500
497
|
expect(payment.state).to eq('void')
|
|
501
498
|
expect(payment.response_code).to eq('123')
|
|
@@ -504,16 +501,14 @@ describe Spree::Payment, :type => :model do
|
|
|
504
501
|
|
|
505
502
|
context "if unsuccessful" do
|
|
506
503
|
it "should not void the payment" do
|
|
507
|
-
allow(gateway).to receive_messages :
|
|
504
|
+
allow(gateway).to receive_messages cancel: failed_response
|
|
508
505
|
expect { payment.cancel! }.to raise_error(Spree::Core::GatewayError)
|
|
509
506
|
expect(payment.state).to eq('pending')
|
|
510
507
|
expect(payment.response_code).to eq('abc')
|
|
511
508
|
end
|
|
512
509
|
end
|
|
513
|
-
|
|
514
510
|
end
|
|
515
511
|
|
|
516
|
-
|
|
517
512
|
describe "#void_transaction!" do
|
|
518
513
|
before do
|
|
519
514
|
payment.response_code = '123'
|
|
@@ -522,7 +517,7 @@ describe Spree::Payment, :type => :model do
|
|
|
522
517
|
|
|
523
518
|
context "when profiles are supported" do
|
|
524
519
|
it "should call payment_gateway.void with the payment's response_code" do
|
|
525
|
-
allow(gateway).to receive_messages
|
|
520
|
+
allow(gateway).to receive_messages payment_profiles_supported?: true
|
|
526
521
|
expect(gateway).to receive(:void).with('123', card, anything).and_return(success_response)
|
|
527
522
|
payment.void_transaction!
|
|
528
523
|
end
|
|
@@ -530,14 +525,14 @@ describe Spree::Payment, :type => :model do
|
|
|
530
525
|
|
|
531
526
|
context "when profiles are not supported" do
|
|
532
527
|
it "should call payment_gateway.void with the payment's response_code" do
|
|
533
|
-
allow(gateway).to receive_messages
|
|
528
|
+
allow(gateway).to receive_messages payment_profiles_supported?: false
|
|
534
529
|
expect(gateway).to receive(:void).with('123', anything).and_return(success_response)
|
|
535
530
|
payment.void_transaction!
|
|
536
531
|
end
|
|
537
532
|
end
|
|
538
533
|
|
|
539
534
|
it "should log the response" do
|
|
540
|
-
expect(payment.log_entries).to receive(:create!).with(:
|
|
535
|
+
expect(payment.log_entries).to receive(:create!).with(details: anything)
|
|
541
536
|
payment.void_transaction!
|
|
542
537
|
end
|
|
543
538
|
|
|
@@ -552,7 +547,7 @@ describe Spree::Payment, :type => :model do
|
|
|
552
547
|
|
|
553
548
|
context "if unsuccessful" do
|
|
554
549
|
it "should not void the payment" do
|
|
555
|
-
allow(gateway).to receive_messages :
|
|
550
|
+
allow(gateway).to receive_messages void: failed_response
|
|
556
551
|
expect(payment).not_to receive(:void)
|
|
557
552
|
expect { payment.void_transaction! }.to raise_error(Spree::Core::GatewayError)
|
|
558
553
|
end
|
|
@@ -570,7 +565,6 @@ describe Spree::Payment, :type => :model do
|
|
|
570
565
|
end
|
|
571
566
|
end
|
|
572
567
|
end
|
|
573
|
-
|
|
574
568
|
end
|
|
575
569
|
|
|
576
570
|
context "when already processing" do
|
|
@@ -597,7 +591,7 @@ describe Spree::Payment, :type => :model do
|
|
|
597
591
|
context "raises no error if source is not specified" do
|
|
598
592
|
before do
|
|
599
593
|
payment.source = nil
|
|
600
|
-
allow(payment.payment_method).to receive_messages(
|
|
594
|
+
allow(payment.payment_method).to receive_messages(source_required?: false)
|
|
601
595
|
end
|
|
602
596
|
|
|
603
597
|
specify do
|
|
@@ -640,7 +634,7 @@ describe Spree::Payment, :type => :model do
|
|
|
640
634
|
context "not completed payments" do
|
|
641
635
|
it "doesn't update order payment total" do
|
|
642
636
|
expect {
|
|
643
|
-
Spree::Payment.create(:
|
|
637
|
+
Spree::Payment.create(amount: 100, order: order)
|
|
644
638
|
}.not_to change { order.payment_total }
|
|
645
639
|
end
|
|
646
640
|
end
|
|
@@ -661,20 +655,19 @@ describe Spree::Payment, :type => :model do
|
|
|
661
655
|
end
|
|
662
656
|
|
|
663
657
|
context "completed orders" do
|
|
664
|
-
let(:payment_method) { create(:check_payment_method) }
|
|
665
658
|
before { allow(order).to receive_messages completed?: true }
|
|
666
659
|
|
|
667
660
|
it "updates payment_state and shipments" do
|
|
668
661
|
expect(order.updater).to receive(:update_payment_state)
|
|
669
662
|
expect(order.updater).to receive(:update_shipment_state)
|
|
670
|
-
Spree::Payment.create
|
|
663
|
+
Spree::Payment.create(amount: 100, order: order)
|
|
671
664
|
end
|
|
672
665
|
end
|
|
673
666
|
|
|
674
667
|
context "when profiles are supported" do
|
|
675
668
|
before do
|
|
676
|
-
allow(gateway).to receive_messages
|
|
677
|
-
allow(payment.source).to receive_messages
|
|
669
|
+
allow(gateway).to receive_messages payment_profiles_supported?: true
|
|
670
|
+
allow(payment.source).to receive_messages has_payment_profile?: false
|
|
678
671
|
end
|
|
679
672
|
|
|
680
673
|
context "when there is an error connecting to the gateway" do
|
|
@@ -682,10 +675,10 @@ describe Spree::Payment, :type => :model do
|
|
|
682
675
|
expect(gateway).to receive(:create_profile).and_raise(ActiveMerchant::ConnectionError.new("foo", nil))
|
|
683
676
|
expect do
|
|
684
677
|
Spree::Payment.create(
|
|
685
|
-
:
|
|
686
|
-
:
|
|
687
|
-
:
|
|
688
|
-
:
|
|
678
|
+
amount: 100,
|
|
679
|
+
order: order,
|
|
680
|
+
source: card,
|
|
681
|
+
payment_method: gateway
|
|
689
682
|
)
|
|
690
683
|
end.to raise_error(Spree::Core::GatewayError)
|
|
691
684
|
end
|
|
@@ -713,32 +706,31 @@ describe Spree::Payment, :type => :model do
|
|
|
713
706
|
amount: 100
|
|
714
707
|
)
|
|
715
708
|
end
|
|
716
|
-
|
|
717
709
|
end
|
|
718
710
|
|
|
719
711
|
context "when successfully connecting to the gateway" do
|
|
720
712
|
it "should create a payment profile" do
|
|
721
713
|
expect(payment.payment_method).to receive :create_profile
|
|
722
|
-
|
|
723
|
-
:
|
|
724
|
-
:
|
|
725
|
-
:
|
|
726
|
-
:
|
|
714
|
+
Spree::Payment.create(
|
|
715
|
+
amount: 100,
|
|
716
|
+
order: order,
|
|
717
|
+
source: card,
|
|
718
|
+
payment_method: gateway
|
|
727
719
|
)
|
|
728
720
|
end
|
|
729
721
|
end
|
|
730
722
|
end
|
|
731
723
|
|
|
732
724
|
context "when profiles are not supported" do
|
|
733
|
-
before { allow(gateway).to receive_messages
|
|
725
|
+
before { allow(gateway).to receive_messages payment_profiles_supported?: false }
|
|
734
726
|
|
|
735
727
|
it "should not create a payment profile" do
|
|
736
728
|
expect(gateway).not_to receive :create_profile
|
|
737
|
-
|
|
738
|
-
:
|
|
739
|
-
:
|
|
740
|
-
:
|
|
741
|
-
:
|
|
729
|
+
Spree::Payment.create(
|
|
730
|
+
amount: 100,
|
|
731
|
+
order: order,
|
|
732
|
+
source: card,
|
|
733
|
+
payment_method: gateway
|
|
742
734
|
)
|
|
743
735
|
end
|
|
744
736
|
end
|
|
@@ -747,7 +739,7 @@ describe Spree::Payment, :type => :model do
|
|
|
747
739
|
describe '#invalidate_old_payments' do
|
|
748
740
|
it 'should not invalidate other payments if not valid' do
|
|
749
741
|
payment.save
|
|
750
|
-
invalid_payment = Spree::Payment.new(:
|
|
742
|
+
invalid_payment = Spree::Payment.new(amount: 100, order: order, state: 'invalid', payment_method: gateway)
|
|
751
743
|
invalid_payment.save
|
|
752
744
|
expect(payment.reload.state).to eq('checkout')
|
|
753
745
|
end
|
|
@@ -764,13 +756,13 @@ describe Spree::Payment, :type => :model do
|
|
|
764
756
|
context 'with a new source' do
|
|
765
757
|
let(:params) do
|
|
766
758
|
{
|
|
767
|
-
:
|
|
768
|
-
:
|
|
769
|
-
:
|
|
770
|
-
:
|
|
771
|
-
:
|
|
772
|
-
:
|
|
773
|
-
:
|
|
759
|
+
amount: 100,
|
|
760
|
+
payment_method: gateway,
|
|
761
|
+
source_attributes: {
|
|
762
|
+
expiry: "01 / 99",
|
|
763
|
+
number: '1234567890123',
|
|
764
|
+
verification_value: '123',
|
|
765
|
+
name: 'Spree Commerce'
|
|
774
766
|
}
|
|
775
767
|
}
|
|
776
768
|
end
|
|
@@ -790,8 +782,8 @@ describe Spree::Payment, :type => :model do
|
|
|
790
782
|
end
|
|
791
783
|
|
|
792
784
|
it "errors when payment source not valid" do
|
|
793
|
-
params = { :
|
|
794
|
-
:
|
|
785
|
+
params = { amount: 100, payment_method: gateway,
|
|
786
|
+
source_attributes: { expiry: "1 / 12" } }
|
|
795
787
|
|
|
796
788
|
payment = Spree::Payment.new(params)
|
|
797
789
|
expect(payment).not_to be_valid
|
|
@@ -816,8 +808,8 @@ describe Spree::Payment, :type => :model do
|
|
|
816
808
|
{
|
|
817
809
|
source_attributes: {
|
|
818
810
|
existing_card_id: credit_card.id,
|
|
819
|
-
verification_value: '321'
|
|
820
|
-
}
|
|
811
|
+
verification_value: '321'
|
|
812
|
+
}
|
|
821
813
|
}
|
|
822
814
|
end
|
|
823
815
|
|
|
@@ -840,8 +832,8 @@ describe Spree::Payment, :type => :model do
|
|
|
840
832
|
end
|
|
841
833
|
|
|
842
834
|
it 'sets the request_env on the payment' do
|
|
843
|
-
payment = order.payments.create!(params.merge(request_env: {'USER_AGENT' => 'Firefox'}))
|
|
844
|
-
expect(payment.request_env).to eq({'USER_AGENT' => 'Firefox'})
|
|
835
|
+
payment = order.payments.create!(params.merge(request_env: { 'USER_AGENT' => 'Firefox' }))
|
|
836
|
+
expect(payment.request_env).to eq({ 'USER_AGENT' => 'Firefox' })
|
|
845
837
|
end
|
|
846
838
|
|
|
847
839
|
context 'the credit card belongs to a different user' do
|
|
@@ -893,7 +885,7 @@ describe Spree::Payment, :type => :model do
|
|
|
893
885
|
|
|
894
886
|
# Regression test for https://github.com/spree/spree/issues/2216
|
|
895
887
|
describe "#gateway_options" do
|
|
896
|
-
before { allow(order).to receive_messages(:
|
|
888
|
+
before { allow(order).to receive_messages(last_ip_address: "192.168.1.1") }
|
|
897
889
|
|
|
898
890
|
it "contains an IP" do
|
|
899
891
|
expect(payment.gateway_options[:ip]).to eq(order.last_ip_address)
|
|
@@ -903,7 +895,7 @@ describe Spree::Payment, :type => :model do
|
|
|
903
895
|
# Sets the payment's order to a different Ruby object entirely
|
|
904
896
|
payment.order = Spree::Order.find(payment.order_id)
|
|
905
897
|
email = 'foo@example.com'
|
|
906
|
-
order.update_attributes(:
|
|
898
|
+
order.update_attributes(email: email)
|
|
907
899
|
expect(payment.gateway_options[:email]).to eq(email)
|
|
908
900
|
end
|
|
909
901
|
end
|
|
@@ -1023,7 +1015,7 @@ describe Spree::Payment, :type => :model do
|
|
|
1023
1015
|
|
|
1024
1016
|
context "when the locale uses a coma as a decimal separator" do
|
|
1025
1017
|
before(:each) do
|
|
1026
|
-
I18n.backend.store_translations(:fr, { :
|
|
1018
|
+
I18n.backend.store_translations(:fr, { number: { currency: { format: { delimiter: ' ', separator: ',' } } } })
|
|
1027
1019
|
I18n.locale = :fr
|
|
1028
1020
|
subject.amount = amount
|
|
1029
1021
|
end
|
|
@@ -1130,10 +1122,10 @@ describe Spree::Payment, :type => :model do
|
|
|
1130
1122
|
expect(payment.state_changes).to be_empty
|
|
1131
1123
|
expect(payment.process!).to be true
|
|
1132
1124
|
expect(payment.state_changes.count).to eq(2)
|
|
1133
|
-
changes = payment.state_changes.map { |change| { change.previous_state => change.next_state} }
|
|
1125
|
+
changes = payment.state_changes.map { |change| { change.previous_state => change.next_state } }
|
|
1134
1126
|
expect(changes).to match_array([
|
|
1135
|
-
{"checkout" => "processing"},
|
|
1136
|
-
{ "processing" => "pending"}
|
|
1127
|
+
{ "checkout" => "processing" },
|
|
1128
|
+
{ "processing" => "pending" }
|
|
1137
1129
|
])
|
|
1138
1130
|
end
|
|
1139
1131
|
end
|