// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import assert from 'assert'; import * as TextFormatting from 'utils/text_formatting.jsx'; describe('TextFormatting.Hashtags', function() { it('Not hashtags', function(done) { assert.equal( TextFormatting.formatText('# hashtag').trim(), '
#ab
' ); assert.equal( TextFormatting.formatText('#123test').trim(), '#123test
' ); done(); }); it('Hashtags', function(done) { assert.equal( TextFormatting.formatText('#test').trim(), "" ); assert.equal( TextFormatting.formatText('#test123').trim(), "" ); assert.equal( TextFormatting.formatText('#test-test').trim(), "" ); assert.equal( TextFormatting.formatText('#test_test').trim(), "" ); assert.equal( TextFormatting.formatText('#test.test').trim(), "" ); assert.equal( TextFormatting.formatText('#test1/#test2').trim(), "" ); assert.equal( TextFormatting.formatText('(#test)').trim(), "(#test)
" ); assert.equal( TextFormatting.formatText('#test-').trim(), "" ); assert.equal( TextFormatting.formatText('#test.').trim(), "" ); assert.equal( TextFormatting.formatText('This is a sentence #test containing a hashtag').trim(), "This is a sentence #test containing a hashtag
" ); done(); }); it('Formatted hashtags', function(done) { assert.equal( TextFormatting.formatText('*#test*').trim(), "" ); assert.equal( TextFormatting.formatText('_#test_').trim(), "" ); assert.equal( TextFormatting.formatText('**#test**').trim(), "" ); assert.equal( TextFormatting.formatText('__#test__').trim(), "" ); assert.equal( TextFormatting.formatText('~~#test~~').trim(), "" ); assert.equal( TextFormatting.formatText('`#test`').trim(), '' +
'' +
'' +
'#test' +
'
' +
'' +
'
not#test
' ); done(); }); it('Potential hashtags with other entities nested', function(done) { assert.equal( TextFormatting.formatText('#@test').trim(), '#@test
' ); let options = { usernameMap: { test: {id: '1234', username: 'test'} } }; assert.equal( TextFormatting.formatText('#@test', options).trim(), "" ); assert.equal( TextFormatting.formatText('#~test').trim(), '#~test
' ); options = { channelNamesMap: { test: {id: '1234', name: 'test', display_name: 'Test Channel'} }, team: {id: 'abcd', name: 'abcd', display_name: 'Alphabet'} }; assert.equal( TextFormatting.formatText('#~test', options).trim(), '#~test
' ); assert.equal( TextFormatting.formatText('#:taco:').trim(), '#
' ); assert.equal( TextFormatting.formatText('#test@example.com').trim(), "#test@example.com
" ); done(); }); });