Rocket.Chat/packages/message-parser/tests/heading.test.ts

50 lines
2.4 KiB
TypeScript

import { parse } from '../src';
import { heading, lineBreak, mentionChannel, paragraph, plain } from '../src/utils';
test.each([
['# h1', [heading([plain('h1')], 1)]],
['# Hello', [heading([plain('Hello')], 1)]],
['# Rocket.Cat', [heading([plain('Rocket.Cat')], 1)]],
['# Hi', [heading([plain('Hi')], 1)]],
['# Hello this is dog', [heading([plain('Hello this is dog')], 1)]],
['# Rocket cat says Hello', [heading([plain('Rocket cat says Hello')], 1)]],
['# He said Hello to her', [heading([plain('He said Hello to her')], 1)]],
['#Hello', [paragraph([mentionChannel('Hello')])]],
['#Hello#', [paragraph([mentionChannel('Hello'), plain('#')])]],
['He#llo', [paragraph([plain('He#llo')])]],
['## Hello', [heading([plain('Hello')], 2)]],
['## Rocket.Cat', [heading([plain('Rocket.Cat')], 2)]],
['## Hi', [heading([plain('Hi')], 2)]],
['## Hello this is dog', [heading([plain('Hello this is dog')], 2)]],
['## Rocket cat says Hello', [heading([plain('Rocket cat says Hello')], 2)]],
['## He said Hello to her', [heading([plain('He said Hello to her')], 2)]],
['##Hello', [paragraph([plain('##Hello')])]],
['##Hello##', [paragraph([plain('##Hello##')])]],
['He##llo', [paragraph([plain('He##llo')])]],
['### Hello', [heading([plain('Hello')], 3)]],
['### Rocket.Cat', [heading([plain('Rocket.Cat')], 3)]],
['### Hi', [heading([plain('Hi')], 3)]],
['### Hello this is dog', [heading([plain('Hello this is dog')], 3)]],
['### Rocket cat says Hello', [heading([plain('Rocket cat says Hello')], 3)]],
['### He said Hello to her', [heading([plain('He said Hello to her')], 3)]],
['###Hello', [paragraph([plain('###Hello')])]],
['###Hello###', [paragraph([plain('###Hello###')])]],
['He###llo', [paragraph([plain('He###llo')])]],
['#### Hello', [heading([plain('Hello')], 4)]],
['#### Rocket.Cat', [heading([plain('Rocket.Cat')], 4)]],
['#### Hi', [heading([plain('Hi')], 4)]],
['#### Hello this is dog', [heading([plain('Hello this is dog')], 4)]],
['#### Rocket cat says Hello', [heading([plain('Rocket cat says Hello')], 4)]],
['#### He said Hello to her', [heading([plain('He said Hello to her')], 4)]],
['####Hello', [paragraph([plain('####Hello')])]],
['####Hello####', [paragraph([plain('####Hello####')])]],
['He####llo', [paragraph([plain('He####llo')])]],
['# Hello\n', [heading([plain('Hello')], 1), lineBreak()]],
['# # Hello\n', [heading([plain('# Hello')], 1), lineBreak()]],
])('parses %p', (input, output) => {
expect(parse(input)).toMatchObject(output);
});