0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-07 13:19:19 +08:00
discourse/spec/system/page_objects/pages/admin_user.rb
David Taylor 45535887f1
Revert "FEATURE: discourse-workflows (#39704)" (#40366)
This reverts commit 9f4d1b5f61.

This merge unintentionally included a number of unrelated changes.
Reverting while we investigate what happened.
2026-05-28 13:59:42 +01:00

155 lines
4.3 KiB
Ruby
Vendored

# frozen_string_literal: true
module PageObjects
module Pages
class AdminUser < PageObjects::Pages::Base
def visit(user)
page.visit("/admin/users/#{user.id}/#{user.username}")
end
def click_action_logs_button
click_button(I18n.t("admin_js.admin.user.action_logs"))
end
def has_suspend_button?
has_css?(".btn-danger.suspend-user")
end
def has_no_suspend_button?
has_no_css?(".btn-danger.suspend-user")
end
def has_silence_button?
has_css?(".btn-danger.silence-user")
end
def has_no_silence_button?
has_no_css?(".btn-danger.silence-user")
end
def has_change_trust_level_dropdown_enabled?
has_css?(".change-trust-level-dropdown") &&
has_no_css?(".change-trust-level-dropdown.is-disabled")
end
def has_change_trust_level_dropdown_disabled?
has_css?(".change-trust-level-dropdown.is-disabled")
end
def click_suspend_button
find(".btn-danger.suspend-user").click
end
def click_unsuspend_button
find(".btn-danger.unsuspend-user").click
end
def click_silence_button
find(".btn-danger.silence-user").click
end
def click_unsilence_button
find(".btn-danger.unsilence-user").click
end
def click_approve_button
find(".display-row .controls .btn", text: I18n.t("admin_js.admin.user.approve")).click
end
def has_approve_success?
has_css?(".display-row .controls", text: I18n.t("admin_js.admin.user.approve_success"))
end
def custom_groups_chooser
PageObjects::Components::SelectKit.new(".admin-user__custom-groups .group-chooser")
end
def save_custom_groups
find(".admin-user__custom-groups .ok").click
end
def has_custom_groups_save_button?
has_css?(".admin-user__custom-groups .ok")
end
def has_no_custom_groups_save_button?
has_no_css?(".admin-user__custom-groups .ok")
end
def has_custom_group?(name)
has_css?(".admin-user__custom-groups .formatted-selection", text: name)
end
def has_no_custom_group?(name)
has_no_css?(".admin-user__custom-groups .formatted-selection", text: name)
end
def similar_users_warning
find(".penalty-similar-users .alert-warning")["innerHTML"]
end
def open_upcoming_changes_modal
find(".upcoming-changes-info .btn-default").click
end
class UpcomingChangeRow < PageObjects::Components::Base
attr_reader :element
def initialize(element)
@element = element
end
def enabled?
expect(element.find(".upcoming-change-enabled-status")).to have_css(
".emoji[alt='white_check_mark']",
)
end
def disabled?
expect(element.find(".upcoming-change-enabled-status")).to have_css(
".emoji[alt='cross_mark']",
)
end
def has_reason?(reason_key)
expected_text = I18n.t("js.user.upcoming_changes.why_reasons.#{reason_key}")
expect(element.find(".upcoming-change-reason")).to have_content(expected_text)
end
def specific_groups
within element.find(".upcoming-change-groups") do
all("a").map(&:text).sort
end
end
def has_specific_groups?(group_names)
specific_groups == group_names.sort
end
def has_no_specific_groups?
expect(element).to have_no_css(".upcoming-change-groups")
end
end
def has_upcoming_change?(change_name)
has_css?(
".admin-user-upcoming-changes-modal .user-upcoming-changes-table .d-table__row[data-upcoming-change-name='#{change_name}']",
)
end
def has_no_upcoming_change?(change_name)
has_no_css?(
".admin-user-upcoming-changes-modal .user-upcoming-changes-table .d-table__row[data-upcoming-change-name='#{change_name}']",
)
end
def upcoming_change(change_name)
row =
find(
".admin-user-upcoming-changes-modal .user-upcoming-changes-table .d-table__row[data-upcoming-change-name='#{change_name}']",
)
UpcomingChangeRow.new(row)
end
end
end
end