File: original-cli-table-newlines-test.js

package info (click to toggle)
node-cli-table 0.3.11%2B~cs0.13.4-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,036 kB
  • sloc: javascript: 7,508; makefile: 9
file content (66 lines) | stat: -rw-r--r-- 2,449 bytes parent folder | download
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
describe('@api original-cli-table newline tests', function () {
  const Table = require('../src/table');

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

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

    expect(table.toString()).toEqual(expected.join('\n'));
  });

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

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

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

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

    expect(table.toString()).toEqual(expected.join('\n'));
  });

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

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

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

    expect(table.toString()).toEqual(expected.join('\n'));
  });

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

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

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

    expect(table.toString()).toEqual(expected.join('\n'));
  });
});