Skip to content

Commit 0447ac7

Browse files
committed
#269 - Failing tests for refactored table layouts
1 parent 72f399d commit 0447ac7

File tree

3 files changed

+84
-1
lines changed

3 files changed

+84
-1
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
{
7676
"displayName": "test",
7777
"testMatch": [
78-
"<rootDir>/test/*.js"
78+
"<rootDir>/test/**/*.js"
7979
]
8080
},
8181
{

test/issues/269-test.js

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const Table = require('../..');
2+
3+
test('it renders rowSpan correctly', () => {
4+
let table = new Table({ style: { border: [], head: [] } });
5+
table.push([{ rowSpan: 3, content: 'A1' }, 'B1', 'C1'], [{ rowSpan: 2, content: 'B2' }, 'C2'], ['C3']);
6+
let expected = [
7+
'┌────┬────┬────┐',
8+
'│ A1 │ B1 │ C1 │',
9+
'│ ├────┼────┤',
10+
'│ │ B2 │ C2 │',
11+
'│ │ ├────┤',
12+
'│ │ │ C3 │',
13+
'└────┴────┴────┘',
14+
];
15+
expect(table.toString()).toEqual(expected.join('\n'));
16+
});

test/table-test.js

+67
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,73 @@ describe('@api Table ', function () {
6262

6363
expect(table.toString()).toEqual(expected.join('\n'));
6464
});
65+
66+
it('supports complex layouts', () => {
67+
let table = new Table({ style: { border: [], head: [] } });
68+
table.push(
69+
[{ content: 'TOP', colSpan: 9, hAlign: 'center' }],
70+
[
71+
{ content: 'TL', rowSpan: 4, vAlign: 'center' },
72+
{ content: 'A1', rowSpan: 3 },
73+
'B1',
74+
'C1',
75+
{ content: 'D1', rowSpan: 3, vAlign: 'center' },
76+
'E1',
77+
'F1',
78+
{ content: 'G1', rowSpan: 3 },
79+
{ content: 'TR', rowSpan: 4, vAlign: 'center' },
80+
],
81+
[{ rowSpan: 2, content: 'B2' }, 'C2', { rowSpan: 2, colSpan: 2, content: 'E2' }],
82+
['C3'],
83+
[{ content: 'A2', colSpan: 7, hAlign: 'center' }],
84+
[{ content: 'CLEAR', colSpan: 9, hAlign: 'center' }],
85+
[
86+
{ content: 'BL', rowSpan: 4, vAlign: 'center' },
87+
{ content: 'A3', colSpan: 7, hAlign: 'center' },
88+
{ content: 'BR', rowSpan: 4, vAlign: 'center' },
89+
],
90+
[
91+
{ content: 'A4', colSpan: 3, hAlign: 'center' },
92+
{ content: 'D2', rowSpan: 2, vAlign: 'center' },
93+
{ content: 'E3', colSpan: 2, hAlign: 'center' },
94+
{ content: 'G2', rowSpan: 3, vAlign: 'center' },
95+
],
96+
[
97+
{ content: 'A5', rowSpan: 2, vAlign: 'center' },
98+
{ content: 'B3', colSpan: 2, hAlign: 'center' },
99+
{ content: 'E4', rowSpan: 2, vAlign: 'center' },
100+
{ content: 'F3', rowSpan: 2, vAlign: 'center' },
101+
],
102+
['B4', { content: 'C4', colSpan: 2, hAlign: 'center' }],
103+
[{ content: 'BOTTOM', colSpan: 9, hAlign: 'center' }]
104+
);
105+
let expected = [
106+
'┌────────────────────────────────────────────┐',
107+
'│ TOP │',
108+
'├────┬────┬────┬────┬────┬────┬────┬────┬────┤',
109+
'│ │ A1 │ B1 │ C1 │ │ E1 │ F1 │ G1 │ │',
110+
'│ │ ├────┼────┤ ├────┴────┤ │ │',
111+
'│ │ │ B2 │ C2 │ D1 │ E2 │ │ │',
112+
'│ TL │ │ ├────┤ │ │ │ TR │',
113+
'│ │ │ │ C3 │ │ │ │ │',
114+
'│ ├────┴────┴────┴────┴─────────┴────┤ │',
115+
'│ │ A2 │ │',
116+
'├────┴──────────────────────────────────┴────┤',
117+
'│ CLEAR │',
118+
'├────┬──────────────────────────────────┬────┤',
119+
'│ │ A3 │ │',
120+
'│ ├──────────────┬────┬─────────┬────┤ │',
121+
'│ │ A4 │ │ E3 │ │ │',
122+
'│ BL ├────┬─────────┤ D2 ├────┬────┤ │ BR │',
123+
'│ │ │ B3 │ │ │ │ G2 │ │',
124+
'│ │ A5 ├────┬────┴────┤ E4 │ F3 │ │ │',
125+
'│ │ │ B4 │ C4 │ │ │ │ │',
126+
'├────┴────┴────┴─────────┴────┴────┴────┴────┤',
127+
'│ BOTTOM │',
128+
'└────────────────────────────────────────────┘',
129+
];
130+
expect(table.toString()).toEqual(expected.join('\n'));
131+
});
65132
});
66133

67134
/*

0 commit comments

Comments
 (0)