/** * Copyright (c) 2013-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ 'use strict'; jest.unmock('truncate'); 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); }); });