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 95 96
|
describe('deferRender option', function() {
let table;
dt.libs({
js: ['jquery', 'datatables'],
css: ['datatables']
});
describe('Check Default', function() {
it('Is disabled by default', function() {
expect($.fn.dataTable.defaults.bDeferRender).toBe(false);
});
});
function checkNodes(cells, rows) {
expect(
table
.cells()
.nodes()
.count()
).toBe(cells);
expect(
table
.rows()
.nodes()
.count()
).toBe(rows);
}
describe('Functional tests - disabled', function() {
dt.html('empty');
it('All nodes present after initialisation', function(done) {
table = $('#example').DataTable({
ajax: '/base/test/data/data.txt',
deferRender: false,
columns: [
{ data: 'name' },
{ data: 'position' },
{ data: 'office' },
{ data: 'age' },
{ data: 'start_date' },
{ data: 'salary' }
],
initComplete: function(settings, json) {
checkNodes(342, 57);
done();
}
});
});
});
describe('Functional tests - enabled', function() {
dt.html('empty');
it('Only displayed nodes are created', function(done) {
table = $('#example').DataTable({
ajax: '/base/test/data/data.txt',
deferRender: true,
columns: [
{ data: 'name' },
{ data: 'position' },
{ data: 'office' },
{ data: 'age' },
{ data: 'start_date' },
{ data: 'salary' }
],
initComplete: function(settings, json) {
checkNodes(60, 10);
done();
}
});
});
it('On next page 10 more rows are created', function() {
table.page('next').draw(false);
checkNodes(120, 20);
});
it('Jumping back to first page, no more rows are created', function() {
table.page('previous').draw(false);
checkNodes(120, 20);
});
it('Jumping to last page will not render all rows', function() {
table.page('last').draw(false);
checkNodes(162, 27);
});
it("Jumping back to first page again doesn't create more", function() {
table.page('first').draw(false);
checkNodes(162, 27);
});
it('Filtering will create only those required', function() {
table.search('m').draw();
checkNodes(186, 31);
});
it('Ordering will only create those required', function() {
table.order([0, 'desc']).draw();
checkNodes(222, 37);
});
});
});
|