FIX: Restore author on non-first-post crawler views (#26459)

Followup to 3329484e2d
This commit is contained in:
David Taylor 2024-04-02 12:08:26 +01:00 committed by GitHub
parent 98f4517818
commit 50caef6783
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 1 deletions

View File

@ -51,7 +51,7 @@
<% end %>
</div>
<% if @topic_view.posts&.first && !@topic_view.posts.first.is_first_post? %>
<% if @topic_view.crawler_posts&.first && !@topic_view.crawler_posts.first.is_first_post? %>
<span itemprop='author' itemscope itemtype="http://schema.org/Person">
<meta itemprop='name' content='<%= @topic_view.topic.user.username %>'>
<link itemprop='url' href='<%= Discourse.base_url %>/u/<%= @topic_view.topic.user.username %>'>

View File

@ -5261,6 +5261,23 @@ RSpec.describe TopicsController do
)
end
it "includes top-level author metadata when the view does not include the OP naturally" do
get "#{topic.relative_url}/2"
expect(body).to have_tag(
"[itemtype='http://schema.org/DiscussionForumPosting'] > [itemprop='author']",
)
get "#{topic.relative_url}/27"
expect(body).to have_tag(
"[itemtype='http://schema.org/DiscussionForumPosting'] > [itemprop='author']",
)
get "#{topic.relative_url}?page=2"
expect(body).to have_tag(
"[itemtype='http://schema.org/DiscussionForumPosting'] > [itemprop='author']",
)
end
context "with canonical_url" do
fab!(:topic_embed) { Fabricate(:topic_embed, embed_url: "https://markvanlan.com") }
let!(:user_agent) do