From 2ece6bfb493374e62a23100b90d3349aaa199065 Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Thu, 31 May 2018 19:32:52 +1000 Subject: [PATCH] Update subscriptions_spec to work with Selenium --- spec/features/admin/subscriptions_spec.rb | 30 ++++++++++++++--------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/spec/features/admin/subscriptions_spec.rb b/spec/features/admin/subscriptions_spec.rb index 37b496919d..089cea0998 100644 --- a/spec/features/admin/subscriptions_spec.rb +++ b/spec/features/admin/subscriptions_spec.rb @@ -82,7 +82,7 @@ feature 'Subscriptions' do # Viewing Orders within "tr#so_#{subscription.id}" do expect(page).to have_selector "td.orders.panel-toggle", text: 1 - page.find("td.orders.panel-toggle").trigger('click') + page.find("td.orders.panel-toggle").click end within ".subscription-orders" do @@ -93,14 +93,14 @@ feature 'Subscriptions' do within "tr#po_#{proxy_order.id}" do expect(page).to have_no_content 'CANCELLED' accept_alert 'Are you sure?' do - find("a.cancel-order").trigger('click') + find("a.cancel-order").click end expect(page).to have_content 'CANCELLED' expect(proxy_order.reload.canceled_at).to be_within(5.seconds).of Time.zone.now # Resuming an order accept_alert 'Are you sure?' do - find("a.resume-order").trigger('click') + find("a.resume-order").click end # Note: the order itself was not complete when 'cancelled', so state remained as cart expect(page).to have_content 'PENDING' @@ -215,7 +215,7 @@ feature 'Subscriptions' do expect(page).to have_content 'Please add at least one product' # Adding a product and getting a price estimate - select2_search product1.name, from: I18n.t(:name_or_sku), dropdown_css: '.select2-drop' + select2_search_async product1.name, from: I18n.t(:name_or_sku), dropdown_css: '.select2-drop' fill_in 'add_quantity', with: 2 click_link 'Add' within 'table#subscription-line-items tr.item', match: :first do @@ -241,7 +241,7 @@ feature 'Subscriptions' do click_button('edit-products') # Adding a new product - select2_search product2.name, from: I18n.t(:name_or_sku), dropdown_css: '.select2-drop' + select2_search_async product2.name, from: I18n.t(:name_or_sku), dropdown_css: '.select2-drop' fill_in 'add_quantity', with: 3 click_link 'Add' within 'table#subscription-line-items tr.item', match: :first do @@ -255,14 +255,18 @@ feature 'Subscriptions' do expect{ click_button('Create Subscription') - expect(page).to have_content 'Saved' + expect(page).to have_current_path admin_subscriptions_path }.to change(Subscription, :count).by(1) - # Prices are shown + select2_select shop.name, from: "shop_id" + expect(page).to have_selector "td.items.panel-toggle" + first("td.items.panel-toggle").click + + # Prices are shown in the index within 'table#subscription-line-items tr.item', match: :first do expect(page).to have_selector 'td.description', text: "#{product2.name} - #{variant2.full_name}" expect(page).to have_selector 'td.price', text: "$7.75" - expect(page).to have_selector 'td.quantity', text: "3" + expect(page).to have_input 'quantity', with: "3" expect(page).to have_selector 'td.total', text: "$23.25" end @@ -343,7 +347,7 @@ feature 'Subscriptions' do expect(page).to have_content 'Please add at least one product' # Add variant2 to the subscription - select2_search product2.name, from: I18n.t(:name_or_sku), dropdown_css: '.select2-drop' + select2_search_async product2.name, from: I18n.t(:name_or_sku), dropdown_css: '.select2-drop' fill_in 'add_quantity', with: 1 click_link 'Add' within "#sli_0" do @@ -357,7 +361,7 @@ feature 'Subscriptions' do expect(page).to have_selector '#order_form_total', text: "$7.75" # Add variant3 to the subscription (even though it is not available) - select2_search product3.name, from: I18n.t(:name_or_sku), dropdown_css: '.select2-drop' + select2_search_async product3.name, from: I18n.t(:name_or_sku), dropdown_css: '.select2-drop' fill_in 'add_quantity', with: 1 click_link 'Add' within "#sli_1" do @@ -379,7 +383,11 @@ feature 'Subscriptions' do end click_button 'Save Changes' - expect(page).to have_content 'Saved' + expect(page).to have_current_path admin_subscriptions_path + + select2_select shop.name, from: "shop_id" + expect(page).to have_selector "td.items.panel-toggle" + first("td.items.panel-toggle").click # Total should be $7.75 expect(page).to have_selector '#order_form_total', text: "$7.75"