diff --git a/client/src/js/util/__tests__/util.test.js b/client/src/js/util/__tests__/util.test.js new file mode 100644 index 00000000..12d6c24f --- /dev/null +++ b/client/src/js/util/__tests__/util.test.js @@ -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 => {href}; + + 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))); +});