Sha256: 54ec462b186a196db2e9cf5df8c78262572aab62e6a3a283b1aca1d57c32b735

Contents?: true

Size: 1.64 KB

Versions: 46

Compression:

Stored size: 1.64 KB

Contents

/* eslint-disable max-nested-callbacks */

import {
    expect
} from 'chai';
import chalk from 'chalk';
import wrapString from './../src/wrapString';

describe('wrapString', () => {
  context('subject is a plain text string', () => {
    context('subject is lesser than the chunk size', () => {
      it('returns subject in a single chunk', () => {
        expect(wrapString('aaa', 3)).to.deep.equal(['aaa']);
      });
    });
    context('subject is larger than the chunk size', () => {
      it('returns subject sliced into multiple chunks', () => {
        expect(wrapString('aaabbbc', 3)).to.deep.equal(['aaa', 'bbb', 'c']);
      });
    });
    context('a chunk starts with a space', () => {
      it('adjusts chunks to offset the space', () => {
        expect(wrapString('aaa   bbb   ccc', 3)).to.deep.equal(['aaa', 'bbb', 'ccc']);
      });
    });
  });
  context('subject string contains ANSI escape codes', () => {
    describe('subject is lesser than the chunk size', () => {
      it('returns subject in a single chunk', () => {
        expect(wrapString(chalk.red('aaa'), 3)).to.deep.equal([
          '\u001b[31m\u001b[31m\u001b[31m\u001b[31m\u001b[31maaa\u001b[39m'
        ]);
      });
    });
    describe('subject is larger than the chunk size', () => {
      it('returns subject sliced into multiple chunks', () => {
        expect(wrapString(chalk.red('aaabbbc'), 3)).to.deep.equal([
          '\u001b[31m\u001b[31m\u001b[31m\u001b[31m\u001b[31maaa\u001b[39m',
          '\u001b[31m\u001b[31m\u001b[31m\u001b[31m\u001b[31mbbb\u001b[39m',
          '\u001b[31m\u001b[31m\u001b[31m\u001b[31m\u001b[31mc\u001b[39m'
        ]);
      });
    });
  });
});

Version data entries

46 entries across 46 versions & 3 rubygems

Version Path
govuk_publishing_components-17.6.0 node_modules/table/test/wrapString.js
govuk_publishing_components-17.5.0 node_modules/table/test/wrapString.js
govuk_publishing_components-17.4.0 node_modules/table/test/wrapString.js
govuk_publishing_components-17.3.0 node_modules/table/test/wrapString.js
govuk_publishing_components-17.2.0 node_modules/table/test/wrapString.js
govuk_publishing_components-17.1.1 node_modules/table/test/wrapString.js
govuk_publishing_components-17.1.0 node_modules/table/test/wrapString.js
govuk_publishing_components-17.0.0 node_modules/table/test/wrapString.js
govuk_publishing_components-16.29.0 node_modules/table/test/wrapString.js
govuk_publishing_components-16.28.0 node_modules/table/test/wrapString.js
govuk_publishing_components-16.27.1 node_modules/table/test/wrapString.js
govuk_publishing_components-16.27.0 node_modules/table/test/wrapString.js
govuk_publishing_components-16.26.0 node_modules/table/test/wrapString.js
govuk_publishing_components-16.25.0 node_modules/table/test/wrapString.js
govuk_publishing_components-16.24.0 node_modules/table/test/wrapString.js
govuk_publishing_components-16.23.0 node_modules/table/test/wrapString.js
govuk_publishing_components-16.22.0 node_modules/table/test/wrapString.js
govuk_publishing_components-16.21.0 node_modules/table/test/wrapString.js
govuk_publishing_components-16.20.1 node_modules/table/test/wrapString.js
govuk_publishing_components-16.20.0 node_modules/table/test/wrapString.js