discourse/spec/system/page_objects/components/post.rb
Natalie Tay 6cc063b845
FEATURE: Serve localized content in the site's default locale when user's language is unsupported (#36160)
The content localization feature we have (e.g. on meta) currently
assumes that everyone has set their user preferences language to
a language that we support.

If Eleni sets Greek as her Interface language, it is a non-supported
language. Posts written in Chinese or French will remain in Chinese or
French, as there is no Greek translation.

The commit shows Eleni localized posts in English (i.e. site default locale)
when a post is written in a different language. A site setting
`content_localization_use_default_locale_when_unsupported` is default
true and introduced.
2025-11-21 17:19:04 +08:00

87 lines
1.9 KiB
Ruby

# frozen_string_literal: true
module PageObjects
module Components
class Post < PageObjects::Components::Base
def initialize(post_number)
@post_number = post_number
end
def post
find(post_id)
end
def reply
post.find(".reply.create").click
end
def edit
post.find(".show-more-actions").click
post.find("button.edit").click
end
def show_replies
post.find(".show-replies").click
end
def load_more_replies
find("#embedded-posts__bottom--#{@post_number} .load-more-replies").click
end
def cooked_content
post.find(".contents > .cooked")
end
def has_cooked_content?(value)
cooked_content.has_content?(value)
end
def has_replies?(count: nil)
find("#embedded-posts__bottom--#{@post_number}").has_css?(".reply", count:)
end
def has_more_replies?
find("#embedded-posts__bottom--#{@post_number}").has_css?(".load-more-replies")
end
def has_loaded_all_replies?
find("#embedded-posts__bottom--#{@post_number}").has_no_css?(".load-more-replies")
end
def visible?
has_css?(post_id)
end
def show_parent_posts
post.find(".reply-to-tab").click
end
def has_parent_posts?(count: nil)
find("#embedded-posts__top--#{@post_number}").has_css?(".reply", count:)
end
def has_no_parent_post_content?(content)
find("#embedded-posts__top--#{@post_number}").has_no_content?(content)
end
def post_language
post.find(".post-info.post-language").hover
find(".post-language-content")
end
def open_post_history
post.find(".post-info.edits").click
end
def mentions_of(user)
post.all("a.mention[href='/u/#{user.username}']")
end
private
def post_id
"#post_#{@post_number}"
end
end
end
end