javascript-data-set
Version:
powerfull recordset class, supporting sorting, filtering, subsets, loading data from json, array and html markup
90 lines (61 loc) • 2.16 kB
text/coffeescript
# Dataset = require '../build/Dataset.coffee'
# Column = require '../build/Column.coffee'
describe 'Dataset Filter', =>
it "filters a single columns", =>
columns = ['col1', 'col2']
values = [
[1, 'a'],
[2, 'b'],
[3, 'c'],
]
d = new window.Francodacosta.DataSet.dataset(values, columns)
filter = window.Francodacosta.DataSet.Filter.Number.greaterThan()
d.addFilter('col1', filter, 2)
data = d.getData()
expect(data.length).toEqual(1)
expect(data[0].get('col1')).toEqual(3)
it "filters more than one column", =>
columns = ['col1', 'col2']
values = [
[1, 1],
[2, 1],
[3, 'c'],
]
d = new window.Francodacosta.DataSet.dataset(values, columns)
filter = window.Francodacosta.DataSet.Filter.Number.equal()
d.addFilter('col2', filter, 1)
d.addFilter('col1', filter, 2)
data = d.getData()
expect(data.length).toEqual(1)
expect(data[0].get('col1')).toEqual(2)
it "clears all filters", =>
columns = ['col1', 'col2']
values = [
[1, 'a'],
[2, 'b'],
[3, 'c'],
]
d = new window.Francodacosta.DataSet.dataset(values, columns)
filter = window.Francodacosta.DataSet.Filter.Number.greaterThan()
d.addFilter('col1', filter, 2)
data = d.getData()
expect(data.length).toEqual(1)
d.clearFilters()
data = d.getData()
expect(data.length).toEqual(3)
it "clears filter for column", =>
columns = ['col1', 'col2']
values = [
[1, 1],
[2, 1],
[3, 'c'],
]
d = new window.Francodacosta.DataSet.dataset(values, columns)
filter = window.Francodacosta.DataSet.Filter.Number.equal()
d.addFilter('col2', filter, 1)
d.addFilter('col1', filter, 2)
data = d.getData()
expect(data.length).toEqual(1)
d.clearFiltersForColumn('col1')
data = d.getData()
expect(data.length).toEqual(2)