mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
The new cart sidebar takes 300ms to animate in. If we try to click the button on the left during this time, we may click the button on the right as it slides in.
107 lines
2.2 KiB
Ruby
107 lines
2.2 KiB
Ruby
module UIComponentHelper
|
|
def browse_as_medium
|
|
Capybara.current_session.current_window
|
|
.resize_to(1024, 768)
|
|
end
|
|
|
|
def browse_as_large
|
|
Capybara.current_session.current_window
|
|
.resize_to(1280, 800)
|
|
end
|
|
|
|
def click_login_button
|
|
click_button "Login"
|
|
end
|
|
|
|
def click_signup_button
|
|
click_button "Sign up now"
|
|
end
|
|
|
|
def click_reset_password_button
|
|
click_button "Reset password"
|
|
end
|
|
|
|
def select_login_tab(text)
|
|
within ".login-modal" do
|
|
page.find("a", text: text).click
|
|
end
|
|
sleep 0.2
|
|
end
|
|
|
|
def open_login_modal
|
|
page.find("a", text: "Login").click
|
|
end
|
|
|
|
def open_off_canvas
|
|
page.find("a.left-off-canvas-toggle").click
|
|
end
|
|
|
|
def have_login_modal
|
|
have_selector ".login-modal"
|
|
end
|
|
|
|
def open_product_modal(product)
|
|
page.find("a", text: product.name).click
|
|
end
|
|
|
|
def open_enterprise_modal(enterprise)
|
|
page.find("a", text: enterprise.name).click
|
|
end
|
|
|
|
def modal_should_be_open_for(object)
|
|
within ".reveal-modal" do
|
|
expect(page).to have_content object.name
|
|
end
|
|
end
|
|
|
|
def have_reset_password
|
|
have_content "An email with instructions on resetting your password has been sent!"
|
|
end
|
|
|
|
def have_in_cart(name)
|
|
toggle_cart
|
|
within ".cart-sidebar" do
|
|
have_content name
|
|
end
|
|
end
|
|
|
|
def toggle_cart
|
|
page.find("#cart").click
|
|
sleep 0.3 # Allow 300ms for sidebar animation to finish
|
|
end
|
|
|
|
def wait_for_ajax
|
|
counter = 0
|
|
while page.execute_script("return $.active").to_i > 0
|
|
counter += 1
|
|
sleep(0.1)
|
|
raise "AJAX request took longer than 5 seconds." if counter >= 50
|
|
end
|
|
end
|
|
|
|
def be_logged_in_as(user_or_email)
|
|
if user_or_email.is_a? Spree::User
|
|
have_content user_or_email.email
|
|
else
|
|
have_content user_or_email
|
|
end
|
|
end
|
|
|
|
def be_logged_out
|
|
have_content "Log in"
|
|
end
|
|
|
|
def open_active_table_row
|
|
page.find("hub:first-child .active_table_row:first-child").click
|
|
end
|
|
|
|
def expand_active_table_node(name)
|
|
page.find(".active_table_node", text: name).click
|
|
end
|
|
|
|
def follow_active_table_node(name)
|
|
expand_active_table_node(name)
|
|
page.find(".active_table_node a", text: name.to_s).click
|
|
end
|
|
end
|