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

144 lines
3.2 KiB

import { parse } from '../src';
import { link, paragraph, plain } from '../src/utils';
test.each([
[
'joe@joe.com',
[paragraph([link('mailto:joe@joe.com', [plain('joe@joe.com')])])],
],
[
"joe@joe.com is Joe's email",
[
paragraph([
link('mailto:joe@joe.com', [plain('joe@joe.com')]),
plain(" is Joe's email"),
]),
],
],
[
"Joe's email is joe@joe.com because it is",
[
paragraph([
plain("Joe's email is "),
link('mailto:joe@joe.com', [plain('joe@joe.com')]),
plain(' because it is'),
]),
],
],
[
"Joe's email is joe@joe.com",
[
paragraph([
plain("Joe's email is "),
link('mailto:joe@joe.com', [plain('joe@joe.com')]),
]),
],
],
[
"Joe's email is joe@joe.com. Try emailing him",
[
paragraph([
plain("Joe's email is "),
link('mailto:joe@joe.com', [plain('joe@joe.com')]),
plain('. Try emailing him'),
]),
],
],
[
"Joe's email is joe.smith@joe.com",
[
paragraph([
plain("Joe's email is "),
link('mailto:joe.smith@joe.com', [plain('joe.smith@joe.com')]),
]),
],
],
[
"Joe's email is JOE@JOE.COM",
[
paragraph([
plain("Joe's email is "),
link('mailto:JOE@JOE.COM', [plain('JOE@JOE.COM')]),
]),
],
],
[
"Joe's email is (joe@joe.com)",
[
paragraph([
plain("Joe's email is ("),
link('mailto:joe@joe.com', [plain('joe@joe.com')]),
plain(')'),
]),
],
],
[
"Joe's email is (joe_roe@joe.com)",
[
paragraph([
plain("Joe's email is ("),
link('mailto:joe_roe@joe.com', [plain('joe_roe@joe.com')]),
plain(')'),
]),
],
],
[
"Joe's email is (joe'roe@joe.com)",
[
paragraph([
plain("Joe's email is ("),
link("mailto:joe'roe@joe.com", [plain("joe'roe@joe.com")]),
plain(')'),
]),
],
],
[
"Joe's email is mañana@mañana.com",
[
paragraph([
plain("Joe's email is "),
link('mailto:mañana@mañana.com', [plain('mañana@mañana.com')]),
]),
],
],
[
"Joe's email is Кириллица@Кириллица.com",
[
paragraph([
plain("Joe's email is "),
link('mailto:Кириллица@Кириллица.com', [
plain('Кириллица@Кириллица.com'),
]),
]),
],
],
['Hi there@stuff', [paragraph([plain('Hi there@stuff')])]],
[
'My email is busueng.kim@aaa.com',
[
paragraph([
plain('My email is '),
link('mailto:busueng.kim@aaa.com', [plain('busueng.kim@aaa.com')]),
]),
],
],
[
'My email is mailto:asdf@asdf.com',
[
paragraph([
plain('My email is '),
link('mailto:asdf@asdf.com', [plain('asdf@asdf.com')]),
]),
],
],
[
'My email is fake@gmail.c',
[paragraph([plain('My email is fake@gmail.c')])],
],
[
'My email is fake@gmail.comf',
[paragraph([plain('My email is fake@gmail.comf')])],
],
])('parses %p', (input, output) => {
expect(parse(input)).toMatchObject(output);
});