From b99d985b75dadb64fe4e1c197e7d5a564512dde6 Mon Sep 17 00:00:00 2001 From: Ahmed Ejaz Date: Thu, 11 Jul 2024 01:59:10 +0500 Subject: [PATCH] 12497 - add actions spec --- .../{products_spec.rb => actions_spec.rb} | 118 +----------------- 1 file changed, 1 insertion(+), 117 deletions(-) rename spec/system/admin/products_v3/{products_spec.rb => actions_spec.rb} (80%) diff --git a/spec/system/admin/products_v3/products_spec.rb b/spec/system/admin/products_v3/actions_spec.rb similarity index 80% rename from spec/system/admin/products_v3/products_spec.rb rename to spec/system/admin/products_v3/actions_spec.rb index a0e35aa41b..e462a39e01 100644 --- a/spec/system/admin/products_v3/products_spec.rb +++ b/spec/system/admin/products_v3/actions_spec.rb @@ -182,7 +182,7 @@ RSpec.describe 'As an enterprise user, I can manage my products', feature: :admi end end - describe "actions" do + describe "actions menu" do describe "edit" do let!(:variant_a1) { create(:variant, @@ -562,120 +562,4 @@ RSpec.describe 'As an enterprise user, I can manage my products', feature: :admi expect(page).to have_selector row_containing_name("Pommes") end end - - describe "creating a new product" do - let!(:stock_location) { create(:stock_location, backorderable_default: false) } - let!(:supplier) { create(:supplier_enterprise) } - let!(:distributor) { create(:distributor_enterprise) } - let!(:shipping_category) { create(:shipping_category) } - let!(:taxon) { create(:taxon) } - - before do - login_as_admin - visit spree.admin_products_path - end - - it "creating a new product" do - find("a", text: "New Product").click - expect(page).to have_content "New Product" - fill_in 'product_name', with: 'Big Bag Of Apples' - tomselect_select supplier.name, from: 'product[supplier_id]' - select_tom_select 'Weight (g)', from: 'product_variant_unit_field' - fill_in 'product_unit_value', with: '100' - fill_in 'product_price', with: '10.00' - # TODO dropdowns below are still using select2: - select taxon.name, from: 'product_primary_taxon_id' # ...instead of tom-select - select shipping_category.name, from: 'product_shipping_category_id' # ...instead of tom-select - click_button 'Create' - expect(URI.parse(current_url).path).to eq spree.admin_products_path - expect(flash_message).to eq 'Product "Big Bag Of Apples" has been successfully created!' - expect(page).to have_field "_products_0_name", with: 'Big Bag Of Apples' - end - end - - context "creating new variants" do - let!(:product) { create(:product, variant_unit: 'weight', variant_unit_scale: 1000) } - - before do - login_as_admin - visit spree.admin_products_path - end - - it "hovering over the New variant button displays the text" do - page.find('button[aria-label="New variant"]', text: "New variant", visible: false) - find("button.secondary.condensed.naked.icon-plus").hover - page.find('button[aria-label="New variant"]', text: "New variant", visible: true) - expect(page).to have_content "New variant" - end - - shared_examples "creating a new variant (bulk)" do |stock| - it "handles the #{stock} behaviour" do - # the product and the default variant is displayed - expect(page).to have_selector("input[aria-label=Name][value='#{product.name}']", - visible: true, count: 1) - expect(page).to have_selector("input[aria-label=Name][placeholder='#{product.name}']", - visible: false, count: 1) - - # when a second variant is added, the number of lines increases - expect { - find("button.secondary.condensed.naked.icon-plus").click - }.to change{ - page.all("input[aria-label=Name][placeholder='#{product.name}']", visible: false).count - }.from(1).to(2) - - # When I fill out variant details and hit update - within page.all("tr.condensed")[1] do # selects second variant row - find('input[id$="_sku"]').fill_in with: "345" - find('input[id$="_display_name"]').fill_in with: "Small bag" - find('button[id$="unit_to_display"]').click # opens the unit value pop out - find('input[id$="_unit_value_with_description"]').fill_in with: "0.002" - find('input[id$="_display_as"]').fill_in with: "2 grams" - find('button[aria-label="On Hand"]').click - find('input[id$="_price"]').fill_in with: "11.1" - if stock == "on_hand" - find('input[id$="_on_hand"]').fill_in with: "66" - elsif stock == "on_demand" - find('input[id$="_on_demand"]').check - end - end - - expect(page).to have_content "1 product modified." - - expect { - click_on "Save changes" - expect(page).to have_content "Changes saved" - }.to change { - Spree::Variant.count - }.from(1).to(2) - - click_on "Dismiss" - expect(page).not_to have_content "Changes saved" - - new_variant = Spree::Variant.where(deleted_at: nil).last - expect(new_variant.sku).to eq "345" - expect(new_variant.display_name).to eq "Small bag" - expect(new_variant.unit_value).to eq 2.0 - expect(new_variant.display_as).to eq "2 grams" - expect(new_variant.unit_presentation).to eq "2 grams" - expect(new_variant.price).to eq 11.1 - if stock == "on_hand" - expect(new_variant.on_hand).to eq 66 - elsif stock == "on_demand" - expect(new_variant.on_demand).to eq true - end - - within page.all("tr.condensed")[1] do # selects second variant row - page.find('input[id$="_sku"]').fill_in with: "789" - end - - accept_confirm do - click_on "Discard changes" # does not save chages - end - expect(page).not_to have_content "Changes saved" - end - end - - it_behaves_like "creating a new variant (bulk)", "on_hand" - it_behaves_like "creating a new variant (bulk)", "on_demand" - end end