From 52fd7b102e64e649617a14395318fba7083aab5a Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 8 Mar 2019 14:46:58 +1100 Subject: [PATCH] Unify visiting bulk order management DRYing the code allows for easier refactor and more consistency. --- .../admin/bulk_order_management_spec.rb | 58 +++++++++---------- 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/spec/features/admin/bulk_order_management_spec.rb b/spec/features/admin/bulk_order_management_spec.rb index df68c00bfd..b5a628ccdf 100644 --- a/spec/features/admin/bulk_order_management_spec.rb +++ b/spec/features/admin/bulk_order_management_spec.rb @@ -14,7 +14,7 @@ feature %q{ end it "displays a message when number of line items is zero" do - visit '/admin/orders/bulk_management' + visit_bulk_order_management expect(page).to have_text 'No orders found.' end @@ -27,7 +27,7 @@ feature %q{ let!(:li3) { create(:line_item, order: o3 ) } before :each do - visit '/admin/orders/bulk_management' + visit_bulk_order_management end it "displays a list of line items" do @@ -44,8 +44,7 @@ feature %q{ let!(:li2) { create(:line_item, order: o2, product: create(:product_with_option_types) ) } before :each do - visit '/admin/orders/bulk_management' - wait_until { request_monitor_finished 'LineItemsCtrl' } + visit_bulk_order_management end it "displays a column for user's full name" do @@ -92,8 +91,7 @@ feature %q{ let!(:li2) { create(:line_item, order: o2) } before do - visit spree.admin_bulk_order_management_path - wait_until { request_monitor_finished 'LineItemsCtrl' } + visit_bulk_order_management end it "sorts by customer name when the customer name header is clicked" do @@ -131,7 +129,7 @@ feature %q{ let!(:li1) { create(:line_item, order: o1, :quantity => 5 ) } before :each do - visit '/admin/orders/bulk_management' + visit_bulk_order_management end it "adds the class 'ng-dirty' to input elements when value is altered" do @@ -147,7 +145,7 @@ feature %q{ before :each do li1.variant.update_attributes(on_hand: 1, on_demand: false) - visit '/admin/orders/bulk_management' + visit_bulk_order_management end context "when acceptable data is sent to the server" do @@ -191,7 +189,7 @@ feature %q{ context "modifying the weight/volume of a line item" do it "price is altered" do - visit '/admin/orders/bulk_management' + visit_bulk_order_management toggle_columns "Weight/Volume", "Price" within "tr#li_#{li1.id}" do expect(page).to have_field "price", with: "50.00" @@ -208,7 +206,7 @@ feature %q{ context "modifying the quantity of a line item" do it "price is altered" do - visit '/admin/orders/bulk_management' + visit_bulk_order_management toggle_columns "Price" within "tr#li_#{li1.id}" do expect(page).to have_field "price", with: "#{format("%.2f",li1.price * 5)}" @@ -220,7 +218,7 @@ feature %q{ context "modifying the quantity of a line item" do it "weight/volume is altered" do - visit '/admin/orders/bulk_management' + visit_bulk_order_management toggle_columns "Weight/Volume" within "tr#li_#{li1.id}" do expect(page).to have_field "final_weight_volume", with: "#{li1.final_weight_volume.round}" @@ -232,7 +230,7 @@ feature %q{ context "using column display toggle" do it "shows a column display toggle button, which shows a list of columns when clicked" do - visit '/admin/orders/bulk_management' + visit_bulk_order_management expect(page).to have_selector "th", :text => "NAME" expect(page).to have_selector "th", text: I18n.t("admin.orders.bulk_management.order_date").upcase @@ -261,8 +259,7 @@ feature %q{ let!(:li2) { create(:line_item, order: o1, product: create(:product, supplier: s2) ) } before :each do - visit '/admin/orders/bulk_management' - wait_until { request_monitor_finished 'LineItemsCtrl' } + visit_bulk_order_management end it "displays a select box for producers, which filters line items by the selected supplier" do @@ -300,8 +297,7 @@ feature %q{ let!(:li2) { create(:line_item, order: o2 ) } before :each do - visit '/admin/orders/bulk_management' - wait_until { request_monitor_finished 'LineItemsCtrl' } + visit_bulk_order_management end it "displays a select box for distributors, which filters line items by the selected distributor" do @@ -340,8 +336,7 @@ feature %q{ let!(:li2) { create(:line_item, order: o2 ) } before do - visit '/admin/orders/bulk_management' - wait_until { request_monitor_finished 'LineItemsCtrl' } + visit_bulk_order_management end it "displays a select box for order cycles, which filters line items by the selected order cycle" do @@ -381,8 +376,7 @@ feature %q{ let!(:li2) { create(:line_item, order: o2, product: p2 ) } before :each do - visit '/admin/orders/bulk_management' - wait_until { request_monitor_finished 'LineItemsCtrl' } + visit_bulk_order_management end it "allows filters to be used in combination" do @@ -432,8 +426,7 @@ feature %q{ let!(:li3) { create(:line_item, order: o3 ) } before :each do - visit '/admin/orders/bulk_management' - wait_until { request_monitor_finished 'LineItemsCtrl' } + visit_bulk_order_management end it "displays a quick search input" do @@ -462,8 +455,7 @@ feature %q{ let!(:li4) { create(:line_item, order: o4, :quantity => 4 ) } before :each do - visit '/admin/orders/bulk_management' - wait_until { request_monitor_finished 'LineItemsCtrl' } + visit_bulk_order_management end it "displays date fields for filtering orders, with default values set" do @@ -535,8 +527,7 @@ feature %q{ let!(:li2) { create(:line_item, order: o2 ) } before :each do - visit '/admin/orders/bulk_management' - wait_until { request_monitor_finished 'LineItemsCtrl' } + visit_bulk_order_management end it "displays a checkbox for each line item in the list" do @@ -608,7 +599,7 @@ feature %q{ let!(:li2) { create(:line_item, order: o2 ) } before :each do - visit '/admin/orders/bulk_management' + visit_bulk_order_management end it "shows an edit button for line_items, which takes the user to the standard edit page for the order" do @@ -642,7 +633,7 @@ feature %q{ let!(:li2) { create(:line_item, order: o2 ) } before :each do - visit '/admin/orders/bulk_management' + visit_bulk_order_management end it "removes a line item when the relevant delete button is clicked" do @@ -652,7 +643,7 @@ feature %q{ end expect(page).to have_no_selector "a.delete-line-item", :count => 2 expect(page).to have_selector "a.delete-line-item", :count => 1 - visit '/admin/orders/bulk_management' + visit_bulk_order_management expect(page).to have_selector "a.delete-line-item", :count => 1 end end @@ -670,7 +661,7 @@ feature %q{ let!(:li4) { create(:line_item, order: o2, variant: v3, quantity: 1, max_quantity: 3 ) } before :each do - visit '/admin/orders/bulk_management' + visit_bulk_order_management within "tr#li_#{li3.id}" do find("a", text: li3.product.name + ": " + li3.variant.options_text).click end @@ -746,13 +737,18 @@ feature %q{ end it "shows only line item from orders that I distribute, and not those that I supply" do - visit '/admin/orders/bulk_management' + visit_bulk_order_management expect(page).to have_selector "tr#li_#{line_item_distributed.id}", :visible => true expect(page).to have_no_selector "tr#li_#{line_item_not_distributed.id}", :visible => true end end + def visit_bulk_order_management + visit spree.admin_bulk_order_management_path + wait_until { request_monitor_finished 'LineItemsCtrl' } + end + def select_date(date) # Wait for datepicker to open and be associated to the datepicker trigger. expect(page).to have_selector("#ui-datepicker-div")