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:
parent
8ddd45d524
commit
919c87a9ce
|
@ -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")
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue