mirror of
https://github.com/discourse/discourse.git
synced 2024-12-01 00:33:44 +08:00
71 lines
1.9 KiB
Ruby
71 lines
1.9 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module PageObjects
|
|
module Pages
|
|
class User < PageObjects::Pages::Base
|
|
def visit(user)
|
|
page.visit("/u/#{user.username}")
|
|
self
|
|
end
|
|
|
|
def find(selector)
|
|
page.find(".new-user-wrapper #{selector}")
|
|
end
|
|
|
|
def active_user_primary_navigation
|
|
find(".user-navigation-primary li a.active")
|
|
end
|
|
|
|
def active_user_secondary_navigation
|
|
find(".user-navigation-secondary li a.active")
|
|
end
|
|
|
|
def has_warning_messages_path?(user)
|
|
page.has_current_path?("/u/#{user.username}/messages/warnings")
|
|
end
|
|
|
|
def has_primary_navigation_item?(name)
|
|
page.has_css?(primary_navigation_selector(name))
|
|
end
|
|
|
|
def has_no_primary_navigation_item?(name)
|
|
page.has_no_css?(primary_navigation_selector(name))
|
|
end
|
|
|
|
def has_secondary_navigation_item?(name)
|
|
page.has_css?(secondary_navigation_selector(name))
|
|
end
|
|
|
|
def has_no_secondary_navigation_item?(name)
|
|
page.has_no_css?(secondary_navigation_selector(name))
|
|
end
|
|
|
|
def click_staff_info_warnings_link(user, warnings_count: 0)
|
|
staff_counters = page.find(".staff-counters")
|
|
staff_counters.find("a[href='/u/#{user.username}/messages/warnings']").click
|
|
self
|
|
end
|
|
|
|
def expand_info_panel
|
|
button = page.find("button[aria-controls='collapsed-info-panel']")
|
|
button.click if button["aria-expanded"] == "false"
|
|
self
|
|
end
|
|
|
|
def click_primary_navigation_item(name)
|
|
page.find(primary_navigation_selector(name)).click
|
|
end
|
|
|
|
private
|
|
|
|
def primary_navigation_selector(name)
|
|
".new-user-wrapper .user-navigation-primary li.user-nav__#{name}"
|
|
end
|
|
|
|
def secondary_navigation_selector(name)
|
|
".new-user-wrapper .user-navigation-secondary li.user-nav__#{name}"
|
|
end
|
|
end
|
|
end
|
|
end
|