mirror of
https://github.com/koalyptus/TableFilter.git
synced 2024-06-29 10:50:51 +02:00
294 lines
6.7 KiB
JavaScript
294 lines
6.7 KiB
JavaScript
var tf = new TableFilter('demo', {
|
|
base_path: '../dist/tablefilter/',
|
|
col_types: [
|
|
null,
|
|
{ type: 'date', format: ['{dd}.{MM}.{yyyy|yy}'] },
|
|
{ type: 'date', format: ['{dd}.{months}.{yyyy}'] },
|
|
null,
|
|
null,
|
|
'formatted-number'
|
|
]
|
|
});
|
|
tf.init();
|
|
|
|
module('Sanity checks');
|
|
test('TableFilter object', function() {
|
|
deepEqual(tf instanceof TableFilter, true, 'TableFilter instantiated');
|
|
deepEqual(tf.id, 'demo', 'id check');
|
|
deepEqual(tf.filtersRowIndex, 0, 'Filters row index');
|
|
});
|
|
|
|
module('Issue 74');
|
|
test('can filter values in this format: 21.1.18 as string', function(){
|
|
tf.setFilterValue(0, '2');
|
|
tf.filter();
|
|
deepEqual(tf.getValidRows().length, 3, 'Expected number of matches');
|
|
});
|
|
test('can filter values in this format: 21.1.18 as date', function(){
|
|
tf.clearFilters();
|
|
tf.setFilterValue(1, '21.1.2005');
|
|
tf.filter();
|
|
deepEqual(tf.getValidRows().length, 1, 'Expected number of matches');
|
|
});
|
|
test('can filter values in this format: 21.1.18 as date with operator',
|
|
function(){
|
|
tf.clearFilters();
|
|
tf.setFilterValue(1, '>21.1.04');
|
|
tf.filter();
|
|
deepEqual(tf.getValidRows().length, 1, 'Expected number of matches');
|
|
}
|
|
);
|
|
|
|
module('Issue 72');
|
|
test('can filter values in this format: 21-Jul-2010 as date', function(){
|
|
tf.clearFilters();
|
|
tf.setFilterValue(2, '14-Mar-2009');
|
|
tf.filter();
|
|
deepEqual(tf.getValidRows().length, 1, 'Expected number of matches');
|
|
});
|
|
test('can filter values in this format: 21-Jul-2010 as date with operator',
|
|
function(){
|
|
tf.clearFilters();
|
|
tf.setFilterValue(2, '<21-Jul-2010');
|
|
tf.filter();
|
|
deepEqual(tf.getValidRows().length, 2, 'Expected number of matches');
|
|
}
|
|
);
|
|
|
|
module('Issue 217');
|
|
test('can filter columns with blank space separated values (1)', function(){
|
|
tf.clearFilters();
|
|
tf.setFilterValue(3, 'c');
|
|
tf.filter();
|
|
deepEqual(tf.getValidRows().length, 1, 'Expected number of matches');
|
|
});
|
|
test('can filter columns with blank space separated values (2)', function(){
|
|
tf.clearFilters();
|
|
tf.setFilterValue(3, 'xyz');
|
|
tf.filter();
|
|
deepEqual(tf.getValidRows().length, 3, 'Expected number of matches');
|
|
});
|
|
test('can filter columns with alpha numeric values (1)', function(){
|
|
tf.clearFilters();
|
|
tf.setFilterValue(4, '1');
|
|
tf.filter();
|
|
deepEqual(tf.getValidRows().length, 1, 'Expected number of matches');
|
|
});
|
|
test('can filter columns with alpha numeric values (2)', function(){
|
|
tf.clearFilters();
|
|
tf.setFilterValue(4, 'numeric');
|
|
tf.filter();
|
|
deepEqual(tf.getValidRows().length, 3, 'Expected number of matches');
|
|
});
|
|
test('can filter numeric value (6)', function(){
|
|
// setup
|
|
tf.clearFilters();
|
|
|
|
// act
|
|
tf.setFilterValue(5, 2767);
|
|
tf.filter();
|
|
|
|
// assert
|
|
deepEqual(tf.getFilteredDataCol(5), ['2767'], 'Expected match');
|
|
});
|
|
test('Should return no results for an unmatched term (6)', function(){
|
|
// setup
|
|
tf.clearFilters();
|
|
|
|
// act
|
|
tf.setFilterValue(5, 'hello world');
|
|
tf.filter();
|
|
|
|
// assert
|
|
deepEqual(tf.getValidRows().length, 0, 'No matches');
|
|
});
|
|
|
|
|
|
module('Filtering data types');
|
|
module('Date types');
|
|
test('can filter date with `<` operator', function(){
|
|
// setup
|
|
tf.clearFilters();
|
|
|
|
// act
|
|
tf.setFilterValue(2, '< 14-Mar-2009');
|
|
tf.filter();
|
|
|
|
// assert
|
|
deepEqual(
|
|
tf.getFilteredDataCol(2),
|
|
['23-Oct-2007'],
|
|
'Expected match'
|
|
);
|
|
});
|
|
|
|
test('can filter date with `<=` operator', function(){
|
|
// setup
|
|
tf.clearFilters();
|
|
|
|
// act
|
|
tf.setFilterValue(2, '<= 14-Mar-2009');
|
|
tf.filter();
|
|
|
|
// assert
|
|
deepEqual(
|
|
tf.getFilteredDataCol(2),
|
|
['23-Oct-2007', '14-Mar-2009'],
|
|
'Expected match'
|
|
);
|
|
});
|
|
|
|
test('can filter date with `>` operator', function(){
|
|
// setup
|
|
tf.clearFilters();
|
|
|
|
// act
|
|
tf.setFilterValue(2, '> 14/03/2009');
|
|
tf.filter();
|
|
|
|
// assert
|
|
deepEqual(
|
|
tf.getFilteredDataCol(2),
|
|
['3-Jan-2014'],
|
|
'Expected match'
|
|
);
|
|
});
|
|
|
|
test('can filter date with `>` operator', function(){
|
|
// setup
|
|
tf.clearFilters();
|
|
|
|
// act
|
|
tf.setFilterValue(2, '>= 14/03/2009');
|
|
tf.filter();
|
|
|
|
// assert
|
|
deepEqual(
|
|
tf.getFilteredDataCol(2),
|
|
['3-Jan-2014', '14-Mar-2009'],
|
|
'Expected match'
|
|
);
|
|
});
|
|
|
|
test('can filter date with `!` operator', function(){
|
|
// setup
|
|
tf.clearFilters();
|
|
|
|
// act
|
|
tf.setFilterValue(2, '! 14-Mar-2009');
|
|
tf.filter();
|
|
|
|
// assert
|
|
deepEqual(
|
|
tf.getFilteredDataCol(2),
|
|
['3-Jan-2014', '23-Oct-2007'],
|
|
'Expected match'
|
|
);
|
|
});
|
|
|
|
test('can filter date with `=` operator', function(){
|
|
// setup
|
|
tf.clearFilters();
|
|
|
|
// act
|
|
tf.setFilterValue(2, '= 14-Mar-2009');
|
|
tf.filter();
|
|
|
|
// assert
|
|
deepEqual(
|
|
tf.getFilteredDataCol(2),
|
|
['14-Mar-2009'],
|
|
'Expected match'
|
|
);
|
|
});
|
|
|
|
test('can filter date with `=` operator and different date format', function(){
|
|
// setup
|
|
tf.clearFilters();
|
|
|
|
// act
|
|
tf.setFilterValue(2, '= 14.03.2009');
|
|
tf.filter();
|
|
|
|
// assert
|
|
deepEqual(
|
|
tf.getFilteredDataCol(2),
|
|
['14-Mar-2009'],
|
|
'Expected match'
|
|
);
|
|
});
|
|
|
|
test('can filter date with different date format', function(){
|
|
// setup
|
|
tf.clearFilters();
|
|
|
|
// act
|
|
tf.setFilterValue(2, '2007-10-23');
|
|
tf.filter();
|
|
|
|
// assert
|
|
deepEqual(
|
|
tf.getFilteredDataCol(2),
|
|
['23-Oct-2007'],
|
|
'Expected match'
|
|
);
|
|
});
|
|
|
|
test('can filter empty value with [empty] operator', function(){
|
|
// setup
|
|
var cellValue = tf.getCellValue(tf.dom().rows[2].cells[2]);
|
|
tf.clearFilters();
|
|
tf.dom().rows[2].cells[2].innerHTML = '';
|
|
|
|
// act
|
|
tf.setFilterValue(2, '[empty]');
|
|
tf.filter();
|
|
|
|
// assert
|
|
deepEqual(
|
|
tf.getFilteredDataCol(2),
|
|
[''],
|
|
'Expected match'
|
|
);
|
|
|
|
tf.dom().rows[2].cells[2].innerHTML = cellValue;
|
|
});
|
|
|
|
test('can filter empty value with [nonempty] operator', function(){
|
|
// setup
|
|
tf.clearFilters();
|
|
|
|
// act
|
|
tf.setFilterValue(2, '[nonempty]');
|
|
tf.filter();
|
|
|
|
// assert
|
|
deepEqual(
|
|
tf.getFilteredDataCol(2),
|
|
['3-Jan-2014', '23-Oct-2007', '14-Mar-2009'],
|
|
'Expected match'
|
|
);
|
|
});
|
|
|
|
test('can filter date with date range with operators', function(){
|
|
// setup
|
|
tf.clearFilters();
|
|
|
|
// act
|
|
tf.setFilterValue(2, '<3-jan-2014 && >=23-Oct-2007');
|
|
tf.filter();
|
|
|
|
// assert
|
|
deepEqual(
|
|
tf.getFilteredDataCol(2),
|
|
['23-Oct-2007', '14-Mar-2009'],
|
|
'Expected match'
|
|
);
|
|
});
|
|
|
|
module('Tear-down');
|
|
test('can destroy TableFilter DOM elements', function() {
|
|
tf.destroy();
|
|
deepEqual(tf.isInitialized(), false, 'Filters removed');
|
|
});
|