The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/packages/message-parser/tests/emphasisWithEmoticons.test.ts

167 lines
3.9 KiB

import { parse } from '../src';
import { paragraph, plain, bold, italic, emoticon } from '../src/utils';
test.each([
['*test:*', [paragraph([bold([plain('test:')])])]],
['_test:_', [paragraph([italic([plain('test:')])])]],
[
// :* is an emoticon, but it shouldn't be parsed as one if its glued to a word
'*bold ending with colon:*',
[paragraph([bold([plain('bold ending with colon:')])])],
],
[
'*bold ending with colon:* and some more text',
[
paragraph([
bold([plain('bold ending with colon:')]),
plain(' and some more text'),
]),
],
],
[
'*bold ending with colon :*and some more text',
[
paragraph([
bold([plain('bold ending with colon :')]),
plain('and some more text'),
]),
],
],
[
'*bold with a kissing emoji :* *',
[
paragraph([
bold([
plain('bold with a kissing emoji '),
emoticon(':*', 'kissing_heart'),
plain(' '),
]),
]),
],
],
[
'*bold with a broken kissing emoji:**',
[
paragraph([
bold([plain('bold with a broken kissing emoji:')]),
plain('*'),
]),
],
],
[
'*bold with a broken kissing emoji:*:*',
[
paragraph([
bold([plain('bold with a broken kissing emoji:')]),
emoticon(':*', 'kissing_heart'),
]),
],
],
[
'*bold with a broken kissing emoji :*text *',
[
paragraph([
bold([plain('bold with a broken kissing emoji :')]),
plain('text *'),
]),
],
],
[
'*broken bold with a kissing emoji :*',
[
paragraph([
plain('*broken bold with a kissing emoji '),
emoticon(':*', 'kissing_heart'),
]),
],
],
[
'*broken bold with a kissing emoji :* ',
[
paragraph([
plain('*broken bold with a kissing emoji '),
emoticon(':*', 'kissing_heart'),
plain(' '),
]),
],
],
[
'*two bolds**second*',
[paragraph([bold([plain('two bolds')]), bold([plain('second')])])],
],
[
'*two bolds*:**separated by kissing emoji*',
[
paragraph([
bold([plain('two bolds')]),
emoticon(':*', 'kissing_heart'),
bold([plain('separated by kissing emoji')]),
]),
],
],
['_test-_-', [paragraph([italic([plain('test-')]), plain('-')])]],
[
'_test -_- _',
[
paragraph([
italic([plain('test '), emoticon('-_-', 'expressionless'), plain(' ')]),
]),
],
],
[
'_test -_-_',
[paragraph([italic([plain('test '), emoticon('-_-', 'expressionless')])])],
],
[
'_two italics__second_',
[paragraph([italic([plain('two italics')]), italic([plain('second')])])],
],
[
'_italic with broken emoticon-_-_',
[paragraph([italic([plain('italic with broken emoticon-')]), plain('-_')])],
],
[
'_italic with broken emoticon-_-_ and more text',
[
paragraph([
italic([plain('italic with broken emoticon-')]),
plain('-_ and more text'),
]),
],
],
[
'_italic with broken emoticon -_-and more text',
[
paragraph([
italic([plain('italic with broken emoticon -')]),
plain('-and more text'),
]),
],
],
[
'_italic with broken emoticon -_-and more text -_-',
[
paragraph([
italic([plain('italic with broken emoticon -')]),
plain('-and more text '),
emoticon('-_-', 'expressionless'),
]),
],
],
[
'_italic with broken emoticon -_-and more text -_-_',
[
paragraph([
italic([plain('italic with broken emoticon -')]),
plain('-and more text -'),
italic([plain('-')]),
]),
],
],
[
'-_-italic content-_-',
[paragraph([plain('-'), italic([plain('-italic content-')]), plain('-')])],
],
])('parses emphasisWithEmoticons %p', (input, output) => {
expect(parse(input, { emoticons: true })).toMatchObject(output);
});