solidus_backend 1.3.2 → 1.4.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_backend might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +38 -0
- data/app/assets/javascripts/spree/backend/components/tooltips.js +2 -0
- data/app/assets/javascripts/spree/backend/product_picker.js +2 -2
- data/app/assets/javascripts/spree/backend/routes.js +0 -1
- data/app/assets/javascripts/spree/backend/shipments.js +147 -118
- data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +16 -14
- data/app/assets/javascripts/spree/backend/templates/orders/customer_details/autocomplete.hbs +1 -1
- data/app/assets/javascripts/spree/backend/templates/variants/autocomplete.hbs.erb +1 -1
- data/app/assets/javascripts/spree/backend/templates/variants/line_items_autocomplete_stock.hbs +1 -1
- data/app/assets/javascripts/spree/backend/templates/variants/split.hbs +25 -27
- data/app/assets/javascripts/spree/backend/user_picker.js +14 -8
- data/app/assets/stylesheets/spree/backend/_bootstrap_custom.scss +3 -3
- data/app/assets/stylesheets/spree/backend/components/_breadcrumb.scss +4 -0
- data/app/assets/stylesheets/spree/backend/components/_date-picker.scss +0 -1
- data/app/assets/stylesheets/spree/backend/components/_hint.scss +3 -0
- data/app/assets/stylesheets/spree/backend/components/_navigation.scss +0 -1
- data/app/assets/stylesheets/spree/backend/components/_progress.scss +5 -2
- data/app/assets/stylesheets/spree/backend/components/_sidebar.scss +14 -5
- data/app/assets/stylesheets/spree/backend/components/_states.scss +1 -2
- data/app/assets/stylesheets/spree/backend/globals/_mixins.css +2 -0
- data/app/assets/stylesheets/spree/backend/globals/mixins/_line_through.scss +22 -0
- data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +12 -3
- data/app/assets/stylesheets/spree/backend/sections/_products.scss +25 -7
- data/app/assets/stylesheets/spree/backend/sections/_promotions.scss +0 -1
- data/app/assets/stylesheets/spree/backend/sections/_transfer_items.scss +0 -1
- data/app/assets/stylesheets/spree/backend/shared/_forms.scss +4 -6
- data/app/assets/stylesheets/spree/backend/shared/_header.scss +5 -2
- data/app/assets/stylesheets/spree/backend/shared/_layout.scss +36 -3
- data/app/assets/stylesheets/spree/backend/shared/_tables.scss +1 -3
- data/app/assets/stylesheets/spree/backend/shared/_typography.scss +0 -2
- data/app/assets/stylesheets/spree/backend/spree_admin.scss +3 -1
- data/app/controllers/spree/admin/cancellations_controller.rb +1 -1
- data/app/controllers/spree/admin/general_settings_controller.rb +0 -6
- data/app/controllers/spree/admin/orders/customer_details_controller.rb +7 -0
- data/app/controllers/spree/admin/orders_controller.rb +1 -1
- data/app/controllers/spree/admin/payment_methods_controller.rb +8 -3
- data/app/controllers/spree/admin/payments_controller.rb +12 -5
- data/app/controllers/spree/admin/products_controller.rb +1 -1
- data/app/controllers/spree/admin/refunds_controller.rb +1 -1
- data/app/controllers/spree/admin/reimbursements_controller.rb +1 -1
- data/app/controllers/spree/admin/root_controller.rb +1 -1
- data/app/controllers/spree/admin/stock_items_controller.rb +0 -8
- data/app/controllers/spree/admin/stock_transfers_controller.rb +6 -6
- data/app/controllers/spree/admin/users_controller.rb +7 -3
- data/app/helpers/spree/admin/base_helper.rb +11 -0
- data/app/helpers/spree/admin/navigation_helper.rb +46 -3
- data/app/helpers/spree/admin/orders_helper.rb +0 -1
- data/app/helpers/spree/admin/stock_locations_helper.rb +1 -5
- data/app/models/spree/backend_configuration.rb +100 -0
- data/app/views/spree/admin/adjustment_reasons/edit.html.erb +4 -7
- data/app/views/spree/admin/adjustment_reasons/index.html.erb +4 -4
- data/app/views/spree/admin/adjustment_reasons/new.html.erb +4 -4
- data/app/views/spree/admin/adjustments/edit.html.erb +4 -6
- data/app/views/spree/admin/adjustments/index.html.erb +3 -6
- data/app/views/spree/admin/adjustments/new.html.erb +5 -6
- data/app/views/spree/admin/cancellations/index.html.erb +4 -3
- data/app/views/spree/admin/countries/edit.html.erb +4 -6
- data/app/views/spree/admin/countries/index.html.erb +4 -4
- data/app/views/spree/admin/countries/new.html.erb +4 -4
- data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +1 -1
- data/app/views/spree/admin/customer_returns/edit.html.erb +4 -6
- data/app/views/spree/admin/customer_returns/index.html.erb +2 -5
- data/app/views/spree/admin/customer_returns/new.html.erb +5 -6
- data/app/views/spree/admin/general_settings/edit.html.erb +4 -28
- data/app/views/spree/admin/images/edit.html.erb +6 -2
- data/app/views/spree/admin/images/index.html.erb +3 -0
- data/app/views/spree/admin/images/new.html.erb +3 -3
- data/app/views/spree/admin/log_entries/index.html.erb +4 -8
- data/app/views/spree/admin/option_types/edit.html.erb +7 -9
- data/app/views/spree/admin/option_types/index.html.erb +4 -4
- data/app/views/spree/admin/orders/_shipment.html.erb +4 -1
- data/app/views/spree/admin/orders/_shipment_manifest.html.erb +4 -1
- data/app/views/spree/admin/orders/cart.html.erb +4 -8
- data/app/views/spree/admin/orders/confirm.html.erb +3 -4
- data/app/views/spree/admin/orders/confirm/_payments.html.erb +1 -1
- data/app/views/spree/admin/orders/confirm_advance.html.erb +3 -4
- data/app/views/spree/admin/orders/customer_details/_form.html.erb +1 -1
- data/app/views/spree/admin/orders/customer_details/edit.html.erb +2 -4
- data/app/views/spree/admin/orders/customer_details/show.html.erb +3 -5
- data/app/views/spree/admin/orders/edit.html.erb +1 -8
- data/app/views/spree/admin/orders/index.html.erb +11 -5
- data/app/views/spree/admin/payment_methods/edit.html.erb +5 -7
- data/app/views/spree/admin/payment_methods/index.html.erb +6 -5
- data/app/views/spree/admin/payment_methods/new.html.erb +6 -7
- data/app/views/spree/admin/payments/_capture_events.html.erb +1 -1
- data/app/views/spree/admin/payments/credit.html.erb +3 -3
- data/app/views/spree/admin/payments/index.html.erb +4 -7
- data/app/views/spree/admin/payments/new.html.erb +4 -5
- data/app/views/spree/admin/payments/show.html.erb +4 -7
- data/app/views/spree/admin/prices/_form.html.erb +1 -0
- data/app/views/spree/admin/prices/index.html.erb +2 -2
- data/app/views/spree/admin/product_properties/index.html.erb +3 -1
- data/app/views/spree/admin/products/_form.html.erb +11 -18
- data/app/views/spree/admin/products/_properties_form.erb +1 -1
- data/app/views/spree/admin/products/edit.html.erb +3 -2
- data/app/views/spree/admin/products/index.html.erb +19 -28
- data/app/views/spree/admin/products/new.html.erb +4 -2
- data/app/views/spree/admin/promotion_categories/edit.html.erb +4 -3
- data/app/views/spree/admin/promotion_categories/index.html.erb +4 -4
- data/app/views/spree/admin/promotion_categories/new.html.erb +4 -3
- data/app/views/spree/admin/promotion_rules/create.js.erb +1 -1
- data/app/views/spree/admin/promotions/_actions.html.erb +3 -3
- data/app/views/spree/admin/promotions/_rules.html.erb +2 -2
- data/app/views/spree/admin/promotions/calculators/tiered_flat_rate/_fields.html.erb +1 -1
- data/app/views/spree/admin/promotions/calculators/tiered_percent/_fields.html.erb +1 -1
- data/app/views/spree/admin/promotions/edit.html.erb +4 -5
- data/app/views/spree/admin/promotions/index.html.erb +3 -5
- data/app/views/spree/admin/promotions/new.html.erb +3 -3
- data/app/views/spree/admin/promotions/rules/_option_value.html.erb +2 -2
- data/app/views/spree/admin/properties/edit.html.erb +3 -6
- data/app/views/spree/admin/properties/index.html.erb +5 -5
- data/app/views/spree/admin/prototypes/_form.html.erb +3 -3
- data/app/views/spree/admin/prototypes/_prototypes.html.erb +1 -1
- data/app/views/spree/admin/prototypes/edit.html.erb +3 -6
- data/app/views/spree/admin/prototypes/index.html.erb +4 -4
- data/app/views/spree/admin/prototypes/show.html.erb +2 -2
- data/app/views/spree/admin/refund_reasons/edit.html.erb +4 -4
- data/app/views/spree/admin/refund_reasons/index.html.erb +5 -4
- data/app/views/spree/admin/refund_reasons/new.html.erb +5 -4
- data/app/views/spree/admin/refunds/edit.html.erb +5 -6
- data/app/views/spree/admin/refunds/new.html.erb +6 -6
- data/app/views/spree/admin/reimbursement_types/index.html.erb +4 -3
- data/app/views/spree/admin/reimbursements/edit.html.erb +5 -6
- data/app/views/spree/admin/reimbursements/index.html.erb +2 -4
- data/app/views/spree/admin/reimbursements/show.html.erb +3 -4
- data/app/views/spree/admin/reports/index.html.erb +2 -3
- data/app/views/spree/admin/reports/sales_total.html.erb +2 -4
- data/app/views/spree/admin/return_authorizations/edit.html.erb +15 -16
- data/app/views/spree/admin/return_authorizations/index.html.erb +3 -5
- data/app/views/spree/admin/return_authorizations/new.html.erb +5 -6
- data/app/views/spree/admin/return_reasons/edit.html.erb +3 -2
- data/app/views/spree/admin/return_reasons/index.html.erb +3 -1
- data/app/views/spree/admin/return_reasons/new.html.erb +4 -2
- data/app/views/spree/admin/shared/_areas_tabs.html.erb +3 -3
- data/app/views/spree/admin/shared/_configuration_menu.html.erb +2 -2
- data/app/views/spree/admin/shared/_edit_resource_links.html.erb +2 -2
- data/app/views/spree/admin/shared/_head.html.erb +1 -8
- data/app/views/spree/admin/shared/_header.html.erb +8 -12
- data/app/views/spree/admin/shared/_new_resource_links.html.erb +2 -2
- data/app/views/spree/admin/shared/_no_objects_found.html.erb +1 -1
- data/app/views/spree/admin/shared/_order_submenu.html.erb +10 -10
- data/app/views/spree/admin/shared/_order_summary.html.erb +1 -1
- data/app/views/spree/admin/shared/_order_tabs.html.erb +3 -3
- data/app/views/spree/admin/shared/_payments_tabs.html.erb +1 -1
- data/app/views/spree/admin/shared/_product_sub_menu.html.erb +2 -2
- data/app/views/spree/admin/shared/_product_tabs.html.erb +8 -9
- data/app/views/spree/admin/shared/_report_criteria.html.erb +2 -2
- data/app/views/spree/admin/shared/_report_order_criteria.html.erb +2 -2
- data/app/views/spree/admin/shared/_settings_checkout_tabs.html.erb +4 -4
- data/app/views/spree/admin/shared/_settings_sub_menu.html.erb +5 -5
- data/app/views/spree/admin/shared/_shipping_tabs.html.erb +4 -3
- data/app/views/spree/admin/shared/_sidebar.html.erb +1 -1
- data/app/views/spree/admin/shared/_tabs.html.erb +12 -37
- data/app/views/spree/admin/shared/_taxes_tabs.html.erb +2 -2
- data/app/views/spree/admin/shared/_variant_search.html.erb +1 -1
- data/app/views/spree/admin/shared/named_types/_edit.html.erb +5 -5
- data/app/views/spree/admin/shared/named_types/_index.html.erb +5 -4
- data/app/views/spree/admin/shared/named_types/_new.html.erb +5 -4
- data/app/views/spree/admin/shipping_categories/edit.html.erb +5 -6
- data/app/views/spree/admin/shipping_categories/index.html.erb +5 -4
- data/app/views/spree/admin/shipping_categories/new.html.erb +5 -6
- data/app/views/spree/admin/shipping_methods/_form.html.erb +2 -2
- data/app/views/spree/admin/shipping_methods/edit.html.erb +5 -6
- data/app/views/spree/admin/shipping_methods/index.html.erb +5 -5
- data/app/views/spree/admin/shipping_methods/new.html.erb +5 -6
- data/app/views/spree/admin/states/edit.html.erb +5 -6
- data/app/views/spree/admin/states/index.html.erb +5 -4
- data/app/views/spree/admin/states/new.html.erb +5 -3
- data/app/views/spree/admin/stock_items/index.html.erb +4 -7
- data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +2 -2
- data/app/views/spree/admin/stock_locations/edit.html.erb +5 -5
- data/app/views/spree/admin/stock_locations/index.html.erb +16 -9
- data/app/views/spree/admin/stock_locations/new.html.erb +5 -4
- data/app/views/spree/admin/stock_movements/index.html.erb +3 -4
- data/app/views/spree/admin/stock_movements/new.html.erb +2 -3
- data/app/views/spree/admin/stock_transfers/_location.html.erb +7 -0
- data/app/views/spree/admin/stock_transfers/_transfer_item_table.html.erb +1 -1
- data/app/views/spree/admin/stock_transfers/edit.html.erb +5 -6
- data/app/views/spree/admin/stock_transfers/index.html.erb +5 -5
- data/app/views/spree/admin/stock_transfers/new.html.erb +6 -8
- data/app/views/spree/admin/stock_transfers/receive.html.erb +4 -12
- data/app/views/spree/admin/stock_transfers/show.html.erb +6 -12
- data/app/views/spree/admin/stock_transfers/tracking_info.html.erb +5 -13
- data/app/views/spree/admin/store_credits/edit_amount.html.erb +6 -4
- data/app/views/spree/admin/store_credits/edit_validity.html.erb +8 -6
- data/app/views/spree/admin/store_credits/index.html.erb +5 -5
- data/app/views/spree/admin/store_credits/new.html.erb +5 -4
- data/app/views/spree/admin/store_credits/show.html.erb +5 -4
- data/app/views/spree/admin/style_guide/topics/typography/_icons.html.erb +2 -2
- data/app/views/spree/admin/tax_categories/edit.html.erb +5 -4
- data/app/views/spree/admin/tax_categories/index.html.erb +5 -4
- data/app/views/spree/admin/tax_categories/new.html.erb +5 -4
- data/app/views/spree/admin/tax_rates/edit.html.erb +5 -6
- data/app/views/spree/admin/tax_rates/index.html.erb +5 -4
- data/app/views/spree/admin/tax_rates/new.html.erb +5 -6
- data/app/views/spree/admin/taxonomies/edit.erb +7 -9
- data/app/views/spree/admin/taxonomies/index.html.erb +4 -4
- data/app/views/spree/admin/taxonomies/new.html.erb +5 -7
- data/app/views/spree/admin/taxons/edit.html.erb +5 -6
- data/app/views/spree/admin/taxons/index.html.erb +2 -3
- data/app/views/spree/admin/trackers/edit.html.erb +5 -6
- data/app/views/spree/admin/trackers/index.html.erb +4 -4
- data/app/views/spree/admin/trackers/new.html.erb +4 -6
- data/app/views/spree/admin/users/_form.html.erb +2 -2
- data/app/views/spree/admin/users/_tabs.html.erb +5 -5
- data/app/views/spree/admin/users/_user_page_actions.html.erb +1 -4
- data/app/views/spree/admin/users/addresses.html.erb +5 -4
- data/app/views/spree/admin/users/edit.html.erb +6 -6
- data/app/views/spree/admin/users/index.html.erb +4 -5
- data/app/views/spree/admin/users/items.html.erb +4 -3
- data/app/views/spree/admin/users/new.html.erb +2 -9
- data/app/views/spree/admin/users/orders.html.erb +4 -3
- data/app/views/spree/admin/variants/_form.html.erb +1 -0
- data/app/views/spree/admin/variants/edit.html.erb +4 -3
- data/app/views/spree/admin/variants/index.html.erb +10 -8
- data/app/views/spree/admin/variants/new.html.erb +5 -0
- data/app/views/spree/admin/zones/_country_members.html.erb +2 -2
- data/app/views/spree/admin/zones/_state_members.html.erb +2 -2
- data/app/views/spree/admin/zones/edit.html.erb +5 -6
- data/app/views/spree/admin/zones/index.html.erb +5 -4
- data/app/views/spree/admin/zones/new.html.erb +6 -7
- data/app/views/spree/layouts/admin.html.erb +28 -15
- data/config/initializers/form_builder.rb +6 -0
- data/config/routes.rb +2 -6
- data/spec/controllers/spree/admin/cancellations_controller_spec.rb +3 -3
- data/spec/controllers/spree/admin/customer_returns_controller_spec.rb +4 -4
- data/spec/controllers/spree/admin/missing_products_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +5 -5
- data/spec/controllers/spree/admin/orders_controller_spec.rb +28 -28
- data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +5 -5
- data/spec/controllers/spree/admin/payments_controller_spec.rb +7 -7
- data/spec/controllers/spree/admin/prices_controller_spec.rb +2 -2
- data/spec/controllers/spree/admin/product_properties_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/products_controller_spec.rb +6 -6
- data/spec/controllers/spree/admin/promotion_actions_controller_spec.rb +2 -2
- data/spec/controllers/spree/admin/promotion_codes_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/promotion_rules_controller_spec.rb +2 -2
- data/spec/controllers/spree/admin/promotions_controller_spec.rb +7 -7
- data/spec/controllers/spree/admin/refunds_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/reimbursements_controller_spec.rb +5 -5
- data/spec/controllers/spree/admin/reports_controller_spec.rb +2 -2
- data/spec/controllers/spree/admin/resource_controller_spec.rb +6 -6
- data/spec/controllers/spree/admin/return_authorizations_controller_spec.rb +11 -11
- data/spec/controllers/spree/admin/return_items_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/search_controller_spec.rb +2 -2
- data/spec/controllers/spree/admin/shipping_methods_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/stock_items_controller_spec.rb +3 -3
- data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +3 -3
- data/spec/controllers/spree/admin/stock_transfers_controller_spec.rb +10 -10
- data/spec/controllers/spree/admin/store_credits_controller_spec.rb +10 -10
- data/spec/controllers/spree/admin/users_controller_spec.rb +139 -141
- data/spec/controllers/spree/admin/variants_controller_spec.rb +2 -2
- data/spec/features/admin/configuration/general_settings_spec.rb +7 -16
- data/spec/features/admin/configuration/payment_methods_spec.rb +7 -7
- data/spec/features/admin/configuration/stock_locations_spec.rb +1 -1
- data/spec/features/admin/configuration/tax_categories_spec.rb +1 -1
- data/spec/features/admin/configuration/zones_spec.rb +1 -1
- data/spec/features/admin/homepage_spec.rb +2 -2
- data/spec/features/admin/orders/adjustments_spec.rb +1 -1
- data/spec/features/admin/orders/cancelling_inventory_spec.rb +8 -8
- data/spec/features/admin/orders/customer_details_spec.rb +20 -5
- data/spec/features/admin/orders/listing_spec.rb +97 -70
- data/spec/features/admin/orders/new_order_spec.rb +35 -6
- data/spec/features/admin/orders/order_details_spec.rb +37 -58
- data/spec/features/admin/orders/payments_spec.rb +57 -4
- data/spec/features/admin/orders/return_authorizations_spec.rb +25 -0
- data/spec/features/admin/orders/shipments_spec.rb +5 -5
- data/spec/features/admin/products/edit/products_spec.rb +1 -1
- data/spec/features/admin/products/edit/taxons_spec.rb +5 -5
- data/spec/features/admin/products/edit/variants_spec.rb +1 -1
- data/spec/features/admin/products/option_types_spec.rb +2 -2
- data/spec/features/admin/products/products_spec.rb +6 -6
- data/spec/features/admin/products/properties_spec.rb +6 -6
- data/spec/features/admin/products/prototypes_spec.rb +1 -1
- data/spec/features/admin/products/stock_management_spec.rb +5 -5
- data/spec/features/admin/promotion_adjustments_spec.rb +8 -8
- data/spec/features/admin/promotions/option_value_rule_spec.rb +4 -4
- data/spec/features/admin/promotions/product_rule_spec.rb +33 -0
- data/spec/features/admin/promotions/tiered_calculator_spec.rb +2 -2
- data/spec/features/admin/promotions/user_rule_spec.rb +15 -0
- data/spec/features/admin/reports_spec.rb +1 -1
- data/spec/features/admin/users_spec.rb +27 -2
- data/spec/helpers/admin/base_helper_spec.rb +30 -0
- data/spec/helpers/admin/navigation_helper_spec.rb +40 -2
- data/spec/spec_helper.rb +10 -8
- data/spec/support/feature/order_feature_helper.rb +17 -0
- metadata +18 -11
- data/app/assets/javascripts/spree/backend/general_settings.js.coffee +0 -13
- data/spec/controllers/spree/admin/general_settings_controller_spec.rb +0 -41
@@ -27,7 +27,7 @@ describe "Option Types", type: :feature do
|
|
27
27
|
it "should allow an admin to create a new option type", js: true do
|
28
28
|
click_link "Option Types"
|
29
29
|
click_link "new_option_type_link"
|
30
|
-
expect(page).to have_content("
|
30
|
+
expect(page).to have_content("New Option Type")
|
31
31
|
fill_in "option_type_name", with: "shirt colors"
|
32
32
|
fill_in "option_type_presentation", with: "colors"
|
33
33
|
click_button "Create"
|
@@ -61,7 +61,7 @@ describe "Option Types", type: :feature do
|
|
61
61
|
create(:option_value)
|
62
62
|
click_link "Option Types"
|
63
63
|
within('table#listing_option_types') { click_icon :edit }
|
64
|
-
expect(page).to have_content("
|
64
|
+
expect(page).to have_content("ProductsOption Typesfoo-size-")
|
65
65
|
expect(page).to have_css("tbody#option_values tr", count: 1)
|
66
66
|
within("tbody#option_values") do
|
67
67
|
find('.spree_remove_fields').click
|
@@ -80,11 +80,11 @@ describe "Products", type: :feature do
|
|
80
80
|
expect(page).to have_content("zomg shirt")
|
81
81
|
expect(page).not_to have_content("apache baseball cap")
|
82
82
|
check "Show Deleted"
|
83
|
-
|
83
|
+
click_button 'Search'
|
84
84
|
expect(page).to have_content("zomg shirt")
|
85
85
|
expect(page).to have_content("apache baseball cap")
|
86
86
|
uncheck "Show Deleted"
|
87
|
-
|
87
|
+
click_button 'Search'
|
88
88
|
expect(page).to have_content("zomg shirt")
|
89
89
|
expect(page).not_to have_content("apache baseball cap")
|
90
90
|
end
|
@@ -96,13 +96,13 @@ describe "Products", type: :feature do
|
|
96
96
|
|
97
97
|
click_nav "Products"
|
98
98
|
fill_in "q_name_cont", with: "ap"
|
99
|
-
|
99
|
+
click_button 'Search'
|
100
100
|
expect(page).to have_content("apache baseball cap")
|
101
101
|
expect(page).to have_content("apache baseball cap2")
|
102
102
|
expect(page).not_to have_content("zomg shirt")
|
103
103
|
|
104
104
|
fill_in "q_variants_including_master_sku_cont", with: "A1"
|
105
|
-
|
105
|
+
click_button "Search"
|
106
106
|
expect(page).to have_content("apache baseball cap")
|
107
107
|
expect(page).not_to have_content("apache baseball cap2")
|
108
108
|
expect(page).not_to have_content("zomg shirt")
|
@@ -317,7 +317,7 @@ describe "Products", type: :feature do
|
|
317
317
|
it 'should add option_types when selecting a prototype' do
|
318
318
|
visit spree.admin_product_path(product)
|
319
319
|
click_link 'Product Properties'
|
320
|
-
expect(page).to have_content("
|
320
|
+
expect(page).to have_content("Select From Prototype")
|
321
321
|
click_link "Select From Prototype"
|
322
322
|
|
323
323
|
row = find('#prototypes tr', text: 'Size')
|
@@ -349,7 +349,7 @@ describe "Products", type: :feature do
|
|
349
349
|
|
350
350
|
# This will show our deleted product
|
351
351
|
check "Show Deleted"
|
352
|
-
|
352
|
+
click_button "Search"
|
353
353
|
click_link product.name
|
354
354
|
expect(page).to have_field('Master Price', with: product.price.to_f)
|
355
355
|
end
|
@@ -12,7 +12,7 @@ describe "Properties", type: :feature do
|
|
12
12
|
before do
|
13
13
|
create(:property, name: 'shirt size', presentation: 'size')
|
14
14
|
create(:property, name: 'shirt fit', presentation: 'fit')
|
15
|
-
click_link "
|
15
|
+
click_link "Property Types"
|
16
16
|
end
|
17
17
|
|
18
18
|
context "listing product properties" do
|
@@ -32,7 +32,7 @@ describe "Properties", type: :feature do
|
|
32
32
|
context "searching properties" do
|
33
33
|
it 'should list properties matching search query', js: true do
|
34
34
|
fill_in "q_name_cont", with: "size"
|
35
|
-
|
35
|
+
click_button 'Search'
|
36
36
|
|
37
37
|
expect(page).to have_content("shirt size")
|
38
38
|
expect(page).not_to have_content("shirt fit")
|
@@ -42,9 +42,9 @@ describe "Properties", type: :feature do
|
|
42
42
|
|
43
43
|
context "creating a property" do
|
44
44
|
it "should allow an admin to create a new product property", js: true do
|
45
|
-
click_link "
|
45
|
+
click_link "Property Types"
|
46
46
|
click_link "new_property_link"
|
47
|
-
within('#new_property') { expect(page).to have_content("
|
47
|
+
within('#new_property') { expect(page).to have_content("New Property Type") }
|
48
48
|
|
49
49
|
fill_in "property_name", with: "color of band"
|
50
50
|
fill_in "property_presentation", with: "color"
|
@@ -53,10 +53,10 @@ describe "Properties", type: :feature do
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
-
context "editing a property" do
|
56
|
+
context "editing a property type" do
|
57
57
|
before(:each) do
|
58
58
|
create(:property)
|
59
|
-
click_link "
|
59
|
+
click_link "Property Types"
|
60
60
|
within_row(1) { click_icon :edit }
|
61
61
|
end
|
62
62
|
|
@@ -48,7 +48,7 @@ describe "Prototypes", type: :feature do
|
|
48
48
|
click_link "Prototypes"
|
49
49
|
click_link "new_prototype_link"
|
50
50
|
within('#new_prototype') do
|
51
|
-
expect(page).to have_content("
|
51
|
+
expect(page).to have_content("New Prototype")
|
52
52
|
end
|
53
53
|
fill_in "prototype_name", with: "male shirts"
|
54
54
|
click_button "Create"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe "Stock
|
3
|
+
describe "Product Stock", type: :feature do
|
4
4
|
stub_authorization!
|
5
5
|
|
6
6
|
before(:each) do
|
@@ -18,7 +18,7 @@ describe "Stock Management", type: :feature do
|
|
18
18
|
|
19
19
|
click_nav "Products"
|
20
20
|
within_row(1) { click_icon :edit }
|
21
|
-
click_link "Stock
|
21
|
+
click_link "Product Stock"
|
22
22
|
end
|
23
23
|
|
24
24
|
# Regression test for https://github.com/spree/spree/issues/3304
|
@@ -28,15 +28,15 @@ describe "Stock Management", type: :feature do
|
|
28
28
|
@product = create(:product, name: 'apache baseball cap', price: 10)
|
29
29
|
@product.variants.create!(sku: 'FOOBAR')
|
30
30
|
Spree::StockLocation.destroy_all
|
31
|
-
click_link
|
31
|
+
find_by_id('content-header').click_link('Products')
|
32
32
|
within_row(1) do
|
33
33
|
click_icon :edit
|
34
34
|
end
|
35
|
-
click_link "Stock
|
35
|
+
click_link "Product Stock"
|
36
36
|
end
|
37
37
|
|
38
38
|
it "renders" do
|
39
|
-
expect(page).to have_content('
|
39
|
+
expect(page).to have_content('Productsapache baseball cap')
|
40
40
|
expect(page.current_url).to match("admin/products/apache-baseball-cap/stock")
|
41
41
|
end
|
42
42
|
end
|
@@ -15,7 +15,7 @@ describe "Promotion Adjustments", type: :feature do
|
|
15
15
|
fill_in "Base code", with: "order"
|
16
16
|
fill_in "Number of codes", with: "1"
|
17
17
|
click_button "Create"
|
18
|
-
expect(page).to have_content("
|
18
|
+
expect(page).to have_content("PromotionsPromotion")
|
19
19
|
|
20
20
|
select2 "Item total", from: "Add rule of type"
|
21
21
|
within('#rule_fields') { click_button "Add" }
|
@@ -51,7 +51,7 @@ describe "Promotion Adjustments", type: :feature do
|
|
51
51
|
fill_in "Base code", with: "single_use"
|
52
52
|
fill_in "Number of codes", with: "1"
|
53
53
|
click_button "Create"
|
54
|
-
expect(page).to have_content("
|
54
|
+
expect(page).to have_content("PromotionsPromotion")
|
55
55
|
|
56
56
|
select2 "Create whole-order adjustment", from: "Add action of type"
|
57
57
|
within('#action_fields') { click_button "Add" }
|
@@ -74,7 +74,7 @@ describe "Promotion Adjustments", type: :feature do
|
|
74
74
|
it "should allow an admin to create an automatic promo with flat percent discount" do
|
75
75
|
fill_in "Name", with: "Promotion"
|
76
76
|
click_button "Create"
|
77
|
-
expect(page).to have_content("
|
77
|
+
expect(page).to have_content("PromotionsPromotion")
|
78
78
|
|
79
79
|
select2 "Item total", from: "Add rule of type"
|
80
80
|
within('#rule_fields') { click_button "Add" }
|
@@ -108,7 +108,7 @@ describe "Promotion Adjustments", type: :feature do
|
|
108
108
|
|
109
109
|
fill_in "Name", with: "Promotion"
|
110
110
|
click_button "Create"
|
111
|
-
expect(page).to have_content("
|
111
|
+
expect(page).to have_content("PromotionsPromotion")
|
112
112
|
|
113
113
|
select2 "Product(s)", from: "Add rule of type"
|
114
114
|
within("#rule_fields") { click_button "Add" }
|
@@ -139,7 +139,7 @@ describe "Promotion Adjustments", type: :feature do
|
|
139
139
|
it "should allow an admin to create an automatic promotion with free shipping (no code)" do
|
140
140
|
fill_in "Name", with: "Promotion"
|
141
141
|
click_button "Create"
|
142
|
-
expect(page).to have_content("
|
142
|
+
expect(page).to have_content("PromotionsPromotion")
|
143
143
|
|
144
144
|
select2 "Item total", from: "Add rule of type"
|
145
145
|
within('#rule_fields') { click_button "Add" }
|
@@ -148,7 +148,7 @@ describe "Promotion Adjustments", type: :feature do
|
|
148
148
|
|
149
149
|
select2 "Free shipping", from: "Add action of type"
|
150
150
|
within('#action_fields') { click_button "Add" }
|
151
|
-
expect(page).to have_content('
|
151
|
+
expect(page).to have_content('Makes all shipments for the order free')
|
152
152
|
|
153
153
|
promotion = Spree::Promotion.find_by_name("Promotion")
|
154
154
|
expect(promotion.codes).to be_empty
|
@@ -160,7 +160,7 @@ describe "Promotion Adjustments", type: :feature do
|
|
160
160
|
fill_in "Name", with: "Promotion"
|
161
161
|
fill_in "Path", with: "content/cvv"
|
162
162
|
click_button "Create"
|
163
|
-
expect(page).to have_content("
|
163
|
+
expect(page).to have_content("PromotionsPromotion")
|
164
164
|
|
165
165
|
select2 "Create whole-order adjustment", from: "Add action of type"
|
166
166
|
within('#action_fields') { click_button "Add" }
|
@@ -184,7 +184,7 @@ describe "Promotion Adjustments", type: :feature do
|
|
184
184
|
it "ceasing to be eligible for a promotion with item total rule then becoming eligible again" do
|
185
185
|
fill_in "Name", with: "Promotion"
|
186
186
|
click_button "Create"
|
187
|
-
expect(page).to have_content("
|
187
|
+
expect(page).to have_content("PromotionsPromotion")
|
188
188
|
|
189
189
|
select2 "Item total", from: "Add rule of type"
|
190
190
|
within('#rule_fields') { click_button "Add" }
|
@@ -18,8 +18,8 @@ feature 'Promotion with option value rule' do
|
|
18
18
|
within("#rules_container") { click_button "Add" }
|
19
19
|
|
20
20
|
within("#rules_container .promotion-block") do
|
21
|
-
expect(page).to have_content("
|
22
|
-
expect(page).to have_content("
|
21
|
+
expect(page).to have_content("Product")
|
22
|
+
expect(page).to have_content("Option Values")
|
23
23
|
|
24
24
|
click_button "Add"
|
25
25
|
end
|
@@ -31,7 +31,7 @@ feature 'Promotion with option value rule' do
|
|
31
31
|
|
32
32
|
within('#rules_container') { click_button "Update" }
|
33
33
|
|
34
|
-
first_rule = promotion.rules
|
34
|
+
first_rule = promotion.rules.reload.first
|
35
35
|
expect(first_rule.class).to eq Spree::Promotion::Rules::OptionValue
|
36
36
|
expect(first_rule.preferred_eligible_values).to eq Hash[product.id => [option_value.id]]
|
37
37
|
end
|
@@ -78,7 +78,7 @@ feature 'Promotion with option value rule' do
|
|
78
78
|
|
79
79
|
within('#rules_container') { click_button "Update" }
|
80
80
|
|
81
|
-
first_rule = promotion.rules
|
81
|
+
first_rule = promotion.rules.reload.first
|
82
82
|
expect(first_rule.preferred_eligible_values).to eq Hash[variant1.product_id => variant1.option_values.pluck(:id)]
|
83
83
|
end
|
84
84
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
feature 'Promotion with product rule', js: true do
|
4
|
+
stub_authorization!
|
5
|
+
|
6
|
+
given!(:product) { create :product, name: "BlamCo Mac & Cheese", sku: "PRODUCT_SKU" }
|
7
|
+
given!(:variant) { create :variant, sku: "VARIANT_SKU", product: product }
|
8
|
+
given!(:option_value) { variant.option_values.first }
|
9
|
+
|
10
|
+
given(:promotion) { create :promotion }
|
11
|
+
|
12
|
+
def add_promotion_rule_of_type(type)
|
13
|
+
select2 type, from: "Add rule of type"
|
14
|
+
within("#rules_container") { click_button "Add" }
|
15
|
+
end
|
16
|
+
|
17
|
+
background do
|
18
|
+
visit spree.edit_admin_promotion_path(promotion)
|
19
|
+
add_promotion_rule_of_type("Product(s)")
|
20
|
+
end
|
21
|
+
|
22
|
+
it "can select by product sku" do
|
23
|
+
select2_search product.name, from: "Choose products", search: "PRODUCT_SKU"
|
24
|
+
end
|
25
|
+
|
26
|
+
it "can select by variant sku" do
|
27
|
+
select2_search product.name, from: "Choose products", search: "VARIANT_SKU"
|
28
|
+
end
|
29
|
+
|
30
|
+
it "can select by product name" do
|
31
|
+
select2_search product.name, from: "Choose products"
|
32
|
+
end
|
33
|
+
end
|
@@ -17,8 +17,8 @@ feature "Tiered Calculator Promotions" do
|
|
17
17
|
within('#actions_container') { click_button "Update" }
|
18
18
|
|
19
19
|
within("#actions_container .settings") do
|
20
|
-
expect(page).to have_content("
|
21
|
-
expect(page).to have_content("
|
20
|
+
expect(page).to have_content("Base Percent")
|
21
|
+
expect(page).to have_content("Tiers")
|
22
22
|
|
23
23
|
click_button "Add"
|
24
24
|
end
|
@@ -9,6 +9,21 @@ feature 'Promotion with user rule', js: true do
|
|
9
9
|
visit spree.edit_admin_promotion_path(promotion)
|
10
10
|
end
|
11
11
|
|
12
|
+
context "multiple users" do
|
13
|
+
let!(:user) { create(:user, email: 'foo@example.com') }
|
14
|
+
let!(:other_user) { create(:user, email: 'bar@example.com') }
|
15
|
+
|
16
|
+
scenario "searching a user" do
|
17
|
+
select2 "User", from: "Add rule of type"
|
18
|
+
within("#rules_container") { click_button "Add" }
|
19
|
+
|
20
|
+
select2_search "foo", from: "Choose users", select: false
|
21
|
+
|
22
|
+
expect(page).to have_content('foo@example.com')
|
23
|
+
expect(page).not_to have_content('bar@example.com')
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
12
27
|
context "with an attempted XSS" do
|
13
28
|
let(:xss_string) { %(<script>throw("XSS")</script>) }
|
14
29
|
given!(:user) { create(:user, email: xss_string) }
|
@@ -9,7 +9,7 @@ describe "Reports", type: :feature do
|
|
9
9
|
click_link "Reports"
|
10
10
|
click_link "Sales Total"
|
11
11
|
|
12
|
-
expect(page).to have_content("
|
12
|
+
expect(page).to have_content("ReportsSales Total")
|
13
13
|
expect(page).to have_content("Item Total")
|
14
14
|
expect(page).to have_content("Adjustment Total")
|
15
15
|
expect(page).to have_content("Sales Total")
|
@@ -33,7 +33,7 @@ describe 'Users', type: :feature do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'can go back to the users list' do
|
36
|
-
expect(page).to have_link Spree.
|
36
|
+
expect(page).to have_link Spree::LegacyUser.model_name.human(count: :other), href: spree.admin_users_path
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'can navigate to the account page' do
|
@@ -120,7 +120,7 @@ describe 'Users', type: :feature do
|
|
120
120
|
|
121
121
|
it 'can edit user roles' do
|
122
122
|
Spree::Role.create name: "admin"
|
123
|
-
click_link
|
123
|
+
click_link 'Account'
|
124
124
|
|
125
125
|
check 'user_spree_role_admin'
|
126
126
|
click_button 'Update'
|
@@ -152,6 +152,31 @@ describe 'Users', type: :feature do
|
|
152
152
|
expect(user_a.reload.bill_address.address1).to eq "1313 Mockingbird Ln"
|
153
153
|
end
|
154
154
|
|
155
|
+
context 'invalid entry' do
|
156
|
+
around do |example|
|
157
|
+
::AlwaysInvalidUser = Class.new(Spree.user_class) do
|
158
|
+
validate :always_invalid_email
|
159
|
+
def always_invalid_email
|
160
|
+
errors.add(:email, "is invalid")
|
161
|
+
end
|
162
|
+
end
|
163
|
+
orig_class = Spree.user_class
|
164
|
+
Spree.user_class = "AlwaysInvalidUser"
|
165
|
+
|
166
|
+
example.run
|
167
|
+
|
168
|
+
Spree.user_class = orig_class.name
|
169
|
+
Object.send(:remove_const, "AlwaysInvalidUser")
|
170
|
+
end
|
171
|
+
|
172
|
+
it 'should show validation errors' do
|
173
|
+
fill_in 'user_email', with: 'something'
|
174
|
+
click_button 'Update'
|
175
|
+
|
176
|
+
expect(page).to have_content("Email is invalid")
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
155
180
|
context 'no api key exists' do
|
156
181
|
it 'can generate a new api key' do
|
157
182
|
within("#admin_user_edit_api_key") do
|
@@ -14,4 +14,34 @@ describe Spree::Admin::BaseHelper, type: :helper do
|
|
14
14
|
expect(datepicker_field_value(date)).to eq("2013/08/14")
|
15
15
|
end
|
16
16
|
end
|
17
|
+
|
18
|
+
describe "#admin_layout" do
|
19
|
+
subject { admin_layout(value) }
|
20
|
+
|
21
|
+
context "when no initial value has been set" do
|
22
|
+
context "and an argument is sent" do
|
23
|
+
let(:value) { "full-width" }
|
24
|
+
it { is_expected.to eq "full-width" }
|
25
|
+
end
|
26
|
+
|
27
|
+
context "and no argument is sent" do
|
28
|
+
let(:value) { nil }
|
29
|
+
it { is_expected.to be_nil }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context "when an initial value is set" do
|
34
|
+
before { admin_layout("full-width") }
|
35
|
+
|
36
|
+
context "and it is called again without an argument" do
|
37
|
+
let(:value) { nil }
|
38
|
+
it { is_expected.to eq "full-width" }
|
39
|
+
end
|
40
|
+
|
41
|
+
context "and it is called again with an argument" do
|
42
|
+
let(:value) { "centered" }
|
43
|
+
it { is_expected.to eq "centered" }
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
17
47
|
end
|
@@ -37,8 +37,7 @@ describe Spree::Admin::NavigationHelper, type: :helper do
|
|
37
37
|
|
38
38
|
context "when match_path option is supplied" do
|
39
39
|
before do
|
40
|
-
allow(helper).to receive(:
|
41
|
-
allow(helper).to receive(:request).and_return(double(ActionDispatch::Request, fullpath: "/somepath/orders/edit/1"))
|
40
|
+
allow(helper).to receive(:request).and_return(double(ActionDispatch::Request, fullpath: "/admin/orders/edit/1"))
|
42
41
|
end
|
43
42
|
|
44
43
|
it "should be selected if the fullpath matches" do
|
@@ -72,4 +71,43 @@ describe Spree::Admin::NavigationHelper, type: :helper do
|
|
72
71
|
expect(admin_tab).to end_with("foo</li>")
|
73
72
|
end
|
74
73
|
end
|
74
|
+
|
75
|
+
describe "#link_to_delete" do
|
76
|
+
let!(:item) { create(:stock_item) }
|
77
|
+
let(:options) { {} }
|
78
|
+
let(:link) { subject }
|
79
|
+
|
80
|
+
subject { helper.link_to_delete(item, options) }
|
81
|
+
|
82
|
+
# object_url is provided by the ResourceController abstract controller.
|
83
|
+
# as we cannot set a custom controller for helper tests, we need to fake it
|
84
|
+
before do
|
85
|
+
allow(helper).to receive(:object_url) do |o|
|
86
|
+
"/stock_items/#{o.to_param}"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
it "generates a deletion link for the resource" do
|
91
|
+
expect(link).to include("href=\"/stock_items/#{item.to_param}\"")
|
92
|
+
expect(link).to include("data-action=\"remove\"")
|
93
|
+
expect(link).to include("data-confirm=\"Are you sure?\"")
|
94
|
+
expect(link).to include("<span class=\"text\">Delete</span>")
|
95
|
+
end
|
96
|
+
|
97
|
+
it "allows customization of the url" do
|
98
|
+
options[:url] = "/test/url"
|
99
|
+
expect(link).to include("href=\"/test/url\"")
|
100
|
+
end
|
101
|
+
|
102
|
+
it "allows customization of the link name" do
|
103
|
+
options[:name] = "Delete Item"
|
104
|
+
expect(link).to include("name=\"Delete Item\"")
|
105
|
+
expect(link).to include("<span class=\"text\">Delete Item</span>")
|
106
|
+
end
|
107
|
+
|
108
|
+
it "allows customization of the confirmation message" do
|
109
|
+
options[:confirm] = "Please confirm."
|
110
|
+
expect(link).to include("data-confirm=\"Please confirm.\"")
|
111
|
+
end
|
112
|
+
end
|
75
113
|
end
|