FIX: Get only the correct collapse title in emails (#10228)

Previously, this would get every details block title from the entire post, for every details block.
This commit is contained in:
Kane York 2020-07-13 18:49:36 -07:00 committed by GitHub
parent 8ddd45d524
commit 919c87a9ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 1 deletions

View File

@ -33,7 +33,7 @@ after_initialize do
on(:reduce_cooked) do |fragment, post|
fragment.css("details").each do |el|
text = fragment.css("summary").text
text = el.css("summary").text
link = fragment.document.create_element("a")
link["href"] = post.url if post
link.content = I18n.t("details.excerpt_details")

View File

@ -41,6 +41,29 @@ describe PrettyText do
expect(md).to eq(html)
end
it 'properly handles multiple spoiler blocks in a post' do
md = PrettyText.cook(<<~EOF)
[details="First"]
body secret stuff very long
[/details]
[details="Second"]
body secret stuff very long
[/details]
Hey there.
[details="Third"]
body secret stuff very long
[/details]
EOF
md = PrettyText.format_for_email(md, post)
expect(md).not_to include('secret stuff')
expect(md.scan(/First/).size).to eq(1)
expect(md.scan(/Third/).size).to eq(1)
expect(md.scan(I18n.t('details.excerpt_details')).size).to eq(3)
end
it 'escapes summary text' do
md = PrettyText.cook(<<~EOF)
<script>alert('hello')</script>