[#264,bugfix,filtereditor][s]: track down and fix bug with addFilter (and hence filtereditor) - fixes #264.

* Quite a subtle bug due to the fact that we were not doing a deep copy on the filter template in addFilter
This commit is contained in:
Rufus Pollock
2012-11-08 20:35:03 +00:00
parent d479603ca7
commit ede211646a
3 changed files with 37 additions and 2 deletions

View File

@@ -320,6 +320,9 @@ test('Query.addFilter', function () {
};
deepEqual(query.get('filters')[0], exp);
query.addFilter({type: 'term', field: 'abc'});
deepEqual(query.get('filters')[0], exp);
query.addFilter({type: 'geo_distance', field: 'xyz'});
var exp = {
distance: 10,
@@ -331,7 +334,7 @@ test('Query.addFilter', function () {
field: 'xyz',
type: 'geo_distance'
};
deepEqual(exp, query.get('filters')[1]);
deepEqual(exp, query.get('filters')[2]);
});
})(this.jQuery);

View File

@@ -40,6 +40,7 @@ test('basics', function () {
$editForm.find('.filter-range input').first().val('2');
$editForm.find('.filter-range input').last().val('4');
$editForm.submit();
equal(dataset.queryState.attributes.filters[0].term, 'UK');
equal(dataset.queryState.attributes.filters[1].start, 2);
equal(dataset.records.length, 2);
@@ -59,6 +60,33 @@ test('basics', function () {
view.remove();
});
test('add 2 filters of same type', function () {
var dataset = Fixture.getDataset();
var view = new recline.View.FilterEditor({
model: dataset
});
$('.fixtures').append(view.el);
// add 2 term filters
var $addForm = view.el.find('form.js-add');
view.el.find('.js-add-filter').click();
$addForm.find('select.fields').val('country');
$addForm.submit();
var $addForm = view.el.find('form.js-add');
view.el.find('.js-add-filter').click();
$addForm.find('select.fields').val('id');
$addForm.submit();
var fields = [];
view.el.find('form.js-edit .filter-term input').each(function(idx, item) {
fields.push($(item).attr('data-filter-field'));
});
deepEqual(fields, ['country', 'id']);
view.remove();
});
test('geo_distance', function () {
var dataset = Fixture.getDataset();
var view = new recline.View.FilterEditor({