commit: be79643bcf6f05df500f0d6bcb773f07dd15da3d
parent 35dedf8416b423abb867b052d37f14becd0de34a
Author: Henry Jameson <me@hjkos.com>
Date: Mon, 7 Jun 2021 12:38:27 +0300
fix emoji processor not leaving string as-is if no emoji are found
Diffstat:
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/src/services/mini_html_converter/mini_html_converter.service.js b/src/services/mini_html_converter/mini_html_converter.service.js
@@ -118,6 +118,7 @@ export const processTextForEmoji = (text, emojis, processor) => {
textBuffer += char
}
}
+ if (textBuffer) buffer.push(textBuffer)
return buffer
}
diff --git a/test/unit/specs/services/tiny_post_html_processor/mini_post_html_processor.spec.js b/test/unit/specs/services/tiny_post_html_processor/mini_post_html_processor.spec.js
@@ -57,7 +57,7 @@ describe('MiniHtmlConverter', () => {
]
])
})
- it('realistic case', () => {
+ it('realistic case 1', () => {
const inputOutput = '<p><span class="h-card"><a class="u-url mention" data-user="9wRC6T2ZZiKWJ0vUi8" href="https://cawfee.club/users/benis" rel="ugc">@<span>benis</span></a></span> <span class="h-card"><a class="u-url mention" data-user="194" href="https://shigusegubu.club/users/hj" rel="ugc">@<span>hj</span></a></span> nice</p>'
expect(convertHtml(inputOutput)).to.eql([
[
@@ -110,6 +110,24 @@ describe('MiniHtmlConverter', () => {
]
])
})
+ it('realistic case 2', () => {
+ const inputOutput = 'Country improv: give me a city<br/>Audience: Memphis<br/>Improv troupe: come on, a better one<br/>Audience: el paso'
+ expect(convertHtml(inputOutput)).to.eql([
+ 'Country improv: give me a city',
+ [
+ '<br/>'
+ ],
+ 'Audience: Memphis',
+ [
+ '<br/>'
+ ],
+ 'Improv troupe: come on, a better one',
+ [
+ '<br/>'
+ ],
+ 'Audience: el paso'
+ ])
+ })
})
describe('processTextForEmoji', () => {
it('processes all emoji in text', () => {
@@ -126,5 +144,14 @@ describe('MiniHtmlConverter', () => {
{ shortcode: 'lmao', src: 'LMAO' }
])
})
+ it('leaves text as is', () => {
+ const inputOutput = 'Number one: that\'s terror'
+ const emojis = []
+ const processor = ({ shortcode, src }) => ({ shortcode, src })
+ expect(processTextForEmoji(inputOutput, emojis, processor)).to.eql([
+ 'Number one: that\'s terror'
+ ])
+ })
+ })
})
})