mirror of
https://github.com/discourse/discourse.git
synced 2024-12-20 15:25:50 +08:00
31e44cfa82
Why this change? `current_url` does not rely on Capybara waiters so opt to use `have_current_path` matcher instead. Also assert for email against element displayed on the page instead of querying the database for it which isn't really what system tests are meant for.
56 lines
1.5 KiB
Ruby
56 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module PageObjects
|
|
module Pages
|
|
class UserPreferences < PageObjects::Pages::Base
|
|
def visit(user)
|
|
page.visit("/u/#{user.username}/preferences")
|
|
self
|
|
end
|
|
|
|
def click_interface_tab
|
|
click_link "Interface"
|
|
self
|
|
end
|
|
|
|
def click_secondary_navigation_menu_scroll_right
|
|
find(".horizontal-overflow-nav__scroll-right").click
|
|
end
|
|
|
|
def click_secondary_navigation_menu_scroll_left
|
|
find(".horizontal-overflow-nav__scroll-left").click
|
|
end
|
|
|
|
INTERFACE_LINK_CSS_SELECTOR = ".user-nav__preferences-tracking"
|
|
|
|
def has_interface_link_visible?
|
|
horizontal_secondary_link_visible?(INTERFACE_LINK_CSS_SELECTOR, visible: true)
|
|
end
|
|
|
|
def has_interface_link_not_visible?
|
|
horizontal_secondary_link_visible?(INTERFACE_LINK_CSS_SELECTOR, visible: false)
|
|
end
|
|
|
|
ACCOUNT_LINK_CSS_SELECTOR = ".user-nav__preferences-account"
|
|
|
|
def has_account_link_visible?
|
|
horizontal_secondary_link_visible?(ACCOUNT_LINK_CSS_SELECTOR, visible: true)
|
|
end
|
|
|
|
def has_account_link_not_visible?
|
|
horizontal_secondary_link_visible?(ACCOUNT_LINK_CSS_SELECTOR, visible: false)
|
|
end
|
|
|
|
def has_primary_email?(email)
|
|
has_css?(".email-first", text: email)
|
|
end
|
|
|
|
private
|
|
|
|
def horizontal_secondary_link_visible?(selector, visible: true)
|
|
within(".user-navigation-secondary") { page.has_selector?(selector, visible: visible) }
|
|
end
|
|
end
|
|
end
|
|
end
|