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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
describe('columns - columns().indexes()', function() {
dt.libs({
js: ['jquery', 'datatables'],
css: ['datatables']
});
describe('Check the defaults', function() {
dt.html('basic');
it('Exists and is a function', function() {
let table = $('#example').DataTable();
expect(typeof table.columns().indexes).toBe('function');
});
it('Returns an API instance', function() {
let table = $('#example').DataTable();
expect(table.columns().indexes() instanceof $.fn.dataTable.Api).toBe(true);
});
});
describe('Check behaviour', function() {
// Note: only column 1 will be hidden in these tests
const hiddenColumn = 1;
// Function to check all expected index values
function checkColumns(colIdx, hiddenVisible = false) {
let expected = null;
if (colIdx.length != 6) return false;
for (let i = 0; i < colIdx.length; i++) {
expected = i;
if (hiddenVisible && i >= hiddenColumn) {
expected = i == hiddenColumn ? null : i - 1;
}
if (colIdx[i] != expected) return false;
}
return true;
}
dt.html('basic');
it('Returns column indexes (none hidden) with default', function() {
let table = $('#example').DataTable();
let colIdx = table.columns().indexes();
expect(checkColumns(colIdx)).toBe(true);
});
it('Returns column indexes (none hidden) with data', function() {
let table = $('#example').DataTable();
let colIdx = table.columns().indexes('data');
expect(checkColumns(colIdx)).toBe(true);
});
it('Returns column indexes (none hidden) with visible', function() {
let table = $('#example').DataTable();
let colIdx = table.columns().indexes('visible');
expect(checkColumns(colIdx)).toBe(true);
});
dt.html('basic');
it('Returns column indexes (some hidden) with default', function() {
let table = $('#example').DataTable();
table.column(hiddenColumn).visible(false);
let colIdx = table.columns().indexes();
expect(checkColumns(colIdx)).toBe(true);
});
dt.html('basic');
it('Returns column indexes (some hidden) with data', function() {
let table = $('#example').DataTable();
table.column(hiddenColumn).visible(false);
let colIdx = table.columns().indexes('data');
expect(checkColumns(colIdx)).toBe(true);
});
dt.html('basic');
it('Returns column indexes (some hidden) with visible', function() {
let table = $('#example').DataTable();
table.column(hiddenColumn).visible(false);
let colIdx = table.columns().indexes('visible');
expect(checkColumns(colIdx, true)).toBe(true);
});
});
});
|