From 8b5d5b362676d083f61134454c2279674424241c Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Thu, 23 Nov 2023 17:27:09 +0000 Subject: [PATCH 1/2] Changes inventory setting for order cycle coordinator ...instead of supplier; Inventory is a feature which is relevant for shops/hubs. --- spec/system/admin/order_cycles/simple_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/system/admin/order_cycles/simple_spec.rb b/spec/system/admin/order_cycles/simple_spec.rb index 29dfba4af8..343068643f 100644 --- a/spec/system/admin/order_cycles/simple_spec.rb +++ b/spec/system/admin/order_cycles/simple_spec.rb @@ -395,7 +395,7 @@ describe ' ex_out.save! # hide via inventory settings variant v1 - supplier_managed.update preferred_product_selection_from_inventory_only: true + distributor_managed.update preferred_product_selection_from_inventory_only: true oc.update prefers_product_selection_from_coordinator_inventory_only: false end From 0390d52f18d7a0a1ca0d353f9f79e8184ede7ff1 Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Thu, 23 Nov 2023 18:36:31 +0000 Subject: [PATCH 2/2] Adds test to reproduce issue #11851 --- spec/system/admin/order_cycles/simple_spec.rb | 36 +++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/spec/system/admin/order_cycles/simple_spec.rb b/spec/system/admin/order_cycles/simple_spec.rb index 343068643f..0d2be4f125 100644 --- a/spec/system/admin/order_cycles/simple_spec.rb +++ b/spec/system/admin/order_cycles/simple_spec.rb @@ -399,13 +399,37 @@ describe ' oc.update prefers_product_selection_from_coordinator_inventory_only: false end - it "shows a warning when going to 'outgoing products' tab" do - visit edit_admin_order_cycle_path(oc) - click_link "Outgoing Products" - within "tr.distributor-#{distributor_managed.id}" do - page.find("td.products").click + shared_examples "inventory warning" do + |inventory_visible, inventory_only, it_description, expect_message| + before do + # hides/displays variant within coordinator's inventory + inventory_item_v1.update!(visible: inventory_visible) + # changes coordinator's inventory preferences + supplier_managed.update preferred_product_selection_from_inventory_only: inventory_only end - expect(page).to have_content "(Some variants might be hidden via inventory settings)" + + it "#{it_description} a warning when going to 'outgoing products' tab" do + visit edit_admin_order_cycle_path(oc) + click_link "Outgoing Products" + within "tr.distributor-#{distributor_managed.id}" do + page.find("td.products").click + end + + # we need this assertion here to assure there is enough time to + # toggle the variant box and evaluate the following assertion + expect(page).to have_content product.name.upcase + + # iterates between true / false, depending on the test case + expectation = expect_message ? :to : :not_to + expect(page).public_send(expectation, + have_content(%(No variant available for this product + (hidden via inventory settings)).squish)) + end + end + + it_behaves_like "inventory warning", false, true, "shows", true + it_behaves_like "inventory warning", false, false, "does not show", false do + before { pending("#11851") } end end