mirror of
https://github.com/koalyptus/TableFilter.git
synced 2024-06-16 12:45:49 +02:00
167 lines
4.8 KiB
JavaScript
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');
|
|
});
|