discourse/spec/system/page_objects/components/user_menu.rb
Régis Hanol fd1220af69
FIX: chat bookmarks in drawer mode (#29757)
When using chat in drawer mode, after you've clicked on a chat bookmark in the user menu, clicking any other chat bookmark would "do nothing".

In 8b18fd1556 we added an optimization to prevent the same route from being reloaded, but it ended up breaking the bookmarks.

This commit reverts the changed made the above commit and adds a system specs that ensure we can click two chat bookmarks in the user menu when using chat in drawer mode.

Internal ref - t/134362
2024-11-14 17:20:11 +01:00

68 lines
1.8 KiB
Ruby

# frozen_string_literal: true
module PageObjects
module Components
class UserMenu < PageObjects::Components::Base
def open
find(".header-dropdown-toggle.current-user").click
has_css?(".user-menu")
self
end
def click_replies_notifications_tab
click_link("user-menu-button-replies")
has_css?("#quick-access-replies")
self
end
def click_bookmarks_tab
click_link("user-menu-button-bookmarks")
has_css?("#quick-access-bookmarks")
self
end
def click_profile_tab
click_link("user-menu-button-profile")
has_css?("#quick-access-profile")
self
end
def click_logout_button
find("#quick-access-profile .logout .btn").click
has_css?(".d-header .login-button")
self
end
def click_bookmark(bookmark)
find("#quick-access-bookmarks .bookmark a[href='#{bookmark.bookmarkable.url}']").click
self
end
def sign_out
open
click_profile_tab
click_logout_button
self
end
def has_group_mentioned_notification?(topic, user_that_mentioned_group, group_mentioned)
expect(find("#quick-access-replies .group-mentioned").text).to eq(
"#{user_that_mentioned_group.username} @#{group_mentioned.name} #{topic.title}",
)
end
def has_right_replies_button_count?(count)
expect(find("#user-menu-button-replies").text).to eq(count.to_s)
end
def has_notification_count_of?(count)
page.has_css?(".user-menu li.notification", count: count)
end
def has_bookmark_count_of?(count)
page.has_css?(".user-menu #quick-access-bookmarks li.bookmark", count: count)
end
end
end
end