File: deferRender.js

package info (click to toggle)
datatables.js 1.10.20%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid
  • size: 6,620 kB
  • sloc: xml: 10,436; php: 4,511; sh: 522; makefile: 21
file content (96 lines) | stat: -rw-r--r-- 2,291 bytes parent folder | download
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);
		});
	});
});