|
@@ -57,26 +57,34 @@ describe( 'TableWalker', () => {
|
|
|
result.push( tableInfo );
|
|
result.push( tableInfo );
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- const formattedResult = result.map( ( { row, column, cell } ) => ( { row, column, data: cell && cell.getChild( 0 ).data } ) );
|
|
|
|
|
|
|
+ const formattedResult = result.map( ( { row, column, cell, cellIndex } ) => ( {
|
|
|
|
|
+ row,
|
|
|
|
|
+ column,
|
|
|
|
|
+ data: cell && cell.getChild( 0 ).data,
|
|
|
|
|
+ index: cellIndex
|
|
|
|
|
+ } ) );
|
|
|
|
|
|
|
|
expect( formattedResult ).to.deep.equal( expected );
|
|
expect( formattedResult ).to.deep.equal( expected );
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
it( 'should iterate over a table', () => {
|
|
it( 'should iterate over a table', () => {
|
|
|
testWalker( [
|
|
testWalker( [
|
|
|
- [ '11', '12' ]
|
|
|
|
|
|
|
+ [ '00', '01' ],
|
|
|
|
|
+ [ '10', '11' ]
|
|
|
], [
|
|
], [
|
|
|
- { row: 0, column: 0, data: '11' },
|
|
|
|
|
- { row: 0, column: 1, data: '12' }
|
|
|
|
|
|
|
+ { row: 0, column: 0, index: 0, data: '00' },
|
|
|
|
|
+ { row: 0, column: 1, index: 1, data: '01' },
|
|
|
|
|
+ { row: 1, column: 0, index: 0, data: '10' },
|
|
|
|
|
+ { row: 1, column: 1, index: 1, data: '11' }
|
|
|
] );
|
|
] );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
it( 'should properly output column indexes of a table that has colspans', () => {
|
|
it( 'should properly output column indexes of a table that has colspans', () => {
|
|
|
testWalker( [
|
|
testWalker( [
|
|
|
- [ { colspan: 2, contents: '11' }, '13' ]
|
|
|
|
|
|
|
+ [ { colspan: 2, contents: '00' }, '13' ]
|
|
|
], [
|
|
], [
|
|
|
- { row: 0, column: 0, data: '11' },
|
|
|
|
|
- { row: 0, column: 2, data: '13' }
|
|
|
|
|
|
|
+ { row: 0, column: 0, index: 0, data: '00' },
|
|
|
|
|
+ { row: 0, column: 2, index: 1, data: '13' }
|
|
|
] );
|
|
] );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
@@ -87,13 +95,13 @@ describe( 'TableWalker', () => {
|
|
|
[ '22' ],
|
|
[ '22' ],
|
|
|
[ '30', '31', '32' ]
|
|
[ '30', '31', '32' ]
|
|
|
], [
|
|
], [
|
|
|
- { row: 0, column: 0, data: '00' },
|
|
|
|
|
- { row: 0, column: 2, data: '02' },
|
|
|
|
|
- { row: 1, column: 2, data: '12' },
|
|
|
|
|
- { row: 2, column: 2, data: '22' },
|
|
|
|
|
- { row: 3, column: 0, data: '30' },
|
|
|
|
|
- { row: 3, column: 1, data: '31' },
|
|
|
|
|
- { row: 3, column: 2, data: '32' }
|
|
|
|
|
|
|
+ { row: 0, column: 0, index: 0, data: '00' },
|
|
|
|
|
+ { row: 0, column: 2, index: 1, data: '02' },
|
|
|
|
|
+ { row: 1, column: 2, index: 0, data: '12' },
|
|
|
|
|
+ { row: 2, column: 2, index: 0, data: '22' },
|
|
|
|
|
+ { row: 3, column: 0, index: 0, data: '30' },
|
|
|
|
|
+ { row: 3, column: 1, index: 1, data: '31' },
|
|
|
|
|
+ { row: 3, column: 2, index: 2, data: '32' }
|
|
|
] );
|
|
] );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
@@ -104,30 +112,18 @@ describe( 'TableWalker', () => {
|
|
|
[ '33' ],
|
|
[ '33' ],
|
|
|
[ '41', '42', '43' ]
|
|
[ '41', '42', '43' ]
|
|
|
], [
|
|
], [
|
|
|
- { row: 0, column: 0, data: '11' },
|
|
|
|
|
- { row: 0, column: 1, data: '12' },
|
|
|
|
|
- { row: 0, column: 2, data: '13' },
|
|
|
|
|
- { row: 1, column: 1, data: '22' },
|
|
|
|
|
- { row: 1, column: 2, data: '23' },
|
|
|
|
|
- { row: 2, column: 2, data: '33' },
|
|
|
|
|
- { row: 3, column: 0, data: '41' },
|
|
|
|
|
- { row: 3, column: 1, data: '42' },
|
|
|
|
|
- { row: 3, column: 2, data: '43' }
|
|
|
|
|
|
|
+ { row: 0, column: 0, index: 0, data: '11' },
|
|
|
|
|
+ { row: 0, column: 1, index: 1, data: '12' },
|
|
|
|
|
+ { row: 0, column: 2, index: 2, data: '13' },
|
|
|
|
|
+ { row: 1, column: 1, index: 0, data: '22' },
|
|
|
|
|
+ { row: 1, column: 2, index: 1, data: '23' },
|
|
|
|
|
+ { row: 2, column: 2, index: 0, data: '33' },
|
|
|
|
|
+ { row: 3, column: 0, index: 0, data: '41' },
|
|
|
|
|
+ { row: 3, column: 1, index: 1, data: '42' },
|
|
|
|
|
+ { row: 3, column: 2, index: 2, data: '43' }
|
|
|
] );
|
|
] );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
- it( 'should output spanned cells at the end of a table', () => {
|
|
|
|
|
- testWalker( [
|
|
|
|
|
- [ '00', { rowspan: 2, contents: '01' } ],
|
|
|
|
|
- [ '10' ]
|
|
|
|
|
- ], [
|
|
|
|
|
- { row: 0, column: 0, data: '00' },
|
|
|
|
|
- { row: 0, column: 1, data: '01' },
|
|
|
|
|
- { row: 1, column: 0, data: '10' },
|
|
|
|
|
- { row: 1, column: 1, data: undefined }
|
|
|
|
|
- ], { includeSpanned: true } );
|
|
|
|
|
- } );
|
|
|
|
|
-
|
|
|
|
|
describe( 'option.startRow', () => {
|
|
describe( 'option.startRow', () => {
|
|
|
it( 'should start iterating from given row but with cell spans properly calculated', () => {
|
|
it( 'should start iterating from given row but with cell spans properly calculated', () => {
|
|
|
testWalker( [
|
|
testWalker( [
|
|
@@ -136,10 +132,10 @@ describe( 'TableWalker', () => {
|
|
|
[ '33' ],
|
|
[ '33' ],
|
|
|
[ '41', '42', '43' ]
|
|
[ '41', '42', '43' ]
|
|
|
], [
|
|
], [
|
|
|
- { row: 2, column: 2, data: '33' },
|
|
|
|
|
- { row: 3, column: 0, data: '41' },
|
|
|
|
|
- { row: 3, column: 1, data: '42' },
|
|
|
|
|
- { row: 3, column: 2, data: '43' }
|
|
|
|
|
|
|
+ { row: 2, column: 2, index: 0, data: '33' },
|
|
|
|
|
+ { row: 3, column: 0, index: 0, data: '41' },
|
|
|
|
|
+ { row: 3, column: 1, index: 1, data: '42' },
|
|
|
|
|
+ { row: 3, column: 2, index: 2, data: '43' }
|
|
|
], { startRow: 2 } );
|
|
], { startRow: 2 } );
|
|
|
} );
|
|
} );
|
|
|
} );
|
|
} );
|
|
@@ -152,15 +148,27 @@ describe( 'TableWalker', () => {
|
|
|
[ '33' ],
|
|
[ '33' ],
|
|
|
[ '41', '42', '43' ]
|
|
[ '41', '42', '43' ]
|
|
|
], [
|
|
], [
|
|
|
- { row: 0, column: 0, data: '11' },
|
|
|
|
|
- { row: 0, column: 2, data: '13' },
|
|
|
|
|
- { row: 1, column: 2, data: '23' },
|
|
|
|
|
- { row: 2, column: 2, data: '33' }
|
|
|
|
|
|
|
+ { row: 0, column: 0, index: 0, data: '11' },
|
|
|
|
|
+ { row: 0, column: 2, index: 1, data: '13' },
|
|
|
|
|
+ { row: 1, column: 2, index: 0, data: '23' },
|
|
|
|
|
+ { row: 2, column: 2, index: 0, data: '33' }
|
|
|
], { endRow: 2 } );
|
|
], { endRow: 2 } );
|
|
|
} );
|
|
} );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
describe( 'option.includeSpanned', () => {
|
|
describe( 'option.includeSpanned', () => {
|
|
|
|
|
+ it( 'should output spanned cells at the end of a table', () => {
|
|
|
|
|
+ testWalker( [
|
|
|
|
|
+ [ '00', { rowspan: 2, contents: '01' } ],
|
|
|
|
|
+ [ '10' ]
|
|
|
|
|
+ ], [
|
|
|
|
|
+ { row: 0, column: 0, index: 0, data: '00' },
|
|
|
|
|
+ { row: 0, column: 1, index: 1, data: '01' },
|
|
|
|
|
+ { row: 1, column: 0, index: 0, data: '10' },
|
|
|
|
|
+ { row: 1, column: 1, index: 1, data: undefined }
|
|
|
|
|
+ ], { includeSpanned: true } );
|
|
|
|
|
+ } );
|
|
|
|
|
+
|
|
|
it( 'should output spanned cells as empty cell', () => {
|
|
it( 'should output spanned cells as empty cell', () => {
|
|
|
testWalker( [
|
|
testWalker( [
|
|
|
[ { colspan: 2, rowspan: 3, contents: '00' }, '02' ],
|
|
[ { colspan: 2, rowspan: 3, contents: '00' }, '02' ],
|
|
@@ -168,18 +176,18 @@ describe( 'TableWalker', () => {
|
|
|
[ '22' ],
|
|
[ '22' ],
|
|
|
[ '30', { colspan: 2, contents: '31' } ]
|
|
[ '30', { colspan: 2, contents: '31' } ]
|
|
|
], [
|
|
], [
|
|
|
- { row: 0, column: 0, data: '00' },
|
|
|
|
|
- { row: 0, column: 1, data: undefined },
|
|
|
|
|
- { row: 0, column: 2, data: '02' },
|
|
|
|
|
- { row: 1, column: 0, data: undefined },
|
|
|
|
|
- { row: 1, column: 1, data: undefined },
|
|
|
|
|
- { row: 1, column: 2, data: '12' },
|
|
|
|
|
- { row: 2, column: 0, data: undefined },
|
|
|
|
|
- { row: 2, column: 1, data: undefined },
|
|
|
|
|
- { row: 2, column: 2, data: '22' },
|
|
|
|
|
- { row: 3, column: 0, data: '30' },
|
|
|
|
|
- { row: 3, column: 1, data: '31' },
|
|
|
|
|
- { row: 3, column: 2, data: undefined }
|
|
|
|
|
|
|
+ { row: 0, column: 0, index: 0, data: '00' },
|
|
|
|
|
+ { row: 0, column: 1, index: 1, data: undefined },
|
|
|
|
|
+ { row: 0, column: 2, index: 1, data: '02' },
|
|
|
|
|
+ { row: 1, column: 0, index: 0, data: undefined },
|
|
|
|
|
+ { row: 1, column: 1, index: 0, data: undefined },
|
|
|
|
|
+ { row: 1, column: 2, index: 0, data: '12' },
|
|
|
|
|
+ { row: 2, column: 0, index: 0, data: undefined },
|
|
|
|
|
+ { row: 2, column: 1, index: 0, data: undefined },
|
|
|
|
|
+ { row: 2, column: 2, index: 0, data: '22' },
|
|
|
|
|
+ { row: 3, column: 0, index: 0, data: '30' },
|
|
|
|
|
+ { row: 3, column: 1, index: 1, data: '31' },
|
|
|
|
|
+ { row: 3, column: 2, index: 2, data: undefined }
|
|
|
], { includeSpanned: true } );
|
|
], { includeSpanned: true } );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
@@ -188,10 +196,10 @@ describe( 'TableWalker', () => {
|
|
|
[ '00', { rowspan: 2, contents: '01' } ],
|
|
[ '00', { rowspan: 2, contents: '01' } ],
|
|
|
[ '10' ]
|
|
[ '10' ]
|
|
|
], [
|
|
], [
|
|
|
- { row: 0, column: 0, data: '00' },
|
|
|
|
|
- { row: 0, column: 1, data: '01' },
|
|
|
|
|
- { row: 1, column: 0, data: '10' },
|
|
|
|
|
- { row: 1, column: 1, data: undefined }
|
|
|
|
|
|
|
+ { row: 0, column: 0, index: 0, data: '00' },
|
|
|
|
|
+ { row: 0, column: 1, index: 1, data: '01' },
|
|
|
|
|
+ { row: 1, column: 0, index: 0, data: '10' },
|
|
|
|
|
+ { row: 1, column: 1, index: 1, data: undefined }
|
|
|
], { includeSpanned: true } );
|
|
], { includeSpanned: true } );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
@@ -202,12 +210,12 @@ describe( 'TableWalker', () => {
|
|
|
[ '22' ],
|
|
[ '22' ],
|
|
|
[ '30', '31', '32' ]
|
|
[ '30', '31', '32' ]
|
|
|
], [
|
|
], [
|
|
|
- { row: 1, column: 0, data: undefined },
|
|
|
|
|
- { row: 1, column: 1, data: undefined },
|
|
|
|
|
- { row: 1, column: 2, data: '12' },
|
|
|
|
|
- { row: 2, column: 0, data: undefined },
|
|
|
|
|
- { row: 2, column: 1, data: undefined },
|
|
|
|
|
- { row: 2, column: 2, data: '22' }
|
|
|
|
|
|
|
+ { row: 1, column: 0, index: 0, data: undefined },
|
|
|
|
|
+ { row: 1, column: 1, index: 0, data: undefined },
|
|
|
|
|
+ { row: 1, column: 2, index: 0, data: '12' },
|
|
|
|
|
+ { row: 2, column: 0, index: 0, data: undefined },
|
|
|
|
|
+ { row: 2, column: 1, index: 0, data: undefined },
|
|
|
|
|
+ { row: 2, column: 2, index: 0, data: '22' }
|
|
|
], { includeSpanned: true, startRow: 1, endRow: 2 } );
|
|
], { includeSpanned: true, startRow: 1, endRow: 2 } );
|
|
|
} );
|
|
} );
|
|
|
} );
|
|
} );
|
|
@@ -220,8 +228,8 @@ describe( 'TableWalker', () => {
|
|
|
[ '33' ],
|
|
[ '33' ],
|
|
|
[ '41', '42', '43' ]
|
|
[ '41', '42', '43' ]
|
|
|
], [
|
|
], [
|
|
|
- { row: 0, column: 0, data: '11' },
|
|
|
|
|
- { row: 0, column: 2, data: '13' }
|
|
|
|
|
|
|
+ { row: 0, column: 0, index: 0, data: '11' },
|
|
|
|
|
+ { row: 0, column: 2, index: 1, data: '13' }
|
|
|
], { endRow: 0 } );
|
|
], { endRow: 0 } );
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
@@ -231,10 +239,10 @@ describe( 'TableWalker', () => {
|
|
|
[ '10' ],
|
|
[ '10' ],
|
|
|
[ '20', '21' ]
|
|
[ '20', '21' ]
|
|
|
], [
|
|
], [
|
|
|
- { row: 0, column: 0, data: '00' },
|
|
|
|
|
- { row: 0, column: 1, data: '01' },
|
|
|
|
|
- { row: 1, column: 0, data: '10' },
|
|
|
|
|
- { row: 1, column: 1, data: undefined }
|
|
|
|
|
|
|
+ { row: 0, column: 0, index: 0, data: '00' },
|
|
|
|
|
+ { row: 0, column: 1, index: 1, data: '01' },
|
|
|
|
|
+ { row: 1, column: 0, index: 0, data: '10' },
|
|
|
|
|
+ { row: 1, column: 1, index: 1, data: undefined }
|
|
|
], { startRow: 0, endRow: 1, includeSpanned: true } );
|
|
], { startRow: 0, endRow: 1, includeSpanned: true } );
|
|
|
} );
|
|
} );
|
|
|
} );
|
|
} );
|