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); });