solidus_backend 1.1.4 → 1.2.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/images/solidus-style-guide-logo.png +0 -0
- data/app/assets/javascripts/spree/backend/admin.js.erb +1 -7
- data/app/assets/javascripts/spree/backend/checkouts/edit.js +2 -2
- data/app/assets/javascripts/spree/backend/navigation.coffee +10 -0
- data/app/assets/javascripts/spree/backend/option_type_autocomplete.js.erb +6 -6
- data/app/assets/javascripts/spree/backend/option_value_picker.js +6 -6
- data/app/assets/javascripts/spree/backend/product_picker.js +6 -6
- data/app/assets/javascripts/spree/backend/shipments.js.erb +17 -3
- data/app/assets/javascripts/spree/backend/stock_movement.js.coffee +2 -2
- data/app/assets/javascripts/spree/backend/style_guide.coffee +2 -0
- data/app/assets/javascripts/spree/backend/taxon_autocomplete.js.erb +6 -6
- data/app/assets/javascripts/spree/backend/taxonomy.js.coffee +82 -109
- data/app/assets/javascripts/spree/backend/taxons.js.coffee +4 -5
- data/app/assets/javascripts/spree/backend/user_picker.js +8 -8
- data/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee.erb +3 -3
- data/app/assets/javascripts/spree/backend.js +3 -6
- data/app/assets/stylesheets/spree/backend/components/_messages.scss +1 -4
- data/app/assets/stylesheets/spree/backend/components/_navigation.scss +99 -115
- data/app/assets/stylesheets/spree/backend/components/_progress.scss +1 -1
- data/app/assets/stylesheets/spree/backend/components/_sidebar.scss +6 -0
- data/app/assets/stylesheets/spree/backend/globals/_variables.scss +18 -0
- data/app/assets/stylesheets/spree/backend/globals/mixins/_caret.scss +35 -0
- data/app/assets/stylesheets/spree/backend/plugins/_powertip.scss +1 -0
- data/app/assets/stylesheets/spree/backend/sections/_style_guide.scss +132 -0
- data/app/assets/stylesheets/spree/backend/sections/_taxonomies.scss +60 -0
- data/app/assets/stylesheets/spree/backend/shared/_forms.scss +2 -0
- data/app/assets/stylesheets/spree/backend/shared/_layout.scss +36 -4
- data/app/assets/stylesheets/spree/backend/shared/_typography.scss +3 -6
- data/app/assets/stylesheets/spree/backend/spree_admin.scss +4 -1
- data/app/assets/stylesheets/spree/backend.css +1 -1
- data/app/controllers/spree/admin/orders_controller.rb +6 -6
- data/app/controllers/spree/admin/payment_methods_controller.rb +1 -1
- data/app/controllers/spree/admin/payments_controller.rb +1 -1
- data/app/controllers/spree/admin/products_controller.rb +0 -1
- data/app/controllers/spree/admin/reports_controller.rb +2 -2
- data/app/controllers/spree/admin/search_controller.rb +9 -7
- data/app/controllers/spree/admin/stock_transfers_controller.rb +6 -14
- data/app/controllers/spree/admin/style_guide_controller.rb +33 -0
- data/app/helpers/spree/admin/adjustments_helper.rb +2 -6
- data/app/helpers/spree/admin/base_helper.rb +7 -6
- data/app/helpers/spree/admin/navigation_helper.rb +12 -5
- data/app/helpers/spree/admin/orders_helper.rb +1 -1
- data/app/helpers/spree/admin/products_helper.rb +2 -4
- data/app/helpers/spree/admin/stock_movements_helper.rb +3 -3
- data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +2 -2
- data/app/views/spree/admin/customer_returns/_reimbursements_table.html.erb +1 -1
- data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +1 -1
- data/app/views/spree/admin/customer_returns/edit.html.erb +1 -1
- data/app/views/spree/admin/images/edit.html.erb +1 -3
- data/app/views/spree/admin/images/index.html.erb +0 -2
- data/app/views/spree/admin/option_types/edit.html.erb +2 -4
- data/app/views/spree/admin/option_types/index.html.erb +0 -2
- data/app/views/spree/admin/option_types/new.html.erb +0 -2
- data/app/views/spree/admin/orders/_shipment_manifest.html.erb +1 -1
- data/app/views/spree/admin/orders/index.html.erb +1 -1
- data/app/views/spree/admin/product_properties/index.html.erb +0 -1
- data/app/views/spree/admin/products/edit.html.erb +0 -2
- data/app/views/spree/admin/products/index.html.erb +2 -4
- data/app/views/spree/admin/products/new.html.erb +0 -2
- data/app/views/spree/admin/promotion_categories/edit.html.erb +0 -2
- data/app/views/spree/admin/promotion_categories/index.html.erb +0 -2
- data/app/views/spree/admin/promotion_categories/new.html.erb +0 -2
- data/app/views/spree/admin/promotions/actions/_create_adjustment.html.erb +2 -28
- data/app/views/spree/admin/promotions/actions/_create_item_adjustments.html.erb +2 -26
- data/app/views/spree/admin/promotions/actions/_promotion_calculators_with_custom_fields.html.erb +28 -0
- data/app/views/spree/admin/promotions/edit.html.erb +0 -2
- data/app/views/spree/admin/promotions/index.html.erb +0 -2
- data/app/views/spree/admin/promotions/new.html.erb +0 -2
- data/app/views/spree/admin/properties/edit.html.erb +0 -2
- data/app/views/spree/admin/properties/index.html.erb +2 -4
- data/app/views/spree/admin/properties/new.html.erb +0 -2
- data/app/views/spree/admin/properties/new.js.erb +1 -1
- data/app/views/spree/admin/prototypes/edit.html.erb +0 -2
- data/app/views/spree/admin/prototypes/index.html.erb +0 -2
- data/app/views/spree/admin/prototypes/new.html.erb +0 -2
- data/app/views/spree/admin/reimbursements/edit.html.erb +2 -2
- data/app/views/spree/admin/reimbursements/show.html.erb +9 -9
- data/app/views/spree/admin/return_authorizations/_form.html.erb +16 -16
- data/app/views/spree/admin/search/users.rabl +1 -1
- data/app/views/spree/admin/shared/_head.html.erb +11 -0
- data/app/views/spree/admin/shared/_header.html.erb +4 -8
- data/app/views/spree/admin/shared/_menu.html.erb +4 -8
- data/app/views/spree/admin/shared/_navigation.html.erb +9 -0
- data/app/views/spree/admin/shared/_navigation_footer.html.erb +3 -0
- data/app/views/spree/admin/shared/_product_sub_menu.html.erb +20 -22
- data/app/views/spree/admin/shared/_promotion_sub_menu.html.erb +8 -10
- data/app/views/spree/admin/shared/_stock_sub_menu.html.erb +8 -10
- data/app/views/spree/admin/shared/_tabs.html.erb +9 -3
- data/app/views/spree/admin/shipping_methods/_form.html.erb +2 -2
- data/app/views/spree/admin/stock_items/index.html.erb +1 -2
- data/app/views/spree/admin/stock_transfers/edit.html.erb +0 -1
- data/app/views/spree/admin/stock_transfers/index.html.erb +0 -3
- data/app/views/spree/admin/stock_transfers/new.html.erb +0 -2
- data/app/views/spree/admin/stock_transfers/receive.html.erb +0 -2
- data/app/views/spree/admin/stock_transfers/show.html.erb +0 -2
- data/app/views/spree/admin/stock_transfers/tracking_info.html.erb +0 -2
- data/app/views/spree/admin/style_guide/index.html.erb +5 -0
- data/app/views/spree/admin/style_guide/topics/forms/_building_forms.html.erb +79 -0
- data/app/views/spree/admin/style_guide/topics/forms/_validation.html.erb +14 -0
- data/app/views/spree/admin/style_guide/topics/messaging/_flashes.html.erb +13 -0
- data/app/views/spree/admin/style_guide/topics/messaging/_loading.html.erb +20 -0
- data/app/views/spree/admin/style_guide/topics/messaging/_tooltips.html.erb +16 -0
- data/app/views/spree/admin/style_guide/topics/tables/_building_tables.html.erb +44 -0
- data/app/views/spree/admin/style_guide/topics/tables/_pagination.html.erb +11 -0
- data/app/views/spree/admin/style_guide/topics/typography/_colors.html.erb +64 -0
- data/app/views/spree/admin/style_guide/topics/typography/_fonts.html.erb +19 -0
- data/app/views/spree/admin/style_guide/topics/typography/_icons.html.erb +13 -0
- data/app/views/spree/admin/style_guide/topics/typography/_lists.html.erb +25 -0
- data/app/views/spree/admin/style_guide/topics/typography/_tags.html.erb +25 -0
- data/app/views/spree/admin/taxonomies/_js_head.html.erb +0 -0
- data/app/views/spree/admin/taxonomies/edit.erb +5 -6
- data/app/views/spree/admin/taxonomies/index.html.erb +0 -2
- data/app/views/spree/admin/taxonomies/new.html.erb +0 -2
- data/app/views/spree/admin/taxons/_form.html.erb +1 -1
- data/app/views/spree/admin/taxons/_list_template.html.erb +17 -0
- data/app/views/spree/admin/taxons/index.html.erb +0 -3
- data/app/views/spree/admin/users/orders.html.erb +1 -1
- data/app/views/spree/admin/variants/edit.html.erb +0 -2
- data/app/views/spree/admin/variants/index.html.erb +0 -2
- data/app/views/spree/layouts/admin.html.erb +3 -4
- data/app/views/spree/layouts/admin_style_guide.html.erb +58 -0
- data/config/routes.rb +4 -2
- data/lib/spree/backend/engine.rb +0 -1
- data/lib/spree/backend.rb +0 -3
- data/solidus_backend.gemspec +5 -7
- data/spec/controllers/spree/admin/missing_products_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/orders_controller_spec.rb +14 -14
- data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +2 -4
- data/spec/controllers/spree/admin/payments_controller_spec.rb +2 -2
- data/spec/controllers/spree/admin/products_controller_spec.rb +3 -3
- data/spec/controllers/spree/admin/reports_controller_spec.rb +4 -4
- data/spec/controllers/spree/admin/return_authorizations_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/shipping_methods_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +1 -1
- data/spec/controllers/spree/admin/stock_transfers_controller_spec.rb +13 -11
- data/spec/features/admin/configuration/general_settings_spec.rb +10 -7
- data/spec/features/admin/configuration/payment_methods_spec.rb +1 -1
- data/spec/features/admin/configuration/shipping_methods_spec.rb +1 -1
- data/spec/features/admin/configuration/states_spec.rb +1 -1
- data/spec/features/admin/configuration/tax_rates_spec.rb +6 -7
- data/spec/features/admin/configuration/taxonomies_spec.rb +3 -3
- data/spec/features/admin/homepage_spec.rb +6 -6
- data/spec/features/admin/orders/cancelling_and_resuming_spec.rb +4 -8
- data/spec/features/admin/orders/customer_details_spec.rb +9 -8
- data/spec/features/admin/orders/line_items_spec.rb +1 -1
- data/spec/features/admin/orders/listing_spec.rb +2 -2
- data/spec/features/admin/orders/log_entries_spec.rb +3 -3
- data/spec/features/admin/orders/new_order_spec.rb +3 -15
- data/spec/features/admin/orders/order_details_spec.rb +17 -20
- data/spec/features/admin/orders/payments_spec.rb +10 -10
- data/spec/features/admin/orders/shipments_spec.rb +2 -2
- data/spec/features/admin/products/edit/images_spec.rb +5 -3
- data/spec/features/admin/products/edit/products_spec.rb +11 -11
- data/spec/features/admin/products/edit/taxons_spec.rb +14 -38
- data/spec/features/admin/products/edit/variants_spec.rb +3 -3
- data/spec/features/admin/products/option_types_spec.rb +22 -21
- data/spec/features/admin/products/products_spec.rb +15 -12
- data/spec/features/admin/products/properties_spec.rb +3 -3
- data/spec/features/admin/products/prototypes_spec.rb +4 -4
- data/spec/features/admin/products/stock_management_spec.rb +5 -5
- data/spec/features/admin/products/variant_spec.rb +8 -8
- data/spec/features/admin/promotion_adjustments_spec.rb +6 -13
- data/spec/features/admin/promotions/option_value_rule_spec.rb +0 -20
- data/spec/features/admin/reports_spec.rb +2 -2
- data/spec/features/admin/stock_transfer_spec.rb +3 -3
- data/spec/features/admin/store_credits_spec.rb +2 -2
- data/spec/features/admin/users_spec.rb +6 -6
- data/spec/helpers/admin/navigation_helper_spec.rb +5 -0
- data/spec/helpers/admin/reimbursements_helper_spec.rb +1 -1
- data/spec/helpers/admin/store_credit_events_helper_spec.rb +1 -1
- data/spec/spec_helper.rb +3 -1
- data/spec/support/feature/base_feature_helper.rb +10 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_0_eeeeee_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_55_ffffff_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_0073ea_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_666666_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_ff0084_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
- data/vendor/assets/javascripts/jquery.powertip.js +792 -423
- data/vendor/assets/javascripts/jquery.sticky-kit.min.js +10 -0
- data/vendor/assets/javascripts/prism.js +7 -0
- data/vendor/assets/stylesheets/prism.css +139 -0
- metadata +44 -51
- data/app/assets/stylesheets/spree/backend/plugins/_jstree.scss +0 -135
- data/app/views/spree/admin/shared/_sub_menu.html.erb +0 -9
- data/spec/features/admin/promotions/user_rule_spec.rb +0 -25
- data/vendor/assets/javascripts/equalize.js +0 -41
- data/vendor/assets/javascripts/jquery.jstree/jquery.jstree.js +0 -4540
- data/vendor/assets/javascripts/jquery.jstree/themes/apple/bg.jpg +0 -0
- data/vendor/assets/javascripts/jquery.jstree/themes/apple/d.png +0 -0
- data/vendor/assets/javascripts/jquery.jstree/themes/apple/dot_for_ie.gif +0 -0
- data/vendor/assets/javascripts/jquery.jstree/themes/apple/style.scss +0 -61
- data/vendor/assets/javascripts/jquery.jstree/themes/apple/throbber.gif +0 -0
- data/vendor/assets/javascripts/jquery.vAlign.js +0 -11
- data/vendor/assets/javascripts/modernizr.js +0 -4
- data/vendor/assets/javascripts/responsive-tables.js +0 -42
- data/vendor/assets/stylesheets/responsive-tables.css +0 -21
|
@@ -10,7 +10,7 @@ module Spree
|
|
|
10
10
|
|
|
11
11
|
let(:payment_method) { GatewayWithPassword.create!(:name => "Bogus", :preferred_password => "haxme") }
|
|
12
12
|
|
|
13
|
-
# regression test for
|
|
13
|
+
# regression test for https://github.com/spree/spree/issues/2094
|
|
14
14
|
it "does not clear password on update" do
|
|
15
15
|
expect(payment_method.preferred_password).to eq("haxme")
|
|
16
16
|
spree_put :update, :id => payment_method.id, :payment_method => { :type => payment_method.class.to_s, :preferred_password => "" }
|
|
@@ -22,9 +22,7 @@ module Spree
|
|
|
22
22
|
|
|
23
23
|
context "tries to save invalid payment" do
|
|
24
24
|
it "doesn't break, responds nicely" do
|
|
25
|
-
|
|
26
|
-
spree_post :create, :payment_method => { :name => "", :type => "Spree::Gateway::Bogus" }
|
|
27
|
-
}.not_to raise_error
|
|
25
|
+
spree_post :create, :payment_method => { :name => "", :type => "Spree::Gateway::Bogus" }
|
|
28
26
|
end
|
|
29
27
|
end
|
|
30
28
|
|
|
@@ -23,7 +23,7 @@ module Spree
|
|
|
23
23
|
:source_attributes => {
|
|
24
24
|
:name => "Test User",
|
|
25
25
|
:number => "4111 1111 1111 1111",
|
|
26
|
-
:expiry => "09 / #{Time.
|
|
26
|
+
:expiry => "09 / #{Time.current.year + 1}",
|
|
27
27
|
:verification_value => "123"
|
|
28
28
|
}
|
|
29
29
|
}
|
|
@@ -71,7 +71,7 @@ module Spree
|
|
|
71
71
|
end
|
|
72
72
|
end
|
|
73
73
|
|
|
74
|
-
# Regression test for
|
|
74
|
+
# Regression test for https://github.com/spree/spree/issues/3233
|
|
75
75
|
context "with a backend payment method" do
|
|
76
76
|
before do
|
|
77
77
|
@payment_method = create(:check_payment_method, :display_on => "back_end")
|
|
@@ -6,7 +6,7 @@ describe Spree::Admin::ProductsController, :type => :controller do
|
|
|
6
6
|
context "#index" do
|
|
7
7
|
let(:ability_user) { stub_model(Spree::LegacyUser, :has_spree_role? => true) }
|
|
8
8
|
|
|
9
|
-
# Regression test for
|
|
9
|
+
# Regression test for https://github.com/spree/spree/issues/1259
|
|
10
10
|
it "can find a product by SKU" do
|
|
11
11
|
product = create(:product, :sku => "ABC123")
|
|
12
12
|
spree_get :index, :q => { :sku_start => "ABC123" }
|
|
@@ -15,7 +15,7 @@ describe Spree::Admin::ProductsController, :type => :controller do
|
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
# regression test for
|
|
18
|
+
# regression test for https://github.com/spree/spree/issues/1370
|
|
19
19
|
context "adding properties to a product" do
|
|
20
20
|
let!(:product) { create(:product) }
|
|
21
21
|
specify do
|
|
@@ -143,7 +143,7 @@ describe Spree::Admin::ProductsController, :type => :controller do
|
|
|
143
143
|
end
|
|
144
144
|
end
|
|
145
145
|
|
|
146
|
-
# regression test for
|
|
146
|
+
# regression test for https://github.com/spree/spree/issues/801
|
|
147
147
|
context "destroying a product" do
|
|
148
148
|
let(:product) do
|
|
149
149
|
product = create(:product)
|
|
@@ -31,10 +31,10 @@ describe Spree::Admin::ReportsController, :type => :controller do
|
|
|
31
31
|
|
|
32
32
|
before do
|
|
33
33
|
# can't set completed_at during factory creation
|
|
34
|
-
order_complete_start_of_month.completed_at = Time.
|
|
34
|
+
order_complete_start_of_month.completed_at = Time.current.beginning_of_month + 1.minute
|
|
35
35
|
order_complete_start_of_month.save!
|
|
36
36
|
|
|
37
|
-
order_complete_mid_month.completed_at = Time.
|
|
37
|
+
order_complete_mid_month.completed_at = Time.current.beginning_of_month + 15.days
|
|
38
38
|
order_complete_mid_month.save!
|
|
39
39
|
end
|
|
40
40
|
|
|
@@ -84,7 +84,7 @@ describe Spree::Admin::ReportsController, :type => :controller do
|
|
|
84
84
|
end
|
|
85
85
|
|
|
86
86
|
context 'when params has a completed_at_gt' do
|
|
87
|
-
let(:params) { { q: { completed_at_gt: Time.
|
|
87
|
+
let(:params) { { q: { completed_at_gt: Time.current.beginning_of_month + 1.day } } }
|
|
88
88
|
|
|
89
89
|
it_behaves_like 'sales total report' do
|
|
90
90
|
let(:expected_returned_orders) { [order_complete_mid_month] }
|
|
@@ -101,7 +101,7 @@ describe Spree::Admin::ReportsController, :type => :controller do
|
|
|
101
101
|
end
|
|
102
102
|
|
|
103
103
|
context 'when params has a compeleted_at_lt' do
|
|
104
|
-
let(:params) { { q: { completed_at_lt: Time.
|
|
104
|
+
let(:params) { { q: { completed_at_lt: Time.current.beginning_of_month } } }
|
|
105
105
|
|
|
106
106
|
it_behaves_like 'sales total report' do
|
|
107
107
|
let(:expected_returned_orders) { [order_complete_start_of_month] }
|
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
|
3
3
|
describe Spree::Admin::ReturnAuthorizationsController, :type => :controller do
|
|
4
4
|
stub_authorization!
|
|
5
5
|
|
|
6
|
-
# Regression test for
|
|
6
|
+
# Regression test for https://github.com/spree/spree/issues/1370 #3
|
|
7
7
|
let!(:order) { create(:shipped_order, line_items_count: 3) }
|
|
8
8
|
let!(:return_reason) { create(:return_reason) }
|
|
9
9
|
let(:inventory_unit_1) { order.inventory_units.order('id asc')[0] }
|
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
|
3
3
|
describe Spree::Admin::ShippingMethodsController, :type => :controller do
|
|
4
4
|
stub_authorization!
|
|
5
5
|
|
|
6
|
-
# Regression test for
|
|
6
|
+
# Regression test for https://github.com/spree/spree/issues/1240
|
|
7
7
|
it "should not hard-delete shipping methods" do
|
|
8
8
|
shipping_method = stub_model(Spree::ShippingMethod)
|
|
9
9
|
allow(Spree::ShippingMethod).to receive_messages :find => shipping_method
|
|
@@ -5,7 +5,7 @@ module Spree
|
|
|
5
5
|
describe StockLocationsController, :type => :controller do
|
|
6
6
|
stub_authorization!
|
|
7
7
|
|
|
8
|
-
# Regression for
|
|
8
|
+
# Regression for https://github.com/spree/spree/issues/4272
|
|
9
9
|
context "with no countries present" do
|
|
10
10
|
it "cannot create a new stock location" do
|
|
11
11
|
spree_get :new
|
|
@@ -20,8 +20,8 @@ module Spree
|
|
|
20
20
|
StockTransfer.create do |transfer|
|
|
21
21
|
transfer.source_location_id = warehouse.id
|
|
22
22
|
transfer.destination_location_id = la_store.id
|
|
23
|
-
transfer.finalized_at = DateTime.
|
|
24
|
-
transfer.closed_at = DateTime.
|
|
23
|
+
transfer.finalized_at = DateTime.current
|
|
24
|
+
transfer.closed_at = DateTime.current
|
|
25
25
|
end }
|
|
26
26
|
|
|
27
27
|
describe "stock location filtering" do
|
|
@@ -31,8 +31,8 @@ module Spree
|
|
|
31
31
|
|
|
32
32
|
before do
|
|
33
33
|
ability.cannot :manage, Spree::StockLocation
|
|
34
|
-
ability.can :
|
|
35
|
-
ability.can :
|
|
34
|
+
ability.can :display, Spree::StockLocation, id: [warehouse.id]
|
|
35
|
+
ability.can :display, Spree::StockLocation, id: [ny_store.id, la_store.id]
|
|
36
36
|
|
|
37
37
|
allow_any_instance_of(Spree::Admin::BaseController).to receive(:spree_current_user).and_return(user)
|
|
38
38
|
allow_any_instance_of(Spree::Admin::BaseController).to receive(:current_ability).and_return(ability)
|
|
@@ -163,7 +163,7 @@ module Spree
|
|
|
163
163
|
|
|
164
164
|
context 'stock transfer is not finalizable' do
|
|
165
165
|
before do
|
|
166
|
-
transfer_with_items.update_attributes(finalized_at: Time.
|
|
166
|
+
transfer_with_items.update_attributes(finalized_at: Time.current)
|
|
167
167
|
end
|
|
168
168
|
|
|
169
169
|
it 'redirects back to edit' do
|
|
@@ -302,12 +302,14 @@ module Spree
|
|
|
302
302
|
end
|
|
303
303
|
end
|
|
304
304
|
|
|
305
|
-
context "#
|
|
306
|
-
let(:stock_transfer) { Spree::StockTransfer.create(source_location: warehouse, destination_location: ny_store, created_by: create(:admin_user))}
|
|
305
|
+
context "#ship" do
|
|
306
|
+
let(:stock_transfer) { Spree::StockTransfer.create(source_location: warehouse, destination_location: ny_store, created_by: create(:admin_user)) }
|
|
307
307
|
let(:transfer_variant) { create(:variant) }
|
|
308
308
|
let(:warehouse_stock_item) { warehouse.stock_items.find_by(variant: transfer_variant) }
|
|
309
309
|
let(:ny_stock_item) { ny_store.stock_items.find_by(variant: transfer_variant) }
|
|
310
310
|
|
|
311
|
+
subject { spree_put :ship, id: stock_transfer.number }
|
|
312
|
+
|
|
311
313
|
before do
|
|
312
314
|
warehouse_stock_item.set_count_on_hand(1)
|
|
313
315
|
stock_transfer.transfer_items.create!(variant: transfer_variant, expected_quantity: 1)
|
|
@@ -316,14 +318,14 @@ module Spree
|
|
|
316
318
|
context "with transferable items" do
|
|
317
319
|
|
|
318
320
|
it "marks the transfer shipped" do
|
|
319
|
-
|
|
321
|
+
subject
|
|
320
322
|
|
|
321
323
|
expect(stock_transfer.reload.shipped_at).to_not be_nil
|
|
322
324
|
expect(flash[:success]).to be_present
|
|
323
325
|
end
|
|
324
326
|
|
|
325
327
|
it "makes stock movements for the transferred items" do
|
|
326
|
-
|
|
328
|
+
subject
|
|
327
329
|
|
|
328
330
|
expect(Spree::StockMovement.count).to eq 1
|
|
329
331
|
expect(warehouse_stock_item.reload.count_on_hand).to eq 0
|
|
@@ -334,13 +336,13 @@ module Spree
|
|
|
334
336
|
before { warehouse_stock_item.set_count_on_hand(0) }
|
|
335
337
|
|
|
336
338
|
it "does not mark the transfer shipped" do
|
|
337
|
-
|
|
339
|
+
subject
|
|
338
340
|
|
|
339
341
|
expect(stock_transfer.reload.shipped_at).to be_nil
|
|
340
342
|
end
|
|
341
343
|
|
|
342
344
|
it "errors and redirects to tracking_info page" do
|
|
343
|
-
|
|
345
|
+
subject
|
|
344
346
|
|
|
345
347
|
expect(flash[:error]).to match /not enough inventory/
|
|
346
348
|
expect(response).to redirect_to(spree.tracking_info_admin_stock_transfer_path(stock_transfer))
|
|
@@ -3,9 +3,12 @@ require 'spec_helper'
|
|
|
3
3
|
describe "General Settings", type: :feature, js: true do
|
|
4
4
|
stub_authorization!
|
|
5
5
|
|
|
6
|
+
let!(:store) do
|
|
7
|
+
create(:store, name: 'Test Store', url: 'test.example.org',
|
|
8
|
+
mail_from_address: 'test@example.org')
|
|
9
|
+
end
|
|
10
|
+
|
|
6
11
|
before(:each) do
|
|
7
|
-
store = create(:store, name: 'Test Store', url: 'test.example.org',
|
|
8
|
-
mail_from_address: 'test@example.org')
|
|
9
12
|
visit spree.admin_path
|
|
10
13
|
click_link "Settings"
|
|
11
14
|
click_link "General Settings"
|
|
@@ -14,9 +17,9 @@ describe "General Settings", type: :feature, js: true do
|
|
|
14
17
|
context "visiting general settings (admin)" do
|
|
15
18
|
it "should have the right content" do
|
|
16
19
|
expect(page).to have_content("General Settings")
|
|
17
|
-
expect(
|
|
18
|
-
expect(
|
|
19
|
-
expect(
|
|
20
|
+
expect(page).to have_field("store_name", with: "Test Store")
|
|
21
|
+
expect(page).to have_field("store_url", with: "test.example.org")
|
|
22
|
+
expect(page).to have_field("store_mail_from_address", with: "test@example.org")
|
|
20
23
|
end
|
|
21
24
|
end
|
|
22
25
|
|
|
@@ -27,8 +30,8 @@ describe "General Settings", type: :feature, js: true do
|
|
|
27
30
|
click_button "Update"
|
|
28
31
|
|
|
29
32
|
assert_successful_update_message(:general_settings)
|
|
30
|
-
expect(
|
|
31
|
-
expect(
|
|
33
|
+
expect(page).to have_field("store_name", with: "Spree Demo Site99")
|
|
34
|
+
expect(page).to have_field("store_mail_from_address", with: "spree@example.org")
|
|
32
35
|
end
|
|
33
36
|
end
|
|
34
37
|
|
|
@@ -52,7 +52,7 @@ describe "Payment Methods", :type => :feature do
|
|
|
52
52
|
fill_in "payment_method_name", :with => "Payment 99"
|
|
53
53
|
click_button "Update"
|
|
54
54
|
expect(page).to have_content("successfully updated!")
|
|
55
|
-
expect(
|
|
55
|
+
expect(page).to have_field("payment_method_name", with: "Payment 99")
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
it "should display validation errors" do
|
|
@@ -46,7 +46,7 @@ describe "Shipping Methods", :type => :feature do
|
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
-
# Regression test for
|
|
49
|
+
# Regression test for https://github.com/spree/spree/issues/1331
|
|
50
50
|
context "update" do
|
|
51
51
|
it "can change the calculator", :js => true do
|
|
52
52
|
within("#listing_shipping_methods") do
|
|
@@ -46,7 +46,7 @@ describe "States", :type => :feature do
|
|
|
46
46
|
click_button "Create"
|
|
47
47
|
expect(page).to have_content("successfully created!")
|
|
48
48
|
expect(page).to have_content("Pest megye")
|
|
49
|
-
expect(find("#s2id_country
|
|
49
|
+
expect(find("#s2id_country")).to have_content("Hungary")
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
it "should show validation errors", :js => true do
|
|
@@ -10,16 +10,15 @@ describe "Tax Rates", :type => :feature do
|
|
|
10
10
|
click_link "Settings"
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
# Regression test for
|
|
13
|
+
# Regression test for https://github.com/spree/spree/issues/535
|
|
14
14
|
it "can see a tax rate in the list if the tax category has been deleted" do
|
|
15
|
-
tax_rate.tax_category.update_column(:deleted_at, Time.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
end
|
|
15
|
+
tax_rate.tax_category.update_column(:deleted_at, Time.current)
|
|
16
|
+
click_link "Tax Rates"
|
|
17
|
+
|
|
18
|
+
expect(find("table tbody td:nth-child(3)")).to have_content('N/A')
|
|
20
19
|
end
|
|
21
20
|
|
|
22
|
-
# Regression test for
|
|
21
|
+
# Regression test for https://github.com/spree/spree/issues/1422
|
|
23
22
|
it "can create a new tax rate" do
|
|
24
23
|
click_link "Tax Rates"
|
|
25
24
|
click_link "New Tax Rate"
|
|
@@ -12,7 +12,7 @@ describe "Taxonomies", :type => :feature do
|
|
|
12
12
|
it "should display existing taxonomies" do
|
|
13
13
|
create(:taxonomy, :name => 'Brand')
|
|
14
14
|
create(:taxonomy, :name => 'Categories')
|
|
15
|
-
|
|
15
|
+
click_nav "Products", "Taxonomies"
|
|
16
16
|
within_row(1) { expect(page).to have_content("Brand") }
|
|
17
17
|
within_row(2) { expect(page).to have_content("Categories") }
|
|
18
18
|
end
|
|
@@ -20,7 +20,7 @@ describe "Taxonomies", :type => :feature do
|
|
|
20
20
|
|
|
21
21
|
context "create" do
|
|
22
22
|
before(:each) do
|
|
23
|
-
|
|
23
|
+
click_nav "Products", "Taxonomies"
|
|
24
24
|
click_link "admin_new_taxonomy_link"
|
|
25
25
|
end
|
|
26
26
|
|
|
@@ -41,7 +41,7 @@ describe "Taxonomies", :type => :feature do
|
|
|
41
41
|
context "edit" do
|
|
42
42
|
it "should allow an admin to update an existing taxonomy" do
|
|
43
43
|
create(:taxonomy)
|
|
44
|
-
|
|
44
|
+
click_nav "Products", "Taxonomies"
|
|
45
45
|
within_row(1) { click_icon :edit }
|
|
46
46
|
fill_in "taxonomy_name", :with => "sports 99"
|
|
47
47
|
click_button "Update"
|
|
@@ -11,7 +11,7 @@ describe "Homepage", :type => :feature do
|
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
it "should have a link to overview" do
|
|
14
|
-
within(
|
|
14
|
+
within(".admin-nav-header") { page.find(:xpath, "a[@href='/admin']") }
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "should have a link to orders" do
|
|
@@ -19,7 +19,7 @@ describe "Homepage", :type => :feature do
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
it "should have a link to products" do
|
|
22
|
-
page.
|
|
22
|
+
page.assert_selector(:link, text: "Products", count: 2)
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
it "should have a link to reports" do
|
|
@@ -37,19 +37,19 @@ describe "Homepage", :type => :feature do
|
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
it "should have a link to products" do
|
|
40
|
-
within('
|
|
40
|
+
within('.selected .admin-subnav') { page.find_link("Products")['/admin/products'] }
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
it "should have a link to option types" do
|
|
44
|
-
within('
|
|
44
|
+
within('.selected .admin-subnav') { page.find_link("Option Types")['/admin/option_types'] }
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
it "should have a link to properties" do
|
|
48
|
-
within('
|
|
48
|
+
within('.selected .admin-subnav') { page.find_link("Properties")['/admin/properties'] }
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
it "should have a link to prototypes" do
|
|
52
|
-
within('
|
|
52
|
+
within('.selected .admin-subnav') { page.find_link("Prototypes")['/admin/prototypes'] }
|
|
53
53
|
end
|
|
54
54
|
end
|
|
55
55
|
end
|
|
@@ -14,8 +14,8 @@ describe "Cancelling + Resuming", :type => :feature do
|
|
|
14
14
|
let(:order) do
|
|
15
15
|
order = create(:order)
|
|
16
16
|
order.update_columns({
|
|
17
|
-
:
|
|
18
|
-
:
|
|
17
|
+
state: 'complete',
|
|
18
|
+
completed_at: Time.current
|
|
19
19
|
})
|
|
20
20
|
order
|
|
21
21
|
end
|
|
@@ -24,9 +24,7 @@ describe "Cancelling + Resuming", :type => :feature do
|
|
|
24
24
|
visit spree.edit_admin_order_path(order.number)
|
|
25
25
|
click_button 'cancel'
|
|
26
26
|
within(".additional-info") do
|
|
27
|
-
|
|
28
|
-
expect(page).to have_content("canceled")
|
|
29
|
-
end
|
|
27
|
+
expect(find('dt#order_status + dd')).to have_content("canceled")
|
|
30
28
|
end
|
|
31
29
|
end
|
|
32
30
|
|
|
@@ -39,9 +37,7 @@ describe "Cancelling + Resuming", :type => :feature do
|
|
|
39
37
|
visit spree.edit_admin_order_path(order.number)
|
|
40
38
|
click_button 'resume'
|
|
41
39
|
within(".additional-info") do
|
|
42
|
-
|
|
43
|
-
expect(page).to have_content("resumed")
|
|
44
|
-
end
|
|
40
|
+
expect(find('dt#order_status + dd')).to have_content("resumed")
|
|
45
41
|
end
|
|
46
42
|
end
|
|
47
43
|
end
|
|
@@ -6,7 +6,7 @@ describe "Customer Details", type: :feature, js: true do
|
|
|
6
6
|
let(:country) { create(:country, name: "Kangaland") }
|
|
7
7
|
let(:state) { create(:state, name: "Alabama", country: country) }
|
|
8
8
|
let!(:shipping_method) { create(:shipping_method, display_on: "front_end") }
|
|
9
|
-
let!(:order) { create(:order, state: 'complete', completed_at: "2011-02-01 12:36:15") }
|
|
9
|
+
let!(:order) { create(:order, ship_address: ship_address, bill_address: bill_address, state: 'complete', completed_at: "2011-02-01 12:36:15") }
|
|
10
10
|
let!(:product) { create(:product_in_stock) }
|
|
11
11
|
|
|
12
12
|
# We need a unique name that will appear for the customer dropdown
|
|
@@ -16,7 +16,7 @@ describe "Customer Details", type: :feature, js: true do
|
|
|
16
16
|
let!(:user) { create(:user, email: 'foobar@example.com', ship_address: ship_address, bill_address: bill_address) }
|
|
17
17
|
|
|
18
18
|
context "brand new order" do
|
|
19
|
-
# Regression test for
|
|
19
|
+
# Regression test for https://github.com/spree/spree/issues/3335 and https://github.com/spree/spree/issues/5317
|
|
20
20
|
it "associates a user when not using guest checkout" do
|
|
21
21
|
visit spree.admin_path
|
|
22
22
|
click_link "Orders"
|
|
@@ -69,8 +69,9 @@ describe "Customer Details", type: :feature, js: true do
|
|
|
69
69
|
end
|
|
70
70
|
|
|
71
71
|
click_button "Update"
|
|
72
|
+
expect(page).to have_content "Customer Details Updated"
|
|
72
73
|
click_link "Customer Details"
|
|
73
|
-
expect(
|
|
74
|
+
expect(page).to have_field("order_bill_address_attributes_state_name", with: "Piaui")
|
|
74
75
|
end
|
|
75
76
|
end
|
|
76
77
|
|
|
@@ -85,10 +86,10 @@ describe "Customer Details", type: :feature, js: true do
|
|
|
85
86
|
click_button "Update"
|
|
86
87
|
click_link "Customer Details"
|
|
87
88
|
|
|
88
|
-
# Regression test for
|
|
89
|
+
# Regression test for https://github.com/spree/spree/issues/2950 and https://github.com/spree/spree/issues/2433
|
|
89
90
|
# This act should transition the state of the order as far as it will go too
|
|
90
91
|
within("#order_tab_summary") do
|
|
91
|
-
expect(find("
|
|
92
|
+
expect(find("dt#order_status + dd")).to have_content("COMPLETE")
|
|
92
93
|
end
|
|
93
94
|
end
|
|
94
95
|
|
|
@@ -121,11 +122,11 @@ describe "Customer Details", type: :feature, js: true do
|
|
|
121
122
|
|
|
122
123
|
it "sets default country when displaying form" do
|
|
123
124
|
click_link "Customer Details"
|
|
124
|
-
expect(
|
|
125
|
+
expect(page).to have_field("order_bill_address_attributes_country_id", with: brazil.id)
|
|
125
126
|
end
|
|
126
127
|
end
|
|
127
128
|
|
|
128
|
-
# Regression test for
|
|
129
|
+
# Regression test for https://github.com/spree/spree/issues/942
|
|
129
130
|
context "errors when no shipping methods are available" do
|
|
130
131
|
before do
|
|
131
132
|
Spree::ShippingMethod.delete_all
|
|
@@ -144,7 +145,7 @@ describe "Customer Details", type: :feature, js: true do
|
|
|
144
145
|
|
|
145
146
|
page.select('Alabama', from: 'order_ship_address_attributes_state_id')
|
|
146
147
|
fill_in "order_ship_address_attributes_phone", with: "123-456-7890"
|
|
147
|
-
|
|
148
|
+
click_button "Update"
|
|
148
149
|
end
|
|
149
150
|
end
|
|
150
151
|
end
|
|
@@ -79,13 +79,13 @@ describe "Orders Listing", type: :feature, js: true do
|
|
|
79
79
|
Spree::Config[:orders_per_page] = @old_per_page
|
|
80
80
|
end
|
|
81
81
|
|
|
82
|
-
# Regression test for
|
|
82
|
+
# Regression test for https://github.com/spree/spree/issues/4004
|
|
83
83
|
it "should be able to go from page to page for incomplete orders" do
|
|
84
84
|
10.times { Spree::Order.create email: "incomplete@example.com" }
|
|
85
85
|
click_on 'Filter'
|
|
86
86
|
uncheck "q_completed_at_not_null"
|
|
87
87
|
click_on 'Filter Results'
|
|
88
|
-
within(".pagination") do
|
|
88
|
+
within(".pagination", match: :first) do
|
|
89
89
|
click_link "2"
|
|
90
90
|
end
|
|
91
91
|
expect(page).to have_content("incomplete@example.com")
|
|
@@ -21,7 +21,7 @@ describe "Log entries", :type => :feature do
|
|
|
21
21
|
|
|
22
22
|
it "shows a successful attempt" do
|
|
23
23
|
visit spree.admin_order_payments_path(payment.order)
|
|
24
|
-
|
|
24
|
+
click_on payment.number
|
|
25
25
|
click_link "Logs"
|
|
26
26
|
within("#listing_log_entries") do
|
|
27
27
|
expect(page).to have_content("Transaction successful")
|
|
@@ -45,11 +45,11 @@ describe "Log entries", :type => :feature do
|
|
|
45
45
|
|
|
46
46
|
it "shows a failed attempt" do
|
|
47
47
|
visit spree.admin_order_payments_path(payment.order)
|
|
48
|
-
|
|
48
|
+
click_on payment.number
|
|
49
49
|
click_link "Logs"
|
|
50
50
|
within("#listing_log_entries") do
|
|
51
51
|
expect(page).to have_content("Transaction failed")
|
|
52
52
|
end
|
|
53
53
|
end
|
|
54
54
|
end
|
|
55
|
-
end
|
|
55
|
+
end
|
|
@@ -91,7 +91,7 @@ describe "New Order", :type => :feature do
|
|
|
91
91
|
end
|
|
92
92
|
end
|
|
93
93
|
|
|
94
|
-
# Regression test for
|
|
94
|
+
# Regression test for https://github.com/spree/spree/issues/3958
|
|
95
95
|
context "without a delivery step", js: true do
|
|
96
96
|
before do
|
|
97
97
|
allow(Spree::Order).to receive_messages checkout_step_names: [:address, :payment, :confirm, :complete]
|
|
@@ -119,7 +119,7 @@ describe "New Order", :type => :feature do
|
|
|
119
119
|
end
|
|
120
120
|
end
|
|
121
121
|
|
|
122
|
-
# Regression test for
|
|
122
|
+
# Regression test for https://github.com/spree/spree/issues/3336
|
|
123
123
|
context "start by customer address" do
|
|
124
124
|
it "completes order fine", js: true do
|
|
125
125
|
click_on "Customer Details"
|
|
@@ -149,7 +149,7 @@ describe "New Order", :type => :feature do
|
|
|
149
149
|
end
|
|
150
150
|
end
|
|
151
151
|
|
|
152
|
-
# Regression test for
|
|
152
|
+
# Regression test for https://github.com/spree/spree/issues/5327
|
|
153
153
|
context "customer with default credit card", js: true do
|
|
154
154
|
before do
|
|
155
155
|
create(:credit_card, default: true, user: user)
|
|
@@ -172,18 +172,6 @@ describe "New Order", :type => :feature do
|
|
|
172
172
|
end
|
|
173
173
|
end
|
|
174
174
|
|
|
175
|
-
context "customer with attempted XSS", js: true do
|
|
176
|
-
let(:xss_string) { %(<script>throw("XSS")</script>) }
|
|
177
|
-
before do
|
|
178
|
-
user.update!(email: xss_string)
|
|
179
|
-
end
|
|
180
|
-
it "displays the user's email escaped without executing" do
|
|
181
|
-
click_on "Customer Details"
|
|
182
|
-
targetted_select2_search user.email, from: "#s2id_customer_search"
|
|
183
|
-
expect(page).to have_field("Email", with: xss_string)
|
|
184
|
-
end
|
|
185
|
-
end
|
|
186
|
-
|
|
187
175
|
def fill_in_address(kind = "bill")
|
|
188
176
|
fill_in "First Name", with: "John 99"
|
|
189
177
|
fill_in "Last Name", with: "Doe"
|
|
@@ -67,7 +67,7 @@ describe "Order Details", type: :feature, js: true do
|
|
|
67
67
|
expect(page).not_to have_content("spree t-shirt")
|
|
68
68
|
end
|
|
69
69
|
|
|
70
|
-
# Regression test for
|
|
70
|
+
# Regression test for https://github.com/spree/spree/issues/3862
|
|
71
71
|
it "can cancel removing an item from a shipment" do
|
|
72
72
|
expect(page).to have_content("spree t-shirt")
|
|
73
73
|
|
|
@@ -373,12 +373,12 @@ describe "Order Details", type: :feature, js: true do
|
|
|
373
373
|
fill_in 'item_quantity', with: 1
|
|
374
374
|
click_icon :ok
|
|
375
375
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
376
|
+
within(all('.stock-contents', count: 2).first) do
|
|
377
|
+
within_row(1) { click_icon 'arrows-h' }
|
|
378
|
+
targetted_select2 @shipment2.number, from: '#s2id_item_stock_location'
|
|
379
|
+
fill_in 'item_quantity', with: 200
|
|
380
|
+
click_icon :ok
|
|
381
|
+
end
|
|
382
382
|
|
|
383
383
|
wait_for_ajax
|
|
384
384
|
|
|
@@ -424,26 +424,23 @@ describe "Order Details", type: :feature, js: true do
|
|
|
424
424
|
product.master.stock_items.last.update_column(:count_on_hand, 0)
|
|
425
425
|
expect(@shipment2.reload.backordered?).to eq(false)
|
|
426
426
|
|
|
427
|
-
|
|
428
427
|
within_row(1) { click_icon 'arrows-h' }
|
|
429
428
|
targetted_select2 @shipment2.number, from: '#s2id_item_stock_location'
|
|
430
429
|
fill_in 'item_quantity', with: 1
|
|
431
430
|
click_icon :ok
|
|
432
431
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
expect(@shipment2.reload.backordered?).to eq(true)
|
|
432
|
+
expect(page).to have_content("1 x backordered")
|
|
436
433
|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
434
|
+
within('.stock-contents', text: "1 x on hand") do
|
|
435
|
+
within_row(1) { click_icon 'arrows-h' }
|
|
436
|
+
targetted_select2 @shipment2.number, from: '#s2id_item_stock_location'
|
|
437
|
+
fill_in 'item_quantity', with: 1
|
|
438
|
+
click_icon :ok
|
|
439
|
+
end
|
|
443
440
|
|
|
444
|
-
|
|
445
|
-
expect(
|
|
446
|
-
expect(
|
|
441
|
+
# Empty shipment should be removed
|
|
442
|
+
expect(page).to have_css('.stock-contents', count: 1)
|
|
443
|
+
expect(page).to have_content("2 x backordered")
|
|
447
444
|
end
|
|
448
445
|
end
|
|
449
446
|
end
|