56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
/**
|
|
* Copyright (c) 2013-present, Facebook, Inc.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @emails oncall+react_native
|
|
*/
|
|
'use strict';
|
|
|
|
describe('truncate', () => {
|
|
|
|
var truncate = require('truncate');
|
|
|
|
it('should truncate', () => {
|
|
expect(truncate('Hello, world.', 5))
|
|
.toBe('He...');
|
|
});
|
|
it('should not truncate', () => {
|
|
expect(truncate('Hello, world.', 50))
|
|
.toBe('Hello, world.');
|
|
});
|
|
it('should not truncate more than minDelta chars.', () => {
|
|
expect(truncate('Hello, world.', 7, {minDelta: 10}))
|
|
.toBe('Hello, world.');
|
|
expect(truncate('Hello, world.', 7, {minDelta: 9}))
|
|
.toBe('Hell...');
|
|
});
|
|
it('should break in the middle of words', () => {
|
|
expect(truncate('Hello, world. How are you?', 18, {breakOnWords: false}))
|
|
.toBe('Hello, world. H...');
|
|
expect(truncate('Hello, world.\nHow are you?', 18, {breakOnWords: false}))
|
|
.toBe('Hello, world.\nHo...');
|
|
});
|
|
it('should break at word boundaries', () => {
|
|
expect(truncate('Hello, world. How are you?', 18, {breakOnWords: true}))
|
|
.toBe('Hello, world....');
|
|
expect(truncate('Hello, world.\nHow are you?', 18, {breakOnWords: true}))
|
|
.toBe('Hello, world....');
|
|
});
|
|
it('should uses custom elipses', () => {
|
|
expect(truncate('Hello, world.', 9, {elipsis: '·'}))
|
|
.toBe('He·');
|
|
});
|
|
it('shouldn\'t barf with weird input', () => {
|
|
expect(truncate('Hello, world.', 0))
|
|
.toBe('Hello,...');
|
|
expect(truncate('Hello, world.', -132))
|
|
.toBe('...');
|
|
expect(truncate('', 0))
|
|
.toBe('');
|
|
expect(truncate(null, 0))
|
|
.toBe(null);
|
|
});
|
|
});
|