diff options
author | Neil Matatall <448516+oreoshake@users.noreply.github.com> | 2022-12-15 05:39:41 -1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-15 16:39:41 +0100 |
commit | 1f5740e65cc50ef3cc1feb7c0e5609df73d4173a (patch) | |
tree | 18f0786d828afc8860e684ffb5d9474c30756224 /spec/helpers | |
parent | 3d3429243fa0bacb20aac3db6c377441c0510f22 (diff) |
Use Rails tag API to build RSS feed for spoilers and polls (#20163)
* Use Rails tag API to build RSS feed for spoilers and polls
While the previous method did not contain a bug or a potential issue,
the tag API can be very resilient against future problems and reduces the
amount of manual management of the escape status of the content.
I've added tests to ensure that the formatting is broken and still
escapes control characters correctly.
* this seems cleaner and passes
* Incorporate feedback by moving the br to its own line and using the tag helper over the string constant for the br tag itself
* whoops, tag helper doesn't use a self-closing tag
Diffstat (limited to 'spec/helpers')
-rw-r--r-- | spec/helpers/formatting_helper_spec.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/helpers/formatting_helper_spec.rb b/spec/helpers/formatting_helper_spec.rb new file mode 100644 index 00000000000..af604a87b58 --- /dev/null +++ b/spec/helpers/formatting_helper_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe FormattingHelper, type: :helper do + include Devise::Test::ControllerHelpers + + describe '#rss_status_content_format' do + let(:status) { Fabricate(:status, text: 'Hello world<>', spoiler_text: 'This is a spoiler<>', poll: Fabricate(:poll, options: %w(Yes<> No))) } + let(:html) { helper.rss_status_content_format(status) } + + it 'renders the spoiler text' do + expect(html).to include('<p>This is a spoiler<></p><hr>') + end + + it 'renders the status text' do + expect(html).to include('<p>Hello world<></p>') + end + + it 'renders the poll' do + expect(html).to include('<radio disabled="disabled">Yes<></radio><br>') + end + end +end |