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'));
});
});
|