Blame view

node_modules/table/test/wrapString.js 1.64 KB
f7563de62   Palak Handa   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  /* 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'
          ]);
        });
      });
    });
  });