// 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() { this.timeout(10000); it('Not hashtags', function(done) { assert.equal( TextFormatting.formatText('# hashtag').trim(), '

hashtag

' ); assert.equal( TextFormatting.formatText('#ab').trim(), '

#ab

' ); assert.equal( TextFormatting.formatText('#123test').trim(), '

#123test

' ); done(); }); it('Hashtags', function(done) { assert.equal( TextFormatting.formatText('#test').trim(), "

#test

" ); assert.equal( TextFormatting.formatText('#test123').trim(), "

#test123

" ); assert.equal( TextFormatting.formatText('#test-test').trim(), "

#test-test

" ); assert.equal( TextFormatting.formatText('#test_test').trim(), "

#test_test

" ); assert.equal( TextFormatting.formatText('#test.test').trim(), "

#test.test

" ); assert.equal( TextFormatting.formatText('#test1/#test2').trim(), "

#test1/#test2

" ); assert.equal( TextFormatting.formatText('(#test)').trim(), "

(#test)

" ); assert.equal( TextFormatting.formatText('#test-').trim(), "

#test-

" ); assert.equal( TextFormatting.formatText('#test.').trim(), "

#test.

" ); // Known issue, trailing underscore is captured by the clientside regex but not the serverside one assert.equal( TextFormatting.formatText('#test_').trim(), "

#test_

" ); 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(), "

#test

" ); assert.equal( TextFormatting.formatText('_#test_').trim(), "

#test

" ); assert.equal( TextFormatting.formatText('**#test**').trim(), "

#test

" ); assert.equal( TextFormatting.formatText('__#test__').trim(), "

#test

" ); assert.equal( TextFormatting.formatText('~~#test~~').trim(), "

#test

" ); assert.equal( TextFormatting.formatText('`#test`').trim(), '

' + '' + '' + '#test' + '' + '' + '

' ); assert.equal( TextFormatting.formatText('[this is a link #test](example.com)').trim(), '

this is a link #test

' ); done(); }); it('Searching for hashtags', function(done) { assert.equal( TextFormatting.formatText('#test', {searchTerm: 'test'}).trim(), "

#test

" ); assert.equal( TextFormatting.formatText('#test', {searchTerm: '#test'}).trim(), "

#test

" ); assert.equal( TextFormatting.formatText('#foo/#bar', {searchTerm: '#foo'}).trim(), "

#foo/#bar

" ); assert.equal( TextFormatting.formatText('#foo/#bar', {searchTerm: 'bar'}).trim(), "

#foo/#bar

" ); assert.equal( TextFormatting.formatText('not#test', {searchTerm: '#test'}).trim(), '

not#test

' ); done(); }); });