mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
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:
30
spec/system/change_owner_spec.rb
Normal file
30
spec/system/change_owner_spec.rb
Normal 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
|
||||
28
spec/system/page_objects/modals/change_owner.rb
Normal file
28
spec/system/page_objects/modals/change_owner.rb
Normal 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
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user