Skip to content

Instantly share code, notes, and snippets.

@adam-phillipps
Created October 10, 2016 20:21
Show Gist options
  • Save adam-phillipps/0f1838b249d7c1a47ac70d5daabb66e5 to your computer and use it in GitHub Desktop.
Save adam-phillipps/0f1838b249d7c1a47ac70d5daabb66e5 to your computer and use it in GitHub Desktop.
require_relative '../admin/account_dropdown'
require_relative '../../pages/admin/admin_listings_page'
class Header < SitePrism::Section
element :login_link, 'div#user-nav a'
element :catalogo, "div.header-branding a[href='/']"
element :listings, "a[href='/admin#/products']"
element :catalogs, "a[href='/admin#/accounts']"
element :promotions, "a[href='/admin#/promotions']"
element :reports, "a[href='/admin#/reports']"
element :api_docs, "a[href='/api/docs']"
element :dropdown, 'button#accountDropdown'
section :account_dropdown, AccountDropdown, 'ul.Dropdown__Menu'
def login(user)
wait_for_login_link
login_link.click
CanvasLogin.new.log_in(user)
dashboard = Dashboard.new
dashboard.load
dashboard
end
def logout
dropdown.click
click_link('Logout')
gallery = Gallery.new
gallery.wait_until_spinner_invisible
gallery
end
def logged_in?
!page.has_content? 'Login'
end
def visit_gallery
wait_until_catalogo_visible
wait_for_catalogo
catalogo.click
gallery = Gallery.new
gallery.wait_until_spinner_invisible
gallery
end
def visit_admin_pages
wait_for_dropdown
dropdown.click
wait_for_account_dropdown
account_dropdown.admin.click
admin_listings_page = AdminListingsPage.new
admin_listings_page.wait_for_listings
admin_listings_page
end
def visit_dashboard
wait_for_dropdown
dropdown.click
wait_for_account_dropdown
account_dropdown.dashboard
dashboard = Dashboard.new
dashboard.wait_until_spinner_invisible
dashboard
end
def navigate_to_canvas
wait_for_dropdown
dropdown.click
wait_for_account_dropdown
account_dropdown.canvas
end
def logout
wait_for_dropdown
dropdown.click
wait_for_account_dropdown
account_dropdown.logout
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment