TableFilter/test/test-dom-changes.js

167 lines
4.8 KiB
JavaScript

var tf = new TableFilter('demo', {
base_path: '../dist/tablefilter/',
rows_counter: true
});
tf.init();
var rowsCounter = tf.feature('rowsCounter');
var rowToAdd = tf.dom().rows[8];
var tf1 = new TableFilter('demo', {
base_path: '../dist/tablefilter/',
rows_counter: true,
paging: {
length: 3
}
});
module('Sanity checks');
test('Initial verifications', function() {
deepEqual(tf instanceof TableFilter, true, 'TableFilter instance');
deepEqual(tf.getFilterableRowsNb(), 7, 'Initial number of filterable rows');
deepEqual(tf.getValidRowsNb(), 0, 'Initial number of valid rows');
notEqual(rowsCounter, null, 'RowsCounter instanciated');
deepEqual(rowsCounter.label.innerHTML, '7', 'Initial rows count');
});
module('DOM changes');
test('Can filter after row is removed', function() {
// setup
tf.clearFilters();
tf.dom().deleteRow(-1);
// act
tf.filter();
// assert
deepEqual(tf.getFilterableRowsNb(), 6,
'Number of filterable rows after row is removed');
deepEqual(tf.getValidRowsNb(), 6,
'Number of valid rows after row is removed');
deepEqual(rowsCounter.label.innerHTML, '6',
'Rows count after row is removed');
});
test('Can filter after row is added', function() {
// setup
tf.clearFilters();
tf.dom().tBodies[0].appendChild(rowToAdd);
// act
tf.filter();
// assert
deepEqual(tf.getFilterableRowsNb(), 7,
'Number of filterable rows after row is added');
deepEqual(tf.getValidRowsNb(), 7,
'Number of valid rows after row is added');
deepEqual(rowsCounter.label.innerHTML, '7',
'Rows count after row is added');
});
test('Can filter the added row', function() {
// setup
tf.clearFilters();
tf.setFilterValue(0, 'Adelaide');
tf.setFilterValue(1, 'Brisbane');
// act
tf.filter();
// assert
deepEqual(tf.getFilterableRowsNb(), 7,
'Number of filterable rows after row is added');
deepEqual(tf.getValidRowsNb(), 1,
'Number of valid rows after row is added');
deepEqual(rowsCounter.label.innerHTML, '1',
'Rows count after row is added');
});
test('can destroy TableFilter', function() {
tf.clearFilters();
tf.destroy();
deepEqual(tf.isInitialized(), false, 'tf instance destroyed');
});
module('DOM changes with paging');
test('Sanity checks', function() {
// setup
tf1.init();
var rowsCounter = tf1.feature('rowsCounter');
// assert
deepEqual(tf1 instanceof TableFilter, true, 'TableFilter instance');
deepEqual(tf1.paging, true, 'Paging is enabled');
deepEqual(tf1.getFilterableRowsNb(), 7,
'Initial number of filterable rows');
deepEqual(tf1.getValidRowsNb(), 7, 'Initial number of valid rows');
notEqual(rowsCounter, null, 'RowsCounter instanciated');
deepEqual(rowsCounter.label.innerHTML, '1-3 / 7',
'Initial rows count');
});
test('Can filter and change a page after row is removed', function() {
// setup
var paging = tf1.feature('paging');
var rowsCounter = tf1.feature('rowsCounter');
tf1.clearFilters();
tf1.dom().deleteRow(-1);
// act
tf1.filter();
paging.setPage(2);
// assert
deepEqual(tf1.getFilterableRowsNb(), 6,
'Number of filterable rows after row is removed');
deepEqual(tf1.getValidRowsNb(), 6,
'Number of valid rows after row is removed');
deepEqual(rowsCounter.label.innerHTML, '4-6 / 6',
'Rows count after row is removed');
});
test('Can filter and change page after row is added', function() {
// setup
var paging = tf1.feature('paging');
var rowsCounter = tf1.feature('rowsCounter');
tf1.clearFilters();
tf1.dom().tBodies[0].appendChild(rowToAdd);
// act
tf1.filter();
paging.setPage(3);
// assert
deepEqual(tf1.getFilterableRowsNb(), 7,
'Number of filterable rows after row is added');
deepEqual(tf1.getValidRowsNb(), 7,
'Number of valid rows after row is added');
deepEqual(rowsCounter.label.innerHTML, '7-7 / 7',
'Rows count after row is added');
});
test('Can filter the added row with paging', function() {
// setup
var paging = tf1.feature('paging');
var rowsCounter = tf1.feature('rowsCounter');
tf1.setFilterValue(0, 'Adelaide');
tf1.setFilterValue(1, 'Brisbane');
// act
paging.setPage(0);
tf1.filter();
// assert
deepEqual(tf1.getFilterableRowsNb(), 7,
'Number of filterable rows after row is added');
deepEqual(tf1.getValidRowsNb(), 1,
'Number of valid rows after row is added');
deepEqual(rowsCounter.label.innerHTML, '1-1 / 1',
'Rows count after row is added');
});
test('can destroy TableFilter DOM elements', function() {
tf1.destroy();
deepEqual(tf1.isInitialized(), false, 'tf1 instance destroyed');
});