Add linkify tests
This commit is contained in:
parent
889e3b88b7
commit
01bacafac8
56
client/src/js/util/__tests__/util.test.js
Normal file
56
client/src/js/util/__tests__/util.test.js
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import linkify from '../linkify';
|
||||||
|
|
||||||
|
describe('linkify()', () => {
|
||||||
|
const proto = href => href.indexOf('http') !== 0 ? `http://${href}` : href;
|
||||||
|
const linkTo = href => <a href={proto(href)} rel="noopener noreferrer" target="_blank">{href}</a>;
|
||||||
|
|
||||||
|
it('returns the arg when no matches are found', () => [
|
||||||
|
null,
|
||||||
|
undefined,
|
||||||
|
10,
|
||||||
|
false,
|
||||||
|
true,
|
||||||
|
'just some text',
|
||||||
|
''
|
||||||
|
].forEach(input => expect(linkify(input)).toBe(input)));
|
||||||
|
|
||||||
|
it('linkifies text', () => Object.entries({
|
||||||
|
'google.com': linkTo('google.com'),
|
||||||
|
'google.com stuff': [
|
||||||
|
linkTo('google.com'),
|
||||||
|
' stuff'
|
||||||
|
],
|
||||||
|
'cake google.com stuff': [
|
||||||
|
'cake ',
|
||||||
|
linkTo('google.com'),
|
||||||
|
' stuff'
|
||||||
|
],
|
||||||
|
'cake google.com stuff https://google.com': [
|
||||||
|
'cake ',
|
||||||
|
linkTo('google.com'),
|
||||||
|
' stuff ',
|
||||||
|
linkTo('https://google.com')
|
||||||
|
],
|
||||||
|
'cake google.com stuff pie https://google.com ': [
|
||||||
|
'cake ',
|
||||||
|
linkTo('google.com'),
|
||||||
|
' stuff pie ',
|
||||||
|
linkTo('https://google.com'),
|
||||||
|
' '
|
||||||
|
],
|
||||||
|
' google.com': [
|
||||||
|
' ',
|
||||||
|
linkTo('google.com')
|
||||||
|
],
|
||||||
|
'google.com ': [
|
||||||
|
linkTo('google.com'),
|
||||||
|
' '
|
||||||
|
],
|
||||||
|
'/google.com?': [
|
||||||
|
'/',
|
||||||
|
linkTo('google.com'),
|
||||||
|
'?'
|
||||||
|
]
|
||||||
|
}).forEach(([ input, expected ]) => expect(linkify(input)).toEqual(expected)));
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user