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/strongEmphasis.test.ts

156 lines
4.7 KiB

import { parse } from '../src';
import {
bold,
link,
paragraph,
plain,
italic,
strike,
emoji,
emojiUnicode,
mentionChannel,
mentionUser,
} from '../src/utils';
test.each([
['*:smile:*', [paragraph([bold([emoji('smile')])])]],
[
'*test :smile: test*',
[paragraph([bold([plain('test '), emoji('smile'), plain(' test')])])],
],
['*😀*', [paragraph([bold([emojiUnicode('😀')])])]],
['*test 😀*', [paragraph([bold([plain('test '), emojiUnicode('😀')])])]],
['*@guilherme.gazzo*', [paragraph([bold([mentionUser('guilherme.gazzo')])])]],
['*#GENERAL*', [paragraph([bold([mentionChannel('GENERAL')])])]],
[
'*test @guilherme.gazzo*',
[paragraph([bold([plain('test '), mentionUser('guilherme.gazzo')])])],
],
[
'*test #GENERAL*',
[paragraph([bold([plain('test '), mentionChannel('GENERAL')])])],
],
[
'*[A brand new Gist](https://gist.github.com/24dddfa97bef58f46ac2ce0f80c58ba4)*',
[
paragraph([
bold([
link('https://gist.github.com/24dddfa97bef58f46ac2ce0f80c58ba4', [
plain('A brand new Gist'),
]),
]),
]),
],
],
['**bold**', [paragraph([bold([plain('bold')])])]],
['** bold**', [paragraph([bold([plain(' bold')])])]],
['** bold **', [paragraph([bold([plain(' bold ')])])]],
['** bo ld **', [paragraph([bold([plain(' bo ld ')])])]],
['pre**bold**', [paragraph([plain('pre'), bold([plain('bold')])])]],
['**bold**pos', [paragraph([bold([plain('bold')]), plain('pos')])]],
[
'**bold****bold**',
[paragraph([bold([plain('bold')]), bold([plain('bold')])])],
],
[
'**bold** **bold**',
[paragraph([bold([plain('bold')]), plain(' '), bold([plain('bold')])])],
],
[
'**bold** __italic__',
[paragraph([bold([plain('bold')]), plain(' '), italic([plain('italic')])])],
],
['**__italicbold__**', [paragraph([bold([italic([plain('italicbold')])])])]],
[
'plain **__italicbold__**',
[paragraph([plain('plain '), bold([italic([plain('italicbold')])])])],
],
[
'plain **__~~strikeitalicbold~~__**',
[
paragraph([
plain('plain '),
bold([italic([strike([plain('strikeitalicbold')])])]),
]),
],
],
['**', [paragraph([plain('**')])]],
['* *', [paragraph([plain('* *')])]],
['** *', [paragraph([plain('** *')])]],
['** **', [paragraph([plain('** **')])]],
['** **', [paragraph([plain('** **')])]],
['* Hello*', [paragraph([bold([plain(' Hello')])])]],
['*Hello *', [paragraph([bold([plain('Hello ')])])]],
[
':custom*emoji*case:',
[paragraph([plain(':custom'), bold([plain('emoji')]), plain('case:')])],
],
[
'text*hello*text',
[paragraph([plain('text'), bold([plain('hello')]), plain('text')])],
],
['*hello*text', [paragraph([bold([plain('hello')]), plain('text')])]],
['text*hello*', [paragraph([plain('text'), bold([plain('hello')])])]],
['*Hel lo*', [paragraph([bold([plain('Hel lo')])])]],
['*Hello*', [paragraph([bold([plain('Hello')])])]],
['**Hello*', [paragraph([plain('*'), bold([plain('Hello')])])]],
['*Hello**', [paragraph([bold([plain('Hello')]), plain('*')])]],
['*Hello', [paragraph([plain('*Hello')])]],
['Hello*', [paragraph([plain('Hello*')])]],
['He*llo', [paragraph([plain('He*llo')])]],
[
'***Hello***',
[paragraph([plain('*'), bold([plain('Hello')]), plain('*')])],
],
['***Hello**', [paragraph([plain('*'), bold([plain('Hello')])])]],
[
'*Hello* this is dog',
[paragraph([bold([plain('Hello')]), plain(' this is dog')])],
],
[
'Rocket cat says *Hello*',
[paragraph([plain('Rocket cat says '), bold([plain('Hello')])])],
],
[
'He said *Hello* to her',
[paragraph([plain('He said '), bold([plain('Hello')]), plain(' to her')])],
],
[
'**Hello** this is dog',
[paragraph([bold([plain('Hello')]), plain(' this is dog')])],
],
[
'Rocket cat says **Hello**',
[paragraph([plain('Rocket cat says '), bold([plain('Hello')])])],
],
[
'He said **Hello** to her',
[paragraph([plain('He said '), bold([plain('Hello')]), plain(' to her')])],
],
[
'He was a**nn**oyed',
[paragraph([plain('He was a'), bold([plain('nn')]), plain('oyed')])],
],
[
'There are two o in f*oo*tball',
[
paragraph([
plain('There are two o in f'),
bold([plain('oo')]),
plain('tball'),
]),
],
],
['*(teste*', [paragraph([bold([plain('(teste')])])]],
['*(teste)*', [paragraph([bold([plain('(teste)')])])]],
[
'*__~bolditalicstrike~_*',
[
paragraph([
bold([plain('_'), italic([strike([plain('bolditalicstrike')])])]),
]),
],
],
])('parses %p', (input, output) => {
expect(parse(input)).toMatchObject(output);
});