DEV: convert change owner modal to glimmer component (#23668)

* DEV: convert change owner modal to glimmer component

* DEV: add system test for change owner modal
This commit is contained in:
Kelv
2023-09-29 11:46:31 +08:00
committed by GitHub
parent b267c1054d
commit 3f6adca2d7
8 changed files with 174 additions and 106 deletions

View File

@@ -0,0 +1,30 @@
# frozen_string_literal: true
describe "Change Owner Modal", type: :system do
fab!(:post) { Fabricate(:post, raw: "This is some post to change owner for") }
fab!(:other_user) { Fabricate(:user) }
fab!(:admin) { Fabricate(:admin) }
let(:user) { post.user }
let(:topic) { post.topic }
let(:topic_page) { PageObjects::Pages::Topic.new }
let(:change_owner_modal) { PageObjects::Modals::ChangeOwner.new }
before { sign_in(admin) }
def visit_topic_and_open_change_owner_modal(post)
topic_page.visit_topic(topic)
topic_page.expand_post_actions(post)
topic_page.expand_post_admin_actions(post)
topic_page.click_post_admin_action_button(post, :change_owner)
end
it "changes owner of a post" do
visit_topic_and_open_change_owner_modal(post)
change_owner_modal.select_new_owner(other_user)
change_owner_modal.confirm_new_owner
expect(page).not_to have_css ".change-ownership-modal"
displayed_username = topic_page.post_by_number(post).find(".first.username").text
expect(displayed_username).to eq other_user.username
end
end

View File

@@ -0,0 +1,28 @@
# frozen_string_literal: true
module PageObjects
module Modals
class ChangeOwner < PageObjects::Pages::Base
USERS_DROPDOWN = ".select-kit"
def modal
find(".change-ownership-modal")
end
def select_new_owner(user)
within(modal) do
users_dropdown.expand
users_dropdown.search(user.username)
users_dropdown.select_row_by_value(user.username)
end
end
def confirm_new_owner
within(modal) { find(".modal-footer .btn").click }
end
def users_dropdown
@users_dropdown ||= PageObjects::Components::SelectKit.new(USERS_DROPDOWN)
end
end
end
end

View File

@@ -96,6 +96,8 @@ module PageObjects
case button
when :grant_badge
element_klass += " .grant-badge"
when :change_owner
element_klass += " .change-owner"
end
find(element_klass).click