solidus_core 1.0.7 → 1.1.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of solidus_core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/controllers/spree/base_controller.rb +1 -2
- data/app/helpers/spree/base_helper.rb +4 -5
- data/app/helpers/spree/products_helper.rb +0 -8
- data/app/mailers/spree/carton_mailer.rb +17 -5
- data/app/mailers/spree/order_mailer.rb +12 -4
- data/app/models/concerns/spree/adjustment_source.rb +7 -8
- data/app/models/concerns/spree/default_price.rb +8 -2
- data/app/models/concerns/spree/named_type.rb +1 -1
- data/app/models/concerns/spree/ordered_property_value_list.rb +28 -0
- data/app/models/concerns/spree/user_address_book.rb +125 -0
- data/app/models/concerns/spree/user_api_authentication.rb +6 -2
- data/app/models/concerns/spree/user_methods.rb +5 -6
- data/app/models/spree/ability.rb +1 -38
- data/app/models/spree/address.rb +79 -36
- data/app/models/spree/adjustment.rb +74 -25
- data/app/models/spree/adjustment_reason.rb +1 -1
- data/app/models/spree/app_configuration.rb +35 -0
- data/app/models/spree/carton.rb +3 -3
- data/app/models/spree/country.rb +7 -1
- data/app/models/spree/credit_card.rb +5 -1
- data/app/models/spree/gateway.rb +0 -8
- data/app/models/spree/inventory_unit.rb +1 -1
- data/app/models/spree/item_adjustments.rb +1 -1
- data/app/models/spree/line_item_action.rb +1 -1
- data/app/models/spree/option_type.rb +3 -2
- data/app/models/spree/option_value.rb +1 -1
- data/app/models/spree/option_values_variant.rb +1 -1
- data/app/models/spree/order.rb +28 -56
- data/app/models/spree/order/checkout.rb +18 -20
- data/app/models/spree/order_mutex.rb +1 -1
- data/app/models/spree/order_promotion.rb +1 -1
- data/app/models/spree/order_shipping.rb +6 -12
- data/app/models/spree/order_stock_location.rb +1 -1
- data/app/models/spree/payment.rb +3 -14
- data/app/models/spree/payment/processing.rb +7 -14
- data/app/models/spree/payment_method.rb +5 -5
- data/app/models/spree/permission_sets/default_customer.rb +31 -0
- data/app/models/spree/permission_sets/order_display.rb +4 -0
- data/app/models/spree/permission_sets/order_management.rb +3 -0
- data/app/models/spree/permission_sets/promotion_display.rb +2 -1
- data/app/models/spree/permission_sets/restricted_stock_display.rb +16 -0
- data/app/models/spree/permission_sets/restricted_stock_management.rb +16 -0
- data/app/models/spree/permission_sets/restricted_stock_transfer_display.rb +17 -0
- data/app/models/spree/permission_sets/restricted_stock_transfer_management.rb +51 -0
- data/app/models/spree/permission_sets/stock_display.rb +1 -1
- data/app/models/spree/permission_sets/stock_management.rb +1 -2
- data/app/models/spree/permission_sets/stock_transfer_display.rb +10 -0
- data/app/models/spree/permission_sets/stock_transfer_management.rb +11 -0
- data/app/models/spree/permission_sets/super_user.rb +9 -0
- data/app/models/spree/product.rb +66 -28
- data/app/models/spree/product/scopes.rb +7 -22
- data/app/models/spree/product_option_type.rb +1 -1
- data/app/models/spree/product_promotion_rule.rb +6 -0
- data/app/models/spree/product_property.rb +2 -20
- data/app/models/spree/promotion/rules/product.rb +2 -1
- data/app/models/spree/refund.rb +0 -10
- data/app/models/spree/reimbursement.rb +1 -1
- data/app/models/spree/return_item.rb +5 -3
- data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +13 -4
- data/app/models/spree/return_item/exchange_variant_eligibility/same_product.rb +2 -2
- data/app/models/spree/return_reason.rb +1 -1
- data/app/models/spree/role.rb +1 -1
- data/app/models/spree/role_user.rb +1 -1
- data/app/models/spree/shipment.rb +13 -4
- data/app/models/spree/shipping_manifest.rb +9 -3
- data/app/models/spree/shipping_method.rb +2 -3
- data/app/models/spree/shipping_method_zone.rb +6 -0
- data/app/models/spree/state.rb +1 -1
- data/app/models/spree/stock_item.rb +15 -3
- data/app/models/spree/stock_movement.rb +1 -1
- data/app/models/spree/store.rb +3 -0
- data/app/models/spree/store_credit.rb +1 -1
- data/app/models/spree/store_credit_category.rb +1 -1
- data/app/models/spree/store_credit_event.rb +1 -1
- data/app/models/spree/store_credit_type.rb +1 -1
- data/app/models/spree/store_credit_update_reason.rb +1 -1
- data/app/models/spree/store_payment_method.rb +6 -0
- data/app/models/spree/tax_rate.rb +3 -10
- data/app/models/spree/taxonomy.rb +1 -1
- data/app/models/spree/transfer_item.rb +1 -1
- data/app/models/spree/unit_cancel.rb +2 -2
- data/app/models/spree/user_address.rb +21 -0
- data/app/models/spree/user_stock_location.rb +1 -1
- data/app/models/spree/variant.rb +28 -13
- data/app/models/spree/variant_property_rule.rb +42 -0
- data/app/models/spree/variant_property_rule_condition.rb +8 -0
- data/app/models/spree/variant_property_rule_value.rb +8 -0
- data/app/models/spree/zone.rb +4 -2
- data/app/views/spree/carton_mailer/shipped_email.text.erb +1 -1
- data/config/locales/en.yml +13 -0
- data/db/default/spree/store_credit.rb +0 -1
- data/db/default/spree/zones.rb +1 -1
- data/db/migrate/20130228210442_create_shipping_method_zone.rb +1 -1
- data/db/migrate/20150121022521_remove_environment_from_payment_method.rb +6 -0
- data/db/migrate/20150506181611_create_spree_store_credit_payment_method.rb +9 -5
- data/db/migrate/20150731201146_add_spree_user_addresses.rb +16 -0
- data/db/migrate/20150811210350_remove_mandatory_from_adjustments.rb +5 -0
- data/db/migrate/20150811211025_add_finalized_to_spree_adjustments.rb +11 -0
- data/db/migrate/20150820160821_add_store_payment_methods.rb +10 -0
- data/db/migrate/20150824213633_convert_habtm_to_hmt_for_shipping_methods_zones.rb +17 -0
- data/db/migrate/20150824214129_convert_habtm_to_hmt_for_products_promotion_rules.rb +17 -0
- data/db/migrate/20150825204216_drop_spree_gateways.rb +20 -0
- data/db/migrate/20150909123605_create_variant_properties_and_rules.rb +28 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +1 -1
- data/lib/generators/spree/install/templates/config/initializers/spree.rb +4 -3
- data/lib/spree/core.rb +4 -0
- data/lib/spree/core/controller_helpers/payment_parameters.rb +67 -0
- data/lib/spree/core/delegate_belongs_to.rb +1 -0
- data/lib/spree/core/engine.rb +9 -1
- data/lib/spree/core/importer/order.rb +1 -1
- data/lib/spree/core/role_configuration.rb +1 -1
- data/lib/spree/core/search/variant.rb +20 -2
- data/lib/spree/core/unreturned_item_charger.rb +21 -16
- data/lib/spree/i18n.rb +6 -24
- data/lib/spree/mailer_previews/carton_preview.rb +10 -0
- data/lib/spree/mailer_previews/order_preview.rb +18 -0
- data/lib/spree/permitted_attributes.rb +4 -1
- data/lib/spree/testing_support/capybara_ext.rb +2 -1
- data/lib/spree/testing_support/factories/address_factory.rb +9 -1
- data/lib/spree/testing_support/factories/credit_card_factory.rb +1 -0
- data/lib/spree/testing_support/factories/image_factory.rb +5 -0
- data/lib/spree/testing_support/factories/payment_method_factory.rb +4 -8
- data/lib/spree/testing_support/factories/user_factory.rb +8 -2
- data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +6 -0
- data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +16 -0
- data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +6 -0
- data/lib/tasks/migrations/migrate_user_addresses.rake +29 -0
- data/vendor/assets/javascripts/jquery-migrate-1.0.0.js +498 -0
- metadata +40 -238
- data/CHANGELOG.md +0 -1
- data/Gemfile +0 -3
- data/Rakefile +0 -16
- data/app/models/concerns/spree/user_address.rb +0 -30
- data/app/models/spree/permission_sets/restricted_transfer_management.rb +0 -35
- data/app/views/spree/admin/orders/customer_details/_autocomplete.js.erb +0 -19
- data/lib/spree/i18n/base.rb +0 -17
- data/lib/spree/i18n/initializer.rb +0 -1
- data/lib/spree/testing_support/mail.rb +0 -20
- data/script/rails +0 -9
- data/solidus_core.gemspec +0 -48
- data/spec/fixtures/thinking-cat.jpg +0 -0
- data/spec/helpers/base_helper_spec.rb +0 -173
- data/spec/helpers/order_helper_spec.rb +0 -12
- data/spec/helpers/products_helper_spec.rb +0 -220
- data/spec/helpers/taxons_helper_spec.rb +0 -17
- data/spec/lib/calculated_adjustments_spec.rb +0 -7
- data/spec/lib/i18n_spec.rb +0 -123
- data/spec/lib/search/base_spec.rb +0 -86
- data/spec/lib/search/variant_spec.rb +0 -92
- data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -66
- data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -92
- data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -17
- data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -16
- data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -39
- data/spec/lib/spree/core/current_store_spec.rb +0 -36
- data/spec/lib/spree/core/delegate_belongs_to_spec.rb +0 -22
- data/spec/lib/spree/core/importer/order_spec.rb +0 -431
- data/spec/lib/spree/core/role_configuration_spec.rb +0 -138
- data/spec/lib/spree/core/validators/email_spec.rb +0 -48
- data/spec/lib/spree/localized_number_spec.rb +0 -38
- data/spec/lib/spree/migrations_spec.rb +0 -36
- data/spec/lib/spree/money_spec.rb +0 -127
- data/spec/lib/tasks/exchanges_spec.rb +0 -231
- data/spec/lib/tasks/migrations/copy_shipped_shipments_to_cartons_spec.rb +0 -115
- data/spec/lib/tasks/order_capturing_spec.rb +0 -56
- data/spec/mailers/carton_mailer_spec.rb +0 -43
- data/spec/mailers/order_mailer_spec.rb +0 -122
- data/spec/mailers/reimbursement_mailer_spec.rb +0 -40
- data/spec/mailers/test_mailer_spec.rb +0 -15
- data/spec/models/spree/ability_spec.rb +0 -276
- data/spec/models/spree/address_spec.rb +0 -250
- data/spec/models/spree/adjustment_reason_spec.rb +0 -13
- data/spec/models/spree/adjustment_spec.rb +0 -177
- data/spec/models/spree/app_configuration_spec.rb +0 -20
- data/spec/models/spree/asset_spec.rb +0 -24
- data/spec/models/spree/calculator/default_tax_spec.rb +0 -127
- data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -25
- data/spec/models/spree/calculator/flat_rate_spec.rb +0 -47
- data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -41
- data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -15
- data/spec/models/spree/calculator/price_sack_spec.rb +0 -30
- data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -51
- data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -23
- data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -13
- data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -52
- data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -20
- data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -30
- data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -36
- data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -47
- data/spec/models/spree/calculator_spec.rb +0 -36
- data/spec/models/spree/carton_spec.rb +0 -133
- data/spec/models/spree/classification_spec.rb +0 -15
- data/spec/models/spree/concerns/display_money_spec.rb +0 -43
- data/spec/models/spree/concerns/user_methods_spec.rb +0 -41
- data/spec/models/spree/credit_card_spec.rb +0 -334
- data/spec/models/spree/customer_return_spec.rb +0 -276
- data/spec/models/spree/exchange_spec.rb +0 -79
- data/spec/models/spree/gateway/bogus_simple.rb +0 -20
- data/spec/models/spree/gateway/bogus_spec.rb +0 -13
- data/spec/models/spree/gateway_spec.rb +0 -82
- data/spec/models/spree/inventory_unit_spec.rb +0 -307
- data/spec/models/spree/item_adjustments_spec.rb +0 -256
- data/spec/models/spree/line_item_spec.rb +0 -191
- data/spec/models/spree/option_type_spec.rb +0 -14
- data/spec/models/spree/option_value_spec.rb +0 -22
- data/spec/models/spree/order/address_spec.rb +0 -50
- data/spec/models/spree/order/adjustments_spec.rb +0 -39
- data/spec/models/spree/order/callbacks_spec.rb +0 -42
- data/spec/models/spree/order/checkout_spec.rb +0 -902
- data/spec/models/spree/order/currency_updater_spec.rb +0 -32
- data/spec/models/spree/order/finalizing_spec.rb +0 -111
- data/spec/models/spree/order/payment_spec.rb +0 -210
- data/spec/models/spree/order/risk_assessment_spec.rb +0 -68
- data/spec/models/spree/order/state_machine_spec.rb +0 -221
- data/spec/models/spree/order/tax_spec.rb +0 -84
- data/spec/models/spree/order/totals_spec.rb +0 -24
- data/spec/models/spree/order/updating_spec.rb +0 -18
- data/spec/models/spree/order/validations_spec.rb +0 -15
- data/spec/models/spree/order_cancellations_spec.rb +0 -120
- data/spec/models/spree/order_capturing_spec.rb +0 -116
- data/spec/models/spree/order_contents_spec.rb +0 -265
- data/spec/models/spree/order_inventory_spec.rb +0 -228
- data/spec/models/spree/order_mutex_spec.rb +0 -85
- data/spec/models/spree/order_promotion_spec.rb +0 -31
- data/spec/models/spree/order_shipping_spec.rb +0 -247
- data/spec/models/spree/order_spec.rb +0 -1464
- data/spec/models/spree/order_stock_location_spec.rb +0 -18
- data/spec/models/spree/order_updater_spec.rb +0 -299
- data/spec/models/spree/payment_method/store_credit_spec.rb +0 -294
- data/spec/models/spree/payment_method_spec.rb +0 -96
- data/spec/models/spree/payment_spec.rb +0 -1045
- data/spec/models/spree/permission_sets/base_spec.rb +0 -12
- data/spec/models/spree/permission_sets/configuration_display.rb +0 -82
- data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -50
- data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -22
- data/spec/models/spree/permission_sets/order_display_spec.rb +0 -49
- data/spec/models/spree/permission_sets/order_management_spec.rb +0 -36
- data/spec/models/spree/permission_sets/product_display_spec.rb +0 -60
- data/spec/models/spree/permission_sets/product_management_spec.rb +0 -40
- data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -34
- data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -26
- data/spec/models/spree/permission_sets/report_display_spec.rb +0 -24
- data/spec/models/spree/permission_sets/restricted_transfer_management_spec.rb +0 -132
- data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -26
- data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -24
- data/spec/models/spree/permission_sets/user_display_spec.rb +0 -36
- data/spec/models/spree/permission_sets/user_management_spec.rb +0 -28
- data/spec/models/spree/preference_spec.rb +0 -80
- data/spec/models/spree/preferences/configuration_spec.rb +0 -30
- data/spec/models/spree/preferences/preferable_spec.rb +0 -294
- data/spec/models/spree/preferences/scoped_store_spec.rb +0 -58
- data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -78
- data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -60
- data/spec/models/spree/preferences/store_spec.rb +0 -39
- data/spec/models/spree/price_spec.rb +0 -42
- data/spec/models/spree/product/scopes_spec.rb +0 -148
- data/spec/models/spree/product_duplicator_spec.rb +0 -103
- data/spec/models/spree/product_filter_spec.rb +0 -26
- data/spec/models/spree/product_property_spec.rb +0 -20
- data/spec/models/spree/product_spec.rb +0 -437
- data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -96
- data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -165
- data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -115
- data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -40
- data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -75
- data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -67
- data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -70
- data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -42
- data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -94
- data/spec/models/spree/promotion/rules/product_spec.rb +0 -143
- data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -102
- data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -27
- data/spec/models/spree/promotion/rules/user_spec.rb +0 -37
- data/spec/models/spree/promotion_builder_spec.rb +0 -118
- data/spec/models/spree/promotion_category_spec.rb +0 -17
- data/spec/models/spree/promotion_code/code_builder_spec.rb +0 -79
- data/spec/models/spree/promotion_code_spec.rb +0 -187
- data/spec/models/spree/promotion_handler/cart_spec.rb +0 -114
- data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -335
- data/spec/models/spree/promotion_handler/free_shipping_spec.rb +0 -47
- data/spec/models/spree/promotion_handler/page_spec.rb +0 -44
- data/spec/models/spree/promotion_rule_spec.rb +0 -28
- data/spec/models/spree/promotion_spec.rb +0 -767
- data/spec/models/spree/refund_spec.rb +0 -204
- data/spec/models/spree/reimbursement/credit_spec.rb +0 -36
- data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -140
- data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -83
- data/spec/models/spree/reimbursement_performer_spec.rb +0 -30
- data/spec/models/spree/reimbursement_spec.rb +0 -231
- data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -51
- data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -53
- data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -46
- data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -107
- data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -97
- data/spec/models/spree/return_authorization_spec.rb +0 -290
- data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -77
- data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -58
- data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -85
- data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -32
- data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -29
- data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -35
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -65
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
- data/spec/models/spree/return_item_spec.rb +0 -775
- data/spec/models/spree/returns_calculator_spec.rb +0 -14
- data/spec/models/spree/shipment_spec.rb +0 -709
- data/spec/models/spree/shipping_calculator_spec.rb +0 -45
- data/spec/models/spree/shipping_method_spec.rb +0 -88
- data/spec/models/spree/shipping_rate_spec.rb +0 -142
- data/spec/models/spree/state_spec.rb +0 -14
- data/spec/models/spree/stock/availability_validator_spec.rb +0 -83
- data/spec/models/spree/stock/coordinator_spec.rb +0 -116
- data/spec/models/spree/stock/differentiator_spec.rb +0 -39
- data/spec/models/spree/stock/estimator_spec.rb +0 -146
- data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -38
- data/spec/models/spree/stock/package_spec.rb +0 -163
- data/spec/models/spree/stock/packer_spec.rb +0 -91
- data/spec/models/spree/stock/prioritizer_spec.rb +0 -125
- data/spec/models/spree/stock/quantifier_spec.rb +0 -115
- data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -29
- data/spec/models/spree/stock/splitter/base_spec.rb +0 -21
- data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -50
- data/spec/models/spree/stock/splitter/weight_spec.rb +0 -29
- data/spec/models/spree/stock_item_spec.rb +0 -426
- data/spec/models/spree/stock_location_spec.rb +0 -279
- data/spec/models/spree/stock_movement_spec.rb +0 -56
- data/spec/models/spree/stock_transfer_spec.rb +0 -290
- data/spec/models/spree/store_credit_category_spec.rb +0 -17
- data/spec/models/spree/store_credit_event_spec.rb +0 -314
- data/spec/models/spree/store_credit_spec.rb +0 -876
- data/spec/models/spree/store_spec.rb +0 -55
- data/spec/models/spree/tax_category_spec.rb +0 -27
- data/spec/models/spree/tax_rate_spec.rb +0 -378
- data/spec/models/spree/taxon_spec.rb +0 -74
- data/spec/models/spree/taxonomy_spec.rb +0 -18
- data/spec/models/spree/tracker_spec.rb +0 -21
- data/spec/models/spree/transfer_item_spec.rb +0 -264
- data/spec/models/spree/unit_cancel_spec.rb +0 -148
- data/spec/models/spree/user_spec.rb +0 -223
- data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -23
- data/spec/models/spree/variant/scopes_spec.rb +0 -55
- data/spec/models/spree/variant_spec.rb +0 -546
- data/spec/models/spree/zone_spec.rb +0 -305
- data/spec/spec_helper.rb +0 -78
- data/spec/support/big_decimal.rb +0 -5
- data/spec/support/concerns/default_price.rb +0 -34
- data/spec/support/dummy_ability.rb +0 -4
- data/spec/support/test_gateway.rb +0 -2
@@ -1,35 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
module PermissionSets
|
3
|
-
# This is a permission set that offers an alternative to {StockManagement}.
|
4
|
-
#
|
5
|
-
# Instead of allowing management access for all stock transfers and items, only allow
|
6
|
-
# the management of stock transfers for locations the user is associated with.
|
7
|
-
#
|
8
|
-
# Users can be associated with stock locations via the admin user interface.
|
9
|
-
#
|
10
|
-
# @see Spree::PermissionSets::Base
|
11
|
-
class RestrictedTransferManagement < PermissionSets::Base
|
12
|
-
def activate!
|
13
|
-
can [:display, :admin], Spree::StockItem
|
14
|
-
can [:display, :admin], Spree::StockTransfer
|
15
|
-
|
16
|
-
if user.stock_locations.any?
|
17
|
-
can :transfer, Spree::StockLocation, id: location_ids
|
18
|
-
can :update, Spree::StockItem, stock_location_id: location_ids
|
19
|
-
can :manage, Spree::StockTransfer, source_location_id: location_ids, destination_location_id: location_ids
|
20
|
-
can :manage, Spree::TransferItem, stock_transfer: {
|
21
|
-
source_location_id: location_ids,
|
22
|
-
destination_location_id: location_ids
|
23
|
-
}
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
private
|
28
|
-
|
29
|
-
def location_ids
|
30
|
-
# either source_location_id or destination_location_id can be nil.
|
31
|
-
@ids ||= user.stock_locations.pluck(:id) + [nil]
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
<script type='text/template' id='customer_autocomplete_template'>
|
2
|
-
<div class='customer-autocomplete-item'>
|
3
|
-
<div class='customer-details'>
|
4
|
-
<h5>{{customer.email}}</h5>
|
5
|
-
{{#if bill_address.firstname }}
|
6
|
-
<strong>{{t 'bill_address' }}</strong>
|
7
|
-
{{bill_address.firstname}} {{bill_address.lastname}}<br>
|
8
|
-
{{bill_address.address1}}, {{bill_address.address2}}<br>
|
9
|
-
{{bill_address.city}}<br>
|
10
|
-
{{#if bill_address.state_id }}
|
11
|
-
{{bill_address.state.name}}
|
12
|
-
{{else}}
|
13
|
-
{{bill_address.state_name}}
|
14
|
-
{{/if}}
|
15
|
-
{{bill_address.country.name}}
|
16
|
-
{{/if}}
|
17
|
-
</div>
|
18
|
-
</div>
|
19
|
-
</script>
|
data/lib/spree/i18n/base.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
Spree::BaseController.send(:include, Spree::ViewContext)
|
@@ -1,20 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
module TestingSupport
|
3
|
-
module Mail
|
4
|
-
def with_test_mail
|
5
|
-
old_value = ActionMailer::Base.delivery_method
|
6
|
-
ActionMailer::Base.delivery_method = :test
|
7
|
-
ActionMailer::Base.deliveries.clear
|
8
|
-
begin
|
9
|
-
yield
|
10
|
-
ensure
|
11
|
-
ActionMailer::Base.delivery_method = old_value
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
RSpec.configure do |config|
|
19
|
-
config.extend Spree::TestingSupport::Mail
|
20
|
-
end
|
data/script/rails
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
3
|
-
|
4
|
-
ENGINE_ROOT = File.expand_path('../..', __FILE__)
|
5
|
-
ENGINE_PATH = File.expand_path('../../lib/spree/core/engine', __FILE__)
|
6
|
-
|
7
|
-
require 'rails/all'
|
8
|
-
require 'rails/engine/commands'
|
9
|
-
|
data/solidus_core.gemspec
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
version = File.read(File.expand_path("../../SOLIDUS_VERSION", __FILE__)).strip
|
3
|
-
|
4
|
-
Gem::Specification.new do |s|
|
5
|
-
s.platform = Gem::Platform::RUBY
|
6
|
-
s.name = 'solidus_core'
|
7
|
-
s.version = version
|
8
|
-
s.summary = 'Essential models, mailers, and classes for the Solidus e-commerce project.'
|
9
|
-
s.description = s.summary
|
10
|
-
|
11
|
-
s.required_ruby_version = '>= 2.1.0'
|
12
|
-
s.author = 'Solidus Team'
|
13
|
-
s.email = 'contact@solidus.io'
|
14
|
-
s.homepage = 'http://solidus.io'
|
15
|
-
s.license = %q{BSD-3}
|
16
|
-
|
17
|
-
s.files = `git ls-files`.split("\n")
|
18
|
-
s.require_path = 'lib'
|
19
|
-
|
20
|
-
s.required_ruby_version = '>= 2.1.0'
|
21
|
-
|
22
|
-
s.add_dependency 'activemerchant', '~> 1.48.0'
|
23
|
-
s.add_dependency 'acts_as_list', '~> 0.3'
|
24
|
-
s.add_dependency 'awesome_nested_set', '~> 3.0.1'
|
25
|
-
s.add_dependency 'carmen', '~> 1.0.0'
|
26
|
-
s.add_dependency 'cancancan', '~> 1.10.0'
|
27
|
-
s.add_dependency 'deface', '~> 1.0.0'
|
28
|
-
s.add_dependency 'ffaker', '~> 1.16'
|
29
|
-
s.add_dependency 'font-awesome-rails', '~> 4.0'
|
30
|
-
s.add_dependency 'friendly_id', '~> 5.0.4'
|
31
|
-
s.add_dependency 'highline', '~> 1.6.18' # Necessary for the install generator
|
32
|
-
s.add_dependency 'json', '~> 1.7'
|
33
|
-
s.add_dependency 'kaminari', '~> 0.15', '>= 0.15.1'
|
34
|
-
s.add_dependency 'monetize', '~> 1.1'
|
35
|
-
s.add_dependency 'paperclip', '~> 4.2.0'
|
36
|
-
s.add_dependency 'paranoia', '~> 2.1.0'
|
37
|
-
s.add_dependency 'premailer-rails'
|
38
|
-
s.add_dependency 'rails', '~> 4.2.0'
|
39
|
-
s.add_dependency 'ransack', '~> 1.6.0'
|
40
|
-
s.add_dependency 'responders'
|
41
|
-
s.add_dependency 'state_machines-activerecord', '~> 0.2'
|
42
|
-
s.add_dependency 'stringex', '~> 1.5.1'
|
43
|
-
s.add_dependency 'truncate_html', '0.9.2'
|
44
|
-
s.add_dependency 'twitter_cldr', '~> 3.0'
|
45
|
-
|
46
|
-
s.add_development_dependency 'email_spec', '~> 1.6'
|
47
|
-
s.add_dependency 'sprockets-rails', '~> 2.0'
|
48
|
-
end
|
Binary file
|
@@ -1,173 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Spree::BaseHelper, :type => :helper do
|
4
|
-
include Spree::BaseHelper
|
5
|
-
|
6
|
-
let(:current_store){ create :store }
|
7
|
-
|
8
|
-
context "available_countries" do
|
9
|
-
let(:country) { create(:country) }
|
10
|
-
|
11
|
-
before do
|
12
|
-
3.times { create(:country) }
|
13
|
-
end
|
14
|
-
|
15
|
-
context "with no checkout zone defined" do
|
16
|
-
before do
|
17
|
-
Spree::Config[:checkout_zone] = nil
|
18
|
-
end
|
19
|
-
|
20
|
-
it "return complete list of countries" do
|
21
|
-
expect(available_countries.count).to eq(Spree::Country.count)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
context "with a checkout zone defined" do
|
26
|
-
context "checkout zone is of type country" do
|
27
|
-
before do
|
28
|
-
@country_zone = create(:zone, :name => "CountryZone")
|
29
|
-
@country_zone.members.create(:zoneable => country)
|
30
|
-
Spree::Config[:checkout_zone] = @country_zone.name
|
31
|
-
end
|
32
|
-
|
33
|
-
it "return only the countries defined by the checkout zone" do
|
34
|
-
expect(available_countries).to eq([country])
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
context "checkout zone is of type state" do
|
39
|
-
before do
|
40
|
-
state_zone = create(:zone, :name => "StateZone")
|
41
|
-
state = create(:state, :country => country)
|
42
|
-
state_zone.members.create(:zoneable => state)
|
43
|
-
Spree::Config[:checkout_zone] = state_zone.name
|
44
|
-
end
|
45
|
-
|
46
|
-
it "return complete list of countries" do
|
47
|
-
expect(available_countries.count).to eq(Spree::Country.count)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
# Regression test for #1436
|
54
|
-
context "defining custom image helpers" do
|
55
|
-
let(:product) { mock_model(Spree::Product, :images => [], :variant_images => []) }
|
56
|
-
before do
|
57
|
-
Spree::Image.class_eval do
|
58
|
-
attachment_definitions[:attachment][:styles].merge!({:very_strange => '1x1'})
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
it "should not raise errors when style exists" do
|
63
|
-
ActiveSupport::Deprecation.silence do
|
64
|
-
expect { very_strange_image(product) }.not_to raise_error
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
it "should raise NoMethodError when style is not exists" do
|
69
|
-
expect { another_strange_image(product) }.to raise_error(NoMethodError)
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
73
|
-
|
74
|
-
# Regression test for #2034
|
75
|
-
context "flash_message" do
|
76
|
-
let(:flash) { {"notice" => "ok", "foo" => "foo", "bar" => "bar"} }
|
77
|
-
|
78
|
-
it "should output all flash content" do
|
79
|
-
flash_messages
|
80
|
-
html = Nokogiri::HTML(helper.output_buffer)
|
81
|
-
expect(html.css(".notice").text).to eq("ok")
|
82
|
-
expect(html.css(".foo").text).to eq("foo")
|
83
|
-
expect(html.css(".bar").text).to eq("bar")
|
84
|
-
end
|
85
|
-
|
86
|
-
it "should output flash content except one key" do
|
87
|
-
flash_messages(:ignore_types => :bar)
|
88
|
-
html = Nokogiri::HTML(helper.output_buffer)
|
89
|
-
expect(html.css(".notice").text).to eq("ok")
|
90
|
-
expect(html.css(".foo").text).to eq("foo")
|
91
|
-
expect(html.css(".bar").text).to be_empty
|
92
|
-
end
|
93
|
-
|
94
|
-
it "should output flash content except some keys" do
|
95
|
-
flash_messages(:ignore_types => [:foo, :bar])
|
96
|
-
html = Nokogiri::HTML(helper.output_buffer)
|
97
|
-
expect(html.css(".notice").text).to eq("ok")
|
98
|
-
expect(html.css(".foo").text).to be_empty
|
99
|
-
expect(html.css(".bar").text).to be_empty
|
100
|
-
expect(helper.output_buffer).to eq("<div class=\"flash notice\">ok</div>")
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
context "link_to_tracking" do
|
105
|
-
it "returns tracking link if available" do
|
106
|
-
a = link_to_tracking_html(shipping_method: true, tracking: '123', tracking_url: 'http://g.c/?t=123').css('a')
|
107
|
-
|
108
|
-
expect(a.text).to eq '123'
|
109
|
-
expect(a.attr('href').value).to eq 'http://g.c/?t=123'
|
110
|
-
end
|
111
|
-
|
112
|
-
it "returns tracking without link if link unavailable" do
|
113
|
-
html = link_to_tracking_html(shipping_method: true, tracking: '123', tracking_url: nil)
|
114
|
-
expect(html.css('span').text).to eq '123'
|
115
|
-
end
|
116
|
-
|
117
|
-
it "returns nothing when no shipping method" do
|
118
|
-
html = link_to_tracking_html(shipping_method: nil, tracking: '123')
|
119
|
-
expect(html.css('span').text).to eq ''
|
120
|
-
end
|
121
|
-
|
122
|
-
it "returns nothing when no tracking" do
|
123
|
-
html = link_to_tracking_html(tracking: nil)
|
124
|
-
expect(html.css('span').text).to eq ''
|
125
|
-
end
|
126
|
-
|
127
|
-
def link_to_tracking_html(options = {})
|
128
|
-
node = link_to_tracking(double(:shipment, options))
|
129
|
-
Nokogiri::HTML(node.to_s)
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
# Regression test for #2396
|
134
|
-
context "meta_data_tags" do
|
135
|
-
it "truncates a product description to 160 characters" do
|
136
|
-
# Because the controller_name method returns "test"
|
137
|
-
# controller_name is used by this method to infer what it is supposed
|
138
|
-
# to be generating meta_data_tags for
|
139
|
-
text = Faker::Lorem.paragraphs(2).join(" ")
|
140
|
-
@test = Spree::Product.new(:description => text)
|
141
|
-
tags = Nokogiri::HTML.parse(meta_data_tags)
|
142
|
-
content = tags.css("meta[name=description]").first["content"]
|
143
|
-
assert content.length <= 160, "content length is not truncated to 160 characters"
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
# Regression test for #5384
|
148
|
-
context "custom image helpers conflict with inproper statements" do
|
149
|
-
let(:product) { mock_model(Spree::Product, :images => [], :variant_images => []) }
|
150
|
-
before do
|
151
|
-
Spree::Image.class_eval do
|
152
|
-
attachment_definitions[:attachment][:styles].merge!({:foobar => '1x1'})
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
it "should not raise errors when helper method called" do
|
157
|
-
ActiveSupport::Deprecation.silence do
|
158
|
-
expect { foobar_image(product) }.not_to raise_error
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
it "should raise NoMethodError when statement with name equal to style name called" do
|
163
|
-
expect { foobar(product) }.to raise_error(NoMethodError)
|
164
|
-
end
|
165
|
-
|
166
|
-
end
|
167
|
-
|
168
|
-
context "pretty_time" do
|
169
|
-
it "prints in a format" do
|
170
|
-
expect(pretty_time(DateTime.new(2012, 5, 6, 13, 33))).to eq "May 06, 2012 1:33 PM"
|
171
|
-
end
|
172
|
-
end
|
173
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Spree
|
4
|
-
describe Spree::OrdersHelper, :type => :helper do
|
5
|
-
# Regression test for #2518 + #2323
|
6
|
-
it "truncates HTML correctly in product description" do
|
7
|
-
product = double(:description => "<strong>" + ("a" * 95) + "</strong> This content is invisible.")
|
8
|
-
expected = "<strong>" + ("a" * 95) + "</strong>..."
|
9
|
-
expect(truncated_product_description(product)).to eq(expected)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
@@ -1,220 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
module Spree
|
6
|
-
describe ProductsHelper, :type => :helper do
|
7
|
-
include ProductsHelper
|
8
|
-
|
9
|
-
let(:product) { create(:product) }
|
10
|
-
let(:currency) { 'USD' }
|
11
|
-
|
12
|
-
before do
|
13
|
-
allow(helper).to receive(:current_currency) { currency }
|
14
|
-
end
|
15
|
-
|
16
|
-
context "#variant_price_diff" do
|
17
|
-
let(:product_price) { 10 }
|
18
|
-
let(:variant_price) { 10 }
|
19
|
-
|
20
|
-
before do
|
21
|
-
@variant = create(:variant, :product => product)
|
22
|
-
product.price = 15
|
23
|
-
@variant.price = 10
|
24
|
-
allow(product).to receive(:amount_in) { product_price }
|
25
|
-
allow(@variant).to receive(:amount_in) { variant_price }
|
26
|
-
end
|
27
|
-
|
28
|
-
subject { helper.variant_price(@variant) }
|
29
|
-
|
30
|
-
context "when variant is same as master" do
|
31
|
-
it { is_expected.to be_nil }
|
32
|
-
end
|
33
|
-
|
34
|
-
context "when the master has no price" do
|
35
|
-
let(:product_price) { nil }
|
36
|
-
|
37
|
-
it { is_expected.to be_nil }
|
38
|
-
end
|
39
|
-
|
40
|
-
context "when currency is default" do
|
41
|
-
context "when variant is more than master" do
|
42
|
-
let(:variant_price) { 15 }
|
43
|
-
|
44
|
-
it { is_expected.to eq("(Add: $5.00)") }
|
45
|
-
# Regression test for #2737
|
46
|
-
it { is_expected.to be_html_safe }
|
47
|
-
end
|
48
|
-
|
49
|
-
context "when variant is less than master" do
|
50
|
-
let(:product_price) { 15 }
|
51
|
-
|
52
|
-
it { is_expected.to eq("(Subtract: $5.00)") }
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
context "when currency is JPY" do
|
57
|
-
let(:variant_price) { 100 }
|
58
|
-
let(:product_price) { 100 }
|
59
|
-
let(:currency) { 'JPY' }
|
60
|
-
|
61
|
-
context "when variant is more than master" do
|
62
|
-
let(:variant_price) { 150 }
|
63
|
-
|
64
|
-
it { is_expected.to eq("(Add: ¥50)") }
|
65
|
-
end
|
66
|
-
|
67
|
-
context "when variant is less than master" do
|
68
|
-
let(:product_price) { 150 }
|
69
|
-
|
70
|
-
it { is_expected.to eq("(Subtract: ¥50)") }
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
context "#variant_price_full" do
|
76
|
-
before do
|
77
|
-
Spree::Config[:show_variant_full_price] = true
|
78
|
-
@variant1 = create(:variant, :product => product)
|
79
|
-
@variant2 = create(:variant, :product => product)
|
80
|
-
end
|
81
|
-
|
82
|
-
context "when currency is default" do
|
83
|
-
it "should return the variant price if the price is different than master" do
|
84
|
-
product.price = 10
|
85
|
-
@variant1.price = 15
|
86
|
-
@variant2.price = 20
|
87
|
-
expect(helper.variant_price(@variant1)).to eq("$15.00")
|
88
|
-
expect(helper.variant_price(@variant2)).to eq("$20.00")
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
context "when currency is JPY" do
|
93
|
-
let(:currency) { 'JPY' }
|
94
|
-
|
95
|
-
before do
|
96
|
-
product.variants.active.each do |variant|
|
97
|
-
variant.prices.each do |price|
|
98
|
-
price.currency = currency
|
99
|
-
price.save!
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
it "should return the variant price if the price is different than master" do
|
105
|
-
product.price = 100
|
106
|
-
@variant1.price = 150
|
107
|
-
expect(helper.variant_price(@variant1)).to eq("¥150")
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
it "should be nil when all variant prices are equal" do
|
112
|
-
product.price = 10
|
113
|
-
@variant1.default_price.update_column(:amount, 10)
|
114
|
-
@variant2.default_price.update_column(:amount, 10)
|
115
|
-
expect(helper.variant_price(@variant1)).to be_nil
|
116
|
-
expect(helper.variant_price(@variant2)).to be_nil
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
|
121
|
-
context "#product_description" do
|
122
|
-
# Regression test for #1607
|
123
|
-
it "renders a product description without excessive paragraph breaks" do
|
124
|
-
product.description = %Q{
|
125
|
-
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus a ligula leo. Proin eu arcu at ipsum dapibus ullamcorper. Pellentesque egestas orci nec magna condimentum luctus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut ac ante et mauris bibendum ultricies non sed massa. Fusce facilisis dui eget lacus scelerisque eget aliquam urna ultricies. Duis et rhoncus quam. Praesent tellus nisi, ultrices sed iaculis quis, euismod interdum ipsum.</p>
|
126
|
-
<ul>
|
127
|
-
<li>Lorem ipsum dolor sit amet</li>
|
128
|
-
<li>Lorem ipsum dolor sit amet</li>
|
129
|
-
</ul>
|
130
|
-
}
|
131
|
-
description = product_description(product)
|
132
|
-
expect(description.strip).to eq(product.description.strip)
|
133
|
-
end
|
134
|
-
|
135
|
-
it "renders a product description with automatic paragraph breaks" do
|
136
|
-
product.description = %Q{
|
137
|
-
THIS IS THE BEST PRODUCT EVER!
|
138
|
-
|
139
|
-
"IT CHANGED MY LIFE" - Sue, MD}
|
140
|
-
|
141
|
-
description = product_description(product)
|
142
|
-
expect(description.strip).to eq(%Q{<p>\nTHIS IS THE BEST PRODUCT EVER!</p>"IT CHANGED MY LIFE" - Sue, MD})
|
143
|
-
end
|
144
|
-
|
145
|
-
it "renders a product description without any formatting based on configuration" do
|
146
|
-
initialDescription = %Q{
|
147
|
-
<p>hello world</p>
|
148
|
-
|
149
|
-
<p>tihs is completely awesome and it works</p>
|
150
|
-
|
151
|
-
<p>why so many spaces in the code. and why some more formatting afterwards?</p>
|
152
|
-
}
|
153
|
-
|
154
|
-
product.description = initialDescription
|
155
|
-
|
156
|
-
Spree::Config[:show_raw_product_description] = true
|
157
|
-
description = product_description(product)
|
158
|
-
expect(description).to eq(initialDescription)
|
159
|
-
end
|
160
|
-
|
161
|
-
end
|
162
|
-
|
163
|
-
shared_examples_for "line item descriptions" do
|
164
|
-
context 'variant has a blank description' do
|
165
|
-
let(:description) { nil }
|
166
|
-
it { is_expected.to eq(Spree.t(:product_has_no_description)) }
|
167
|
-
end
|
168
|
-
context 'variant has a description' do
|
169
|
-
let(:description) { 'test_desc' }
|
170
|
-
it { is_expected.to eq(description) }
|
171
|
-
end
|
172
|
-
context 'description has nonbreaking spaces' do
|
173
|
-
let(:description) { 'test desc' }
|
174
|
-
it { is_expected.to eq('test desc') }
|
175
|
-
end
|
176
|
-
end
|
177
|
-
|
178
|
-
context "#line_item_description" do
|
179
|
-
let(:variant) { create(:variant, :product => product, description: description) }
|
180
|
-
subject { line_item_description_text(variant.product.description) }
|
181
|
-
|
182
|
-
it_should_behave_like "line item descriptions"
|
183
|
-
end
|
184
|
-
|
185
|
-
context '#line_item_description_text' do
|
186
|
-
subject { line_item_description_text description }
|
187
|
-
|
188
|
-
it_should_behave_like "line item descriptions"
|
189
|
-
end
|
190
|
-
|
191
|
-
context '#cache_key_for_products' do
|
192
|
-
subject { helper.cache_key_for_products }
|
193
|
-
before(:each) do
|
194
|
-
@products = double('products collection')
|
195
|
-
allow(helper).to receive(:params) { {:page => 10} }
|
196
|
-
end
|
197
|
-
|
198
|
-
context 'when there is a maximum updated date' do
|
199
|
-
let(:updated_at) { Date.new(2011, 12, 13) }
|
200
|
-
before :each do
|
201
|
-
allow(@products).to receive(:count) { 5 }
|
202
|
-
allow(@products).to receive(:maximum).with(:updated_at) { updated_at }
|
203
|
-
end
|
204
|
-
|
205
|
-
it { is_expected.to eq('en/USD/spree/products/all-10-20111213-5') }
|
206
|
-
end
|
207
|
-
|
208
|
-
context 'when there is no considered maximum updated date' do
|
209
|
-
let(:today) { Date.new(2013, 12, 11) }
|
210
|
-
before :each do
|
211
|
-
allow(@products).to receive(:count) { 1234567 }
|
212
|
-
allow(@products).to receive(:maximum).with(:updated_at) { nil }
|
213
|
-
allow(Date).to receive(:today) { today }
|
214
|
-
end
|
215
|
-
|
216
|
-
it { is_expected.to eq('en/USD/spree/products/all-10-20131211-1234567') }
|
217
|
-
end
|
218
|
-
end
|
219
|
-
end
|
220
|
-
end
|