mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: use structured data in topic-list for referencing only (#16235)
This simplifies the ItemList to only be a point of reference to the actual DiscussionForumPosting objects. See "Summary page": https://developers.google.com/search/docs/advanced/structured-data/carousel?hl=en#summary-page Co-authored-by: Bianca Nenciu <nenciu.bianca@gmail.com>
This commit is contained in:
@@ -4,6 +4,7 @@ require "rails_helper"
|
||||
|
||||
RSpec.describe "list/list.erb" do
|
||||
fab!(:category) { Fabricate(:category) }
|
||||
fab!(:topic) { Fabricate(:topic) }
|
||||
|
||||
it "add nofollow to RSS alternate link for category" do
|
||||
view.stubs(:include_crawler_content?).returns(false)
|
||||
@@ -15,4 +16,16 @@ RSpec.describe "list/list.erb" do
|
||||
expect(view.content_for(:head)).to match(/<link rel="alternate nofollow" type="application\/rss\+xml" title="[^"]+" href="https:\/\/www.example.com\/test\.rss" \/>/)
|
||||
end
|
||||
|
||||
it "adds sturctured data" do
|
||||
view.stubs(:include_crawler_content?).returns(true)
|
||||
topic.posters = []
|
||||
assign(:list, OpenStruct.new(topics: [topic]))
|
||||
|
||||
render template: 'list/list', formats: []
|
||||
|
||||
topic_list = Nokogiri::HTML5::fragment(rendered).css('.topic-list')
|
||||
first_item = topic_list.css('[itemprop="itemListElement"]')
|
||||
expect(first_item.css('[itemprop="position"]')[0]['content']).to eq('1')
|
||||
expect(first_item.css('[itemprop="url"]')[0]['href']).to eq(topic.url)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user