'use strict'; describe('rowHeaders option', function () { var $table, $container, $wrapper, debug = false; beforeEach(function () { $wrapper = $('
').css({ overflow: 'hidden', position: 'relative' }); $wrapper.width(500).height(201); $container = $('
'); $table = $('
'); // create a table that is not attached to document $wrapper.append($container); $container.append($table); $wrapper.appendTo('body'); createDataArray(); }); afterEach(function () { if (!debug) { $('.wtHolder').remove(); } $wrapper.remove(); }); it('should not add class `htRowHeader` when row headers are disabled', function () { var wt = new Walkontable.Core({ table: $table[0], data: getData, totalRows: getTotalRows, totalColumns: getTotalColumns }); wt.draw(); expect($wrapper.hasClass('htRowHeaders')).toBe(false); }); it('should add class `htRowHeader` when row headers are enabled', function () { var wt = new Walkontable.Core({ table: $table[0], data: getData, totalRows: getTotalRows, totalColumns: getTotalColumns, rowHeaders: [function (row, TH) { TH.innerHTML = row + 1; }] }); wt.draw(); expect($wrapper.hasClass('htRowHeaders')).toBe(true); }); it('should create table row headers', function () { var wt = new Walkontable.Core({ table: $table[0], data: getData, totalRows: getTotalRows, totalColumns: getTotalColumns, rowHeaders: [function (row, TH) { TH.innerHTML = row + 1; }] }); wt.draw(); expect($wrapper.find('.ht_clone_left colgroup col').length).toBe(1); expect($wrapper.find('.ht_clone_left thead tr').length).toBe(0); expect($wrapper.find('.ht_clone_left tbody tr').length).toBe(9); expect($wrapper.find('.ht_clone_top colgroup col').length).toBe(0); expect($wrapper.find('.ht_clone_top thead tr').length).toBe(0); expect($wrapper.find('.ht_clone_top tbody tr').length).toBe(0); expect($wrapper.find('.ht_master colgroup col').length).toBe(5); expect($wrapper.find('.ht_master thead tr').length).toBe(0); expect($wrapper.find('.ht_master tbody tr').length).toBe(9); }); it('should generate headers from function', function () { var wt = new Walkontable.Core({ table: $table[0], data: getData, totalRows: getTotalRows, totalColumns: getTotalColumns, rowHeaders: [function (row, TH) { TH.innerHTML = row + 1; }] }); wt.draw(); var potentialRowCount = 9; expect($table.find('tbody td').length).toBe(potentialRowCount * wt.wtTable.getRenderedColumnsCount()); // displayed cells expect($table.find('tbody th').length).toBe(potentialRowCount); // 9*1=9 displayed row headers expect($table.find('tbody tr:first th').length).toBe(1); // only one th per row expect($table.find('tbody tr:first th')[0].innerHTML).toBe('1'); // this should be the first row header }); it('should add \'rowHeader\' class to row header column', function () { var wt = new Walkontable.Core({ table: $table[0], data: getData, totalRows: getTotalRows, totalColumns: getTotalColumns, rowHeaders: [function (row, TH) { TH.innerHTML = row + 1; }], columnHeaders: [function (col, TH) { TH.innerHTML = col + 1; }] }); wt.draw(); expect($table.find('col:first').hasClass('rowHeader')).toBe(true); }); });