solidus_backend 2.10.2 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spree/backend.js +4 -1
- data/app/assets/javascripts/spree/backend/adjustments.js +1 -1
- data/app/assets/javascripts/spree/backend/admin.js +18 -29
- data/app/assets/javascripts/spree/backend/collections/states.js +1 -1
- data/app/assets/javascripts/spree/backend/components/selectable_table.js +5 -0
- data/app/assets/javascripts/spree/backend/components/selectable_table/return_items.js +5 -0
- data/app/assets/javascripts/spree/backend/components/selectable_table/summary.js +7 -0
- data/app/assets/javascripts/spree/backend/components/sortable_table.js +31 -25
- data/app/assets/javascripts/spree/backend/models/order.js +3 -3
- data/app/assets/javascripts/spree/backend/models/payment.js +1 -1
- data/app/assets/javascripts/spree/backend/models/shipment.js +1 -1
- data/app/assets/javascripts/spree/backend/models/stock_item.js +1 -1
- data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +2 -2
- data/app/assets/javascripts/spree/backend/option_value_picker.js +2 -2
- data/app/assets/javascripts/spree/backend/product_picker.js +2 -2
- data/app/assets/javascripts/spree/backend/routes.js +40 -21
- data/app/assets/javascripts/spree/backend/shipments.js +5 -5
- data/app/assets/javascripts/spree/backend/shipping_methods/stock_locations_picker.js +18 -0
- data/app/assets/javascripts/spree/backend/stock_management.js +4 -2
- data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +2 -2
- data/app/assets/javascripts/spree/backend/taxons.js +3 -3
- data/app/assets/javascripts/spree/backend/templates/index.js +2 -0
- data/app/assets/javascripts/spree/backend/templates/orders/customer_details/autocomplete.hbs +2 -2
- data/app/assets/javascripts/spree/backend/templates/stock_items/stock_location_stock_item.hbs +5 -1
- data/app/assets/javascripts/spree/backend/templates/tables/return_item_sum_amount.hbs +7 -0
- data/app/assets/javascripts/spree/backend/templates/tables/selectable_label.hbs +6 -0
- data/app/assets/javascripts/spree/backend/user_picker.js +3 -4
- data/app/assets/javascripts/spree/backend/variant_autocomplete.js +2 -2
- data/app/assets/javascripts/spree/backend/views/cart/empty_cart_button.js +2 -2
- data/app/assets/javascripts/spree/backend/views/index.js +4 -0
- data/app/assets/javascripts/spree/backend/views/order/address.js +1 -1
- data/app/assets/javascripts/spree/backend/views/order/customer_select.js +2 -3
- data/app/assets/javascripts/spree/backend/views/order/details_adjustments.js +4 -1
- data/app/assets/javascripts/spree/backend/views/stock/edit_stock_item_row.js +4 -0
- data/app/assets/javascripts/spree/backend/views/tables/return_items.js +9 -0
- data/app/assets/javascripts/spree/backend/views/tables/selectable_table.js +70 -0
- data/app/assets/javascripts/spree/backend/views/tables/selectable_table/sum_return_item_amount.js +32 -0
- data/app/assets/javascripts/spree/backend/views/tables/selectable_table/summary.js +45 -0
- data/app/assets/stylesheets/spree/backend/components/_navigation.scss +4 -5
- data/app/assets/stylesheets/spree/backend/sections/_orders.scss +5 -1
- data/app/assets/stylesheets/spree/backend/sections/_style_guide.scss +4 -0
- data/app/assets/stylesheets/spree/backend/shared/_forms.scss +1 -0
- data/app/controllers/spree/admin/base_controller.rb +6 -0
- data/app/controllers/spree/admin/cancellations_controller.rb +2 -0
- data/app/controllers/spree/admin/customer_returns_controller.rb +4 -4
- data/app/controllers/spree/admin/images_controller.rb +2 -1
- data/app/controllers/spree/admin/orders/customer_details_controller.rb +2 -0
- data/app/controllers/spree/admin/orders_controller.rb +7 -2
- data/app/controllers/spree/admin/payments_controller.rb +3 -1
- data/app/controllers/spree/admin/product_properties_controller.rb +1 -1
- data/app/controllers/spree/admin/products_controller.rb +18 -24
- data/app/controllers/spree/admin/promotion_codes_controller.rb +9 -4
- data/app/controllers/spree/admin/refunds_controller.rb +19 -0
- data/app/controllers/spree/admin/resource_controller.rb +27 -7
- data/app/controllers/spree/admin/return_authorizations_controller.rb +1 -1
- data/app/controllers/spree/admin/root_controller.rb +1 -1
- data/app/controllers/spree/admin/search_controller.rb +1 -2
- data/app/controllers/spree/admin/stock_items_controller.rb +6 -5
- data/app/controllers/spree/admin/stock_locations_controller.rb +4 -0
- data/app/controllers/spree/admin/stock_movements_controller.rb +7 -0
- data/app/controllers/spree/admin/taxons_controller.rb +12 -1
- data/app/controllers/spree/admin/users/api_key_controller.rb +29 -0
- data/app/controllers/spree/admin/users_controller.rb +37 -20
- data/app/controllers/spree/admin/variants_controller.rb +4 -2
- data/app/controllers/spree/admin/zones_controller.rb +1 -1
- data/app/helpers/spree/admin/base_helper.rb +4 -0
- data/app/helpers/spree/admin/customer_returns_helper.rb +1 -1
- data/app/helpers/spree/admin/navigation_helper.rb +1 -1
- data/app/helpers/spree/admin/orders_helper.rb +8 -4
- data/app/helpers/spree/admin/stock_movements_helper.rb +8 -4
- data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +2 -3
- data/app/views/spree/admin/images/index.html.erb +25 -21
- data/app/views/spree/admin/option_types/_option_value_fields.html.erb +8 -1
- data/app/views/spree/admin/option_types/edit.html.erb +3 -1
- data/app/views/spree/admin/orders/customer_details/_form.html.erb +13 -13
- data/app/views/spree/admin/orders/index.html.erb +23 -13
- data/app/views/spree/admin/payment_methods/_form.html.erb +7 -2
- data/app/views/spree/admin/payments/index.html.erb +3 -1
- data/app/views/spree/admin/prices/_master_variant_table.html.erb +3 -3
- data/app/views/spree/admin/prices/_table.html.erb +3 -3
- data/app/views/spree/admin/product_properties/_product_property_fields.html.erb +7 -2
- data/app/views/spree/admin/product_properties/index.html.erb +14 -2
- data/app/views/spree/admin/products/_form.html.erb +13 -2
- data/app/views/spree/admin/products/index.html.erb +1 -1
- data/app/views/spree/admin/promotion_codes/index.html.erb +1 -1
- data/app/views/spree/admin/promotions/_actions.html.erb +1 -1
- data/app/views/spree/admin/promotions/_activations_new.html.erb +1 -1
- data/app/views/spree/admin/promotions/_rules.html.erb +1 -1
- data/app/views/spree/admin/promotions/edit.html.erb +2 -2
- data/app/views/spree/admin/promotions/index.html.erb +12 -5
- data/app/views/spree/admin/return_authorizations/_form.html.erb +3 -10
- data/app/views/spree/admin/return_authorizations/index.html.erb +1 -1
- data/app/views/spree/admin/search/users.json.jbuilder +15 -1
- data/app/views/spree/admin/shared/_address.html.erb +6 -6
- data/app/views/spree/admin/shared/_address_form.html.erb +15 -8
- data/app/views/spree/admin/shared/_order_submenu.html.erb +4 -4
- data/app/views/spree/admin/shared/_payments_tabs.html.erb +1 -1
- data/app/views/spree/admin/shared/_settings_checkout_tabs.html.erb +5 -5
- data/app/views/spree/admin/shared/_settings_sub_menu.html.erb +6 -6
- data/app/views/spree/admin/shared/_shipping_tabs.html.erb +3 -3
- data/app/views/spree/admin/shared/_taxes_tabs.html.erb +2 -2
- data/app/views/spree/admin/shared/preference_fields/_encrypted_string.html.erb +12 -0
- data/app/views/spree/admin/shipping_methods/_form.html.erb +18 -0
- data/app/views/spree/admin/stock_items/_stock_management.html.erb +1 -1
- data/app/views/spree/admin/stock_locations/edit.html.erb +1 -1
- data/app/views/spree/admin/stock_locations/index.html.erb +3 -1
- data/app/views/spree/admin/stock_movements/index.html.erb +30 -1
- data/app/views/spree/admin/stores/_form.html.erb +6 -0
- data/app/views/spree/admin/style_guide/topics/tables/_building_tables.html.erb +27 -3
- data/app/views/spree/admin/tax_categories/_form.html.erb +1 -0
- data/app/views/spree/admin/users/_form.html.erb +2 -2
- data/app/views/spree/admin/users/_tabs.html.erb +1 -1
- data/app/views/spree/admin/users/edit.html.erb +4 -4
- data/app/views/spree/admin/users/items.html.erb +5 -3
- data/app/views/spree/admin/users/orders.html.erb +5 -3
- data/app/views/spree/admin/variants/_table_filter.html.erb +1 -1
- data/app/views/spree/admin/variants/index.html.erb +2 -2
- data/config/initializers/form_builder.rb +2 -2
- data/lib/spree/backend/engine.rb +0 -2
- data/lib/spree/backend_configuration.rb +14 -1
- data/solidus_backend.gemspec +4 -4
- metadata +23 -122
- data/app/assets/javascripts/spree/backend/returns/return_item_selection.js +0 -35
- data/script/rails +0 -10
- data/spec/controllers/spree/admin/base_controller_spec.rb +0 -26
- data/spec/controllers/spree/admin/cancellations_controller_spec.rb +0 -83
- data/spec/controllers/spree/admin/customer_returns_controller_spec.rb +0 -235
- data/spec/controllers/spree/admin/locale_controller_spec.rb +0 -45
- data/spec/controllers/spree/admin/missing_products_controller_spec.rb +0 -18
- data/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +0 -128
- data/spec/controllers/spree/admin/orders_controller_spec.rb +0 -408
- data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +0 -95
- data/spec/controllers/spree/admin/payments_controller_spec.rb +0 -194
- data/spec/controllers/spree/admin/prices_controller_spec.rb +0 -45
- data/spec/controllers/spree/admin/product_properties_controller_spec.rb +0 -71
- data/spec/controllers/spree/admin/products_controller_spec.rb +0 -270
- data/spec/controllers/spree/admin/promotion_actions_controller_spec.rb +0 -23
- data/spec/controllers/spree/admin/promotion_codes_controller_spec.rb +0 -32
- data/spec/controllers/spree/admin/promotion_rules_controller_spec.rb +0 -36
- data/spec/controllers/spree/admin/promotions_controller_spec.rb +0 -122
- data/spec/controllers/spree/admin/refunds_controller_spec.rb +0 -35
- data/spec/controllers/spree/admin/reimbursements_controller_spec.rb +0 -137
- data/spec/controllers/spree/admin/resource_controller_spec.rb +0 -201
- data/spec/controllers/spree/admin/return_authorizations_controller_spec.rb +0 -291
- data/spec/controllers/spree/admin/return_items_controller_spec.rb +0 -29
- data/spec/controllers/spree/admin/root_controller_spec.rb +0 -43
- data/spec/controllers/spree/admin/search_controller_spec.rb +0 -106
- data/spec/controllers/spree/admin/shipping_methods_controller_spec.rb +0 -16
- data/spec/controllers/spree/admin/stock_items_controller_spec.rb +0 -52
- data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +0 -44
- data/spec/controllers/spree/admin/store_credits_controller_spec.rb +0 -311
- data/spec/controllers/spree/admin/users_controller_spec.rb +0 -287
- data/spec/controllers/spree/admin/variants_controller_spec.rb +0 -71
- data/spec/features/admin/configuration/payment_methods_spec.rb +0 -176
- data/spec/features/admin/configuration/shipping_methods_spec.rb +0 -126
- data/spec/features/admin/configuration/stock_locations_spec.rb +0 -54
- data/spec/features/admin/configuration/store_spec.rb +0 -62
- data/spec/features/admin/configuration/tax_categories_spec.rb +0 -58
- data/spec/features/admin/configuration/tax_rates_spec.rb +0 -31
- data/spec/features/admin/configuration/taxonomies_spec.rb +0 -61
- data/spec/features/admin/configuration/zones_spec.rb +0 -41
- data/spec/features/admin/homepage_spec.rb +0 -86
- data/spec/features/admin/javascript_format_money_spec.rb +0 -22
- data/spec/features/admin/locale_spec.rb +0 -34
- data/spec/features/admin/orders/adjustments_promotions_spec.rb +0 -55
- data/spec/features/admin/orders/adjustments_spec.rb +0 -130
- data/spec/features/admin/orders/cancelling_and_resuming_spec.rb +0 -45
- data/spec/features/admin/orders/cancelling_inventory_spec.rb +0 -50
- data/spec/features/admin/orders/customer_details_spec.rb +0 -203
- data/spec/features/admin/orders/customer_returns_spec.rb +0 -41
- data/spec/features/admin/orders/line_items_spec.rb +0 -52
- data/spec/features/admin/orders/listing_spec.rb +0 -186
- data/spec/features/admin/orders/log_entries_spec.rb +0 -56
- data/spec/features/admin/orders/new_order_spec.rb +0 -379
- data/spec/features/admin/orders/new_refund_spec.rb +0 -35
- data/spec/features/admin/orders/order_details_spec.rb +0 -591
- data/spec/features/admin/orders/payments_spec.rb +0 -330
- data/spec/features/admin/orders/return_authorizations_spec.rb +0 -56
- data/spec/features/admin/orders/return_payment_state_spec.rb +0 -65
- data/spec/features/admin/orders/risk_analysis_spec.rb +0 -49
- data/spec/features/admin/orders/shipments_spec.rb +0 -145
- data/spec/features/admin/payments/store_credits_spec.rb +0 -23
- data/spec/features/admin/products/edit/images_spec.rb +0 -76
- data/spec/features/admin/products/edit/products_spec.rb +0 -92
- data/spec/features/admin/products/edit/taxons_spec.rb +0 -57
- data/spec/features/admin/products/edit/variants_spec.rb +0 -63
- data/spec/features/admin/products/option_types_spec.rb +0 -116
- data/spec/features/admin/products/pricing_spec.rb +0 -127
- data/spec/features/admin/products/products_spec.rb +0 -348
- data/spec/features/admin/products/properties_spec.rb +0 -141
- data/spec/features/admin/products/stock_management_spec.rb +0 -101
- data/spec/features/admin/products/variant_spec.rb +0 -89
- data/spec/features/admin/promotion_adjustments_spec.rb +0 -286
- data/spec/features/admin/promotions/option_value_rule_spec.rb +0 -90
- data/spec/features/admin/promotions/product_rule_spec.rb +0 -35
- data/spec/features/admin/promotions/promotion_categories_spec.rb +0 -83
- data/spec/features/admin/promotions/promotion_code_batches_spec.rb +0 -37
- data/spec/features/admin/promotions/promotion_code_spec.rb +0 -31
- data/spec/features/admin/promotions/promotion_spec.rb +0 -52
- data/spec/features/admin/promotions/tiered_calculator_spec.rb +0 -76
- data/spec/features/admin/promotions/user_rule_spec.rb +0 -42
- data/spec/features/admin/reimbursements_spec.rb +0 -18
- data/spec/features/admin/store_credits_spec.rb +0 -132
- data/spec/features/admin/stores_spec.rb +0 -37
- data/spec/features/admin/style_guide_spec.rb +0 -14
- data/spec/features/admin/taxons_spec.rb +0 -90
- data/spec/features/admin/users_spec.rb +0 -412
- data/spec/fixtures/files/ror_ringer.jpeg +0 -0
- data/spec/helpers/admin/base_helper_spec.rb +0 -49
- data/spec/helpers/admin/navigation_helper_spec.rb +0 -139
- data/spec/helpers/admin/stock_movements_helper_spec.rb +0 -29
- data/spec/helpers/admin/store_credit_events_helper_spec.rb +0 -97
- data/spec/helpers/promotion_rules_helper_spec.rb +0 -14
- data/spec/javascripts/fixtures/_boot.html.erb +0 -8
- data/spec/javascripts/fixtures/number_with_currency/with_currency_select.html.erb +0 -3
- data/spec/javascripts/fixtures/number_with_currency/without_select.html.erb +0 -3
- data/spec/javascripts/format_money_spec.js +0 -48
- data/spec/javascripts/spec_helper.js +0 -13
- data/spec/javascripts/support/show_errors.js +0 -8
- data/spec/javascripts/support/with_translations.js +0 -11
- data/spec/javascripts/translation_spec.js +0 -58
- data/spec/javascripts/views/number_with_currency_spec.js +0 -72
- data/spec/lib/spree/backend_configuration/menu_item_spec.rb +0 -17
- data/spec/lib/spree/backend_configuration_spec.rb +0 -22
- data/spec/spec_helper.rb +0 -123
- data/spec/support/appear_before_matcher.rb +0 -10
- data/spec/support/feature/base_feature_helper.rb +0 -17
- data/spec/support/feature/order_feature_helper.rb +0 -27
- data/spec/teaspoon_env.rb +0 -51
- data/spec/test_views/spree/admin/widgets/edit.html.erb +0 -1
- data/spec/test_views/spree/admin/widgets/new.html.erb +0 -1
- data/spec/views/spree/admin/shared/navigation_footer_spec.rb +0 -67
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'spec_helper'
|
|
4
|
-
|
|
5
|
-
describe 'Order Risk Analysis', type: :feature do
|
|
6
|
-
stub_authorization!
|
|
7
|
-
|
|
8
|
-
let!(:order) do
|
|
9
|
-
create(:completed_order_with_pending_payment)
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def visit_order
|
|
13
|
-
visit spree.admin_path
|
|
14
|
-
click_link 'Orders'
|
|
15
|
-
within_row(1) do
|
|
16
|
-
click_link order.number
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
context "the order is considered risky" do
|
|
21
|
-
before do
|
|
22
|
-
allow_any_instance_of(Spree::Admin::BaseController).to receive_messages try_spree_current_user: create(:user)
|
|
23
|
-
|
|
24
|
-
order.payments.first.update_column(:avs_response, 'N')
|
|
25
|
-
visit_order
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
it "displays 'Risk Analysis' box" do
|
|
29
|
-
expect(page).to have_content 'Risk Analysis'
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
it "can be approved" do
|
|
33
|
-
click_button('Approve')
|
|
34
|
-
expect(page).to have_content 'Approver'
|
|
35
|
-
expect(page).to have_content 'Approved at'
|
|
36
|
-
expect(page).to have_content 'Status: Complete'
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
context "the order is not considered risky" do
|
|
41
|
-
before do
|
|
42
|
-
visit_order
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
it "does not display 'Risk Analysis' box" do
|
|
46
|
-
expect(page).to_not have_content 'Risk Analysis'
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'spec_helper'
|
|
4
|
-
|
|
5
|
-
describe "Shipments", type: :feature do
|
|
6
|
-
include OrderFeatureHelper
|
|
7
|
-
|
|
8
|
-
stub_authorization!
|
|
9
|
-
|
|
10
|
-
let!(:order) { create(:order_ready_to_ship, number: "R100", state: "complete", line_items_count: 5) }
|
|
11
|
-
|
|
12
|
-
# Regression test for https://github.com/spree/spree/issues/4025
|
|
13
|
-
context "a shipment without a shipping method" do
|
|
14
|
-
before do
|
|
15
|
-
order.shipments.each do |s|
|
|
16
|
-
# Deleting the shipping rates causes there to be no shipping methods
|
|
17
|
-
s.shipping_rates.delete_all
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it "can still be displayed" do
|
|
22
|
-
visit spree.edit_admin_order_path(order)
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
context "shipping an order", js: true do
|
|
27
|
-
before(:each) do
|
|
28
|
-
visit spree.admin_path
|
|
29
|
-
click_link "Orders"
|
|
30
|
-
within_row(1) do
|
|
31
|
-
click_link "R100"
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def ship_shipment
|
|
36
|
-
find(".ship-shipment-button").click
|
|
37
|
-
|
|
38
|
-
expect(page).to have_content("Shipped package")
|
|
39
|
-
expect(order.reload.shipment_state).to eq("shipped")
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
it "can ship a completed order" do
|
|
43
|
-
expect {
|
|
44
|
-
perform_enqueued_jobs {
|
|
45
|
-
ship_shipment
|
|
46
|
-
}
|
|
47
|
-
}.to change{ ActionMailer::Base.deliveries.count }.by(1)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
it "doesn't send a shipping confirmation email when ask to suppress the mailer" do
|
|
51
|
-
uncheck 'Send Mailer'
|
|
52
|
-
|
|
53
|
-
expect {
|
|
54
|
-
perform_enqueued_jobs {
|
|
55
|
-
ship_shipment
|
|
56
|
-
}
|
|
57
|
-
}.not_to change{ ActionMailer::Base.deliveries.count }
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
context "destroying a shipment", js: true do
|
|
62
|
-
before do
|
|
63
|
-
visit spree.admin_path
|
|
64
|
-
click_link "Orders"
|
|
65
|
-
within_row(1) do
|
|
66
|
-
click_link "R100"
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
context "when the line item cannot be found" do
|
|
71
|
-
it "shows the proper error message" do
|
|
72
|
-
expect(page).to have_selector '.delete-item'
|
|
73
|
-
order.shipments.first.line_items.each(&:destroy)
|
|
74
|
-
accept_alert { first('.delete-item').click }
|
|
75
|
-
expect(page).to have_content 'The resource you were looking for could not be found.'
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
context "when the shipment has already been shipped" do
|
|
80
|
-
it "shows the proper error message" do
|
|
81
|
-
expect(page).to have_selector '.delete-item'
|
|
82
|
-
order.shipments.first.ship!
|
|
83
|
-
accept_alert { first('.delete-item').click }
|
|
84
|
-
expect(page).to have_content 'Cannot remove items from a shipped shipment'
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
context "moving variants between shipments", js: true do
|
|
90
|
-
let!(:order) { create(:completed_order_with_pending_payment, number: "R100", state: "complete", line_items_count: 5) }
|
|
91
|
-
let!(:la) { create(:stock_location, name: "LA") }
|
|
92
|
-
before(:each) do
|
|
93
|
-
visit spree.admin_path
|
|
94
|
-
click_link "Orders"
|
|
95
|
-
within_row(1) do
|
|
96
|
-
click_link "R100"
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
it "can move a variant to a new and to an existing shipment" do
|
|
101
|
-
expect(order.shipments.count).to eq(1)
|
|
102
|
-
shipment1 = order.shipments[0]
|
|
103
|
-
|
|
104
|
-
within('tr', text: order.line_items[0].sku) { click_icon 'arrows-h' }
|
|
105
|
-
complete_split_to('LA')
|
|
106
|
-
|
|
107
|
-
expect(page).to have_css("#shipment_#{shipment1.id} tr.stock-item", count: 4)
|
|
108
|
-
shipment2 = (order.reload.shipments.to_a - [shipment1]).first
|
|
109
|
-
expect(page).to have_css("#shipment_#{shipment2.id} tr.stock-item", count: 1)
|
|
110
|
-
within "#shipment_#{shipment2.id}" do
|
|
111
|
-
expect(page).to have_content("UPS Ground")
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
within('tr', text: order.line_items[1].sku) { click_icon 'arrows-h' }
|
|
115
|
-
complete_split_to("LA(#{shipment2.number})")
|
|
116
|
-
expect(page).to have_css("#shipment_#{shipment2.id} tr.stock-item", count: 2)
|
|
117
|
-
expect(page).to have_css("#shipment_#{shipment1.id} tr.stock-item", count: 3)
|
|
118
|
-
|
|
119
|
-
within "#shipment_#{shipment2.id}" do
|
|
120
|
-
expect(page).to have_content("UPS Ground")
|
|
121
|
-
end
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
context "with a ready-to-ship order" do
|
|
125
|
-
let(:variant) { create(:variant) }
|
|
126
|
-
let!(:order) do
|
|
127
|
-
create(
|
|
128
|
-
:order_ready_to_ship,
|
|
129
|
-
number: "R100",
|
|
130
|
-
line_items_attributes: [{ variant: variant, quantity: 5 }]
|
|
131
|
-
)
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
it "can transfer all items to a new location" do
|
|
135
|
-
expect(order.shipments.count).to eq(1)
|
|
136
|
-
|
|
137
|
-
within('tr', text: order.line_items[0].sku) { click_icon 'arrows-h' }
|
|
138
|
-
complete_split_to('LA', quantity: 5)
|
|
139
|
-
|
|
140
|
-
expect(page).to_not have_content("package from 'NY Warehouse'")
|
|
141
|
-
expect(page).to have_content("package from 'LA'")
|
|
142
|
-
end
|
|
143
|
-
end
|
|
144
|
-
end
|
|
145
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'spec_helper'
|
|
4
|
-
|
|
5
|
-
RSpec.describe 'Store credits', type: :feature do
|
|
6
|
-
stub_authorization!
|
|
7
|
-
|
|
8
|
-
let(:order) { FactoryBot.create(:completed_order_with_totals) }
|
|
9
|
-
let(:payment) do
|
|
10
|
-
FactoryBot.create(
|
|
11
|
-
:store_credit_payment,
|
|
12
|
-
order: order,
|
|
13
|
-
amount: 20
|
|
14
|
-
)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
it "viewing a store credit payment" do
|
|
18
|
-
visit spree.admin_order_payment_path(order, payment)
|
|
19
|
-
|
|
20
|
-
expect(page).to have_content "Store Credit"
|
|
21
|
-
expect(page).to have_content "Amount: $20.00"
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'spec_helper'
|
|
4
|
-
|
|
5
|
-
describe "Product Images", type: :feature do
|
|
6
|
-
stub_authorization!
|
|
7
|
-
|
|
8
|
-
let(:file_path) { file_fixture("ror_ringer.jpeg") }
|
|
9
|
-
let(:product) { create(:product) }
|
|
10
|
-
|
|
11
|
-
before do
|
|
12
|
-
# Ensure attachment style keys are symbolized before running all tests
|
|
13
|
-
# Otherwise this would result in this error:
|
|
14
|
-
# undefined method `processors' for \"48x48>\
|
|
15
|
-
Spree::Image.attachment_definitions[:attachment][:styles].symbolize_keys!
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
context "uploading, editing, and deleting an image", js: true do
|
|
19
|
-
it "should allow an admin to upload and edit an image for a product" do
|
|
20
|
-
Spree::Image.attachment_definitions[:attachment].delete :storage
|
|
21
|
-
|
|
22
|
-
create(:product)
|
|
23
|
-
|
|
24
|
-
visit spree.admin_path
|
|
25
|
-
click_nav "Products"
|
|
26
|
-
click_icon(:edit)
|
|
27
|
-
click_link "Images"
|
|
28
|
-
click_link "new_image_link"
|
|
29
|
-
within_fieldset 'New Image' do
|
|
30
|
-
attach_file('image_attachment', file_path)
|
|
31
|
-
end
|
|
32
|
-
click_button "Update"
|
|
33
|
-
expect(page).to have_content("successfully created!")
|
|
34
|
-
|
|
35
|
-
# Icons are hidden, so hover to have them pop-up
|
|
36
|
-
find('tbody > tr').hover
|
|
37
|
-
within_row(1) do
|
|
38
|
-
within ".actions" do
|
|
39
|
-
click_icon :edit
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
fill_in "image_alt", with: "ruby on rails t-shirt"
|
|
44
|
-
click_button "Update"
|
|
45
|
-
|
|
46
|
-
expect(page).to have_content "successfully updated!"
|
|
47
|
-
expect(page).to have_field "image[alt]", with: "ruby on rails t-shirt"
|
|
48
|
-
|
|
49
|
-
find('tbody > tr').hover
|
|
50
|
-
accept_alert do
|
|
51
|
-
click_icon :trash
|
|
52
|
-
end
|
|
53
|
-
expect(page).not_to have_field "image[alt]", with: "ruby on rails t-shirt"
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
it "should not see variant column when product has no variants" do
|
|
58
|
-
product = create(:product)
|
|
59
|
-
product.images.create!(attachment: File.open(file_path))
|
|
60
|
-
visit spree.admin_product_images_path(product)
|
|
61
|
-
|
|
62
|
-
expect(page).not_to have_content("No Images Found.")
|
|
63
|
-
within("table.index") do
|
|
64
|
-
# ensure no duplicate images are displayed
|
|
65
|
-
expect(page).to have_css("tbody tr", count: 1)
|
|
66
|
-
|
|
67
|
-
# ensure variant header is not displayed
|
|
68
|
-
within("thead") do
|
|
69
|
-
expect(page).not_to have_content("Variant")
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
# ensure correct cell count
|
|
73
|
-
expect(page).to have_css("thead th", count: 4)
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'spec_helper'
|
|
4
|
-
|
|
5
|
-
describe 'Product Details', type: :feature do
|
|
6
|
-
stub_authorization!
|
|
7
|
-
|
|
8
|
-
context 'editing a product' do
|
|
9
|
-
it 'should list the product details' do
|
|
10
|
-
create(:product, name: 'Bún thịt nướng', sku: 'A100',
|
|
11
|
-
description: 'lorem ipsum', available_on: '2013-08-14 01:02:03')
|
|
12
|
-
|
|
13
|
-
visit spree.admin_path
|
|
14
|
-
click_nav "Products"
|
|
15
|
-
within_row(1) { click_icon :edit }
|
|
16
|
-
|
|
17
|
-
click_link 'Product Details'
|
|
18
|
-
|
|
19
|
-
expect(page).to have_content('ProductsBún thịt nướng')
|
|
20
|
-
expect(page).to have_field('product_name', with: 'Bún thịt nướng')
|
|
21
|
-
expect(page).to have_field('product_slug', with: 'bun-th-t-n-ng')
|
|
22
|
-
expect(page).to have_field('product_description', with: 'lorem ipsum')
|
|
23
|
-
expect(page).to have_field('product_price', with: '19.99')
|
|
24
|
-
expect(page).to have_field('product_cost_price', with: '17.00')
|
|
25
|
-
expect(page).to have_field('product_available_on', with: "2013/08/14")
|
|
26
|
-
expect(page).to have_field('product_sku', with: 'A100')
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
it "should handle slug changes" do
|
|
30
|
-
create(:product, name: 'Bún thịt nướng', sku: 'A100',
|
|
31
|
-
description: 'lorem ipsum', available_on: '2011-01-01 01:01:01')
|
|
32
|
-
|
|
33
|
-
visit spree.admin_path
|
|
34
|
-
click_nav "Products"
|
|
35
|
-
within('table.index tbody tr:nth-child(1)') do
|
|
36
|
-
click_icon(:edit)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
fill_in "product_slug", with: 'random-slug-value'
|
|
40
|
-
click_button "Update"
|
|
41
|
-
expect(page).to have_content("successfully updated!")
|
|
42
|
-
|
|
43
|
-
fill_in "product_slug", with: ''
|
|
44
|
-
click_button "Update"
|
|
45
|
-
within('#product_slug_field') { expect(page).to have_content("can't be blank") }
|
|
46
|
-
|
|
47
|
-
fill_in "product_slug", with: 'x'
|
|
48
|
-
click_button "Update"
|
|
49
|
-
expect(page).to have_content("successfully updated!")
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
context "when default price is deleted" do
|
|
54
|
-
it "does not show the master price", js: true do
|
|
55
|
-
product = create(:product, name: 'Bún thịt nướng', sku: 'A100',
|
|
56
|
-
description: 'lorem ipsum', available_on: '2013-08-14 01:02:03')
|
|
57
|
-
|
|
58
|
-
visit spree.admin_path
|
|
59
|
-
click_nav "Products"
|
|
60
|
-
within_row(1) { click_icon :edit }
|
|
61
|
-
|
|
62
|
-
click_link 'Prices'
|
|
63
|
-
|
|
64
|
-
within "#spree_price_#{product.master.default_price.id}" do
|
|
65
|
-
accept_alert do
|
|
66
|
-
click_icon :trash
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
expect(page).to have_content("Price has been successfully removed")
|
|
70
|
-
|
|
71
|
-
click_link 'Product Details'
|
|
72
|
-
|
|
73
|
-
expect(page).not_to have_field('product_price')
|
|
74
|
-
expect(page).to have_content('This Product has no price in the default currency (USD).')
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
# Regression test for https://github.com/spree/spree/issues/3385
|
|
79
|
-
context "deleting a product", js: true do
|
|
80
|
-
it "is still able to find the master variant" do
|
|
81
|
-
create(:product)
|
|
82
|
-
|
|
83
|
-
visit spree.admin_products_path
|
|
84
|
-
within_row(1) do
|
|
85
|
-
accept_alert do
|
|
86
|
-
click_icon :trash
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
expect(page).to have_content('Product has been deleted')
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
end
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'spec_helper'
|
|
4
|
-
|
|
5
|
-
describe "Product Display Order", type: :feature do
|
|
6
|
-
stub_authorization!
|
|
7
|
-
|
|
8
|
-
context "managing display order", js: true do
|
|
9
|
-
def assert_selected_taxons(taxons)
|
|
10
|
-
# Regression test for https://github.com/spree/spree/issues/2139
|
|
11
|
-
taxons.each do |taxon|
|
|
12
|
-
expect(page).to have_css(".select2-search-choice", text: taxon.name)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
expected_value = taxons.map(&:id).join(",")
|
|
16
|
-
expect(page).to have_xpath("//*[@id = 'product_taxon_ids' and @value = '#{expected_value}']", visible: :all)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
let(:product) { create(:product) }
|
|
20
|
-
|
|
21
|
-
it "should allow an admin to manage display order (taxons)" do
|
|
22
|
-
taxon_1 = create(:taxon)
|
|
23
|
-
taxon_2 = create(:taxon, name: 'Clothing')
|
|
24
|
-
product.taxons << taxon_1
|
|
25
|
-
|
|
26
|
-
visit spree.edit_admin_product_path(product)
|
|
27
|
-
|
|
28
|
-
assert_selected_taxons([taxon_1])
|
|
29
|
-
select2_search "Clothing", from: "Taxon"
|
|
30
|
-
assert_selected_taxons([taxon_1, taxon_2])
|
|
31
|
-
|
|
32
|
-
# Without this line we have a flaky spec probably due to select2 not
|
|
33
|
-
# closing its fixed overlay correctly. Clicking anywhere in the page
|
|
34
|
-
# before submit apparently solves the issue.
|
|
35
|
-
find('.edit_product', visible: true, obscured: false).click
|
|
36
|
-
|
|
37
|
-
click_button "Update"
|
|
38
|
-
|
|
39
|
-
within('.flash') do
|
|
40
|
-
expect(page).to have_content(%(Product "#{product.name}" has been successfully updated!))
|
|
41
|
-
end
|
|
42
|
-
assert_selected_taxons([taxon_1, taxon_2])
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
context "with an XSS attempt", skip: true do
|
|
46
|
-
let(:taxon_name) { %(<script>throw("XSS")</script>) }
|
|
47
|
-
let!(:taxon) { create(:taxon, name: taxon_name) }
|
|
48
|
-
it "displays the escaped HTML without executing it" do
|
|
49
|
-
visit spree.edit_admin_product_path(product)
|
|
50
|
-
|
|
51
|
-
select2_search "<script>", from: "Taxon"
|
|
52
|
-
|
|
53
|
-
expect(page).to have_content(taxon_name)
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|