summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/cli-table2/test/original-cli-table-newlines-test.js
blob: 8bafa332cf30dc0b65637771b9beb4dc882811be (plain)
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
describe('@api original-cli-table newline tests',function(){
  var Table = require('../src/table');
  var chai = require('chai');
  var expect = chai.expect;

  it('test table with newlines in headers', function() {
    var table = new Table({
      head: ['Test', "1\n2\n3"]
      , style: {
        'padding-left': 1
        , 'padding-right': 1
        , head: []
        , border: []
      }
    });

    var expected = [
        '┌──────┬───┐'
      , '│ Test │ 1 │'
      , '│      │ 2 │'
      , '│      │ 3 │'
      , '└──────┴───┘'
    ];

    expect(table.toString()).to.equal(expected.join("\n"));
  });

  it('test column width is accurately reflected when newlines are present', function() {
    var table = new Table({ head: ['Test\nWidth'], style: {head:[], border:[]} });
    expect(table.width).to.equal(9);
  });

  it('test newlines in body cells', function() {
    var table = new Table({style: {head:[], border:[]}});

    table.push(["something\nwith\nnewlines"]);

    var expected = [
        '┌───────────┐'
      , '│ something │'
      , '│ with      │'
      , '│ newlines  │'
      , '└───────────┘'
    ];

    expect(table.toString()).to.equal(expected.join("\n"));
  });

  it('test newlines in vertical cell header and body', function() {
    var table = new Table({ style: {'padding-left':0, 'padding-right':0, head:[], border:[]} });

    table.push(
      {'v\n0.1': 'Testing\nsomething cool'}
    );

    var expected = [
        '┌───┬──────────────┐'
      , '│v  │Testing       │'
      , '│0.1│something cool│'
      , '└───┴──────────────┘'
    ];

    expect(table.toString()).to.equal(expected.join("\n"));
  });

  it('test newlines in cross table header and body', function() {
    var table = new Table({ head: ["", "Header\n1"], style: {'padding-left':0, 'padding-right':0, head:[], border:[]} });

    table.push({ "Header\n2": ['Testing\nsomething\ncool'] });

    var expected = [
        '┌──────┬─────────┐'
      , '│      │Header   │'
      , '│      │1        │'
      , '├──────┼─────────┤'
      , '│Header│Testing  │'
      , '│2     │something│'
      , '│      │cool     │'
      , '└──────┴─────────┘'
    ];

    expect(table.toString()).to.equal(expected.join("\n"));
  });

});