mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
fix bug in filter manager, update test
This commit is contained in:
parent
4f945d690c
commit
e06c401c65
2 changed files with 38 additions and 21 deletions
|
@ -31,7 +31,7 @@ define(function (require) {
|
|||
if (existing) {
|
||||
if (existing.meta.negate !== negate) {
|
||||
// existing.meta.negate = negate;
|
||||
newFilters.invertFilter(existing);
|
||||
queryFilter.invertFilter(existing);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,18 +1,35 @@
|
|||
define(function (require) {
|
||||
var filterManager = require('components/filter_manager/filter_manager');
|
||||
var $state;
|
||||
var _ = require('lodash');
|
||||
var MockState = require('fixtures/mock_state');
|
||||
var filterManager;
|
||||
var appState;
|
||||
|
||||
describe('Filter Manager', function () {
|
||||
beforeEach(module('kibana'));
|
||||
|
||||
beforeEach(function () {
|
||||
$state = {
|
||||
filters: []
|
||||
};
|
||||
filterManager.init($state);
|
||||
|
||||
module('kibana/global_state', function ($provide) {
|
||||
$provide.service('getAppState', function () {
|
||||
return function () {
|
||||
return appState;
|
||||
};
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should have an init function that sets the state to be used', function () {
|
||||
expect(filterManager.init).to.be.a(Function);
|
||||
filterManager.init($state);
|
||||
expect(filterManager.$state).to.be($state);
|
||||
beforeEach(function () {
|
||||
inject(function (Private) {
|
||||
filterManager = Private(require('components/filter_manager/filter_manager'));
|
||||
appState = new MockState();
|
||||
appState.filters = [];
|
||||
|
||||
// mock queryFilter's invertFilter since it's used in the manager
|
||||
var queryFilter = Private(require('components/filter_bar/query_filter'));
|
||||
queryFilter.invertFilter = function (filter) {
|
||||
filter.meta.negate = !filter.meta.negate;
|
||||
};
|
||||
});
|
||||
});
|
||||
|
||||
it('should have an `add` function', function () {
|
||||
|
@ -20,33 +37,33 @@ define(function (require) {
|
|||
});
|
||||
|
||||
it('should add a filter', function () {
|
||||
expect($state.filters.length).to.be(0);
|
||||
expect(appState.filters.length).to.be(0);
|
||||
filterManager.add('myField', 1, '+', 'myIndex');
|
||||
expect($state.filters.length).to.be(1);
|
||||
expect(appState.filters.length).to.be(1);
|
||||
});
|
||||
|
||||
it('should add multiple filters if passed an array of values', function () {
|
||||
filterManager.add('myField', [1, 2, 3], '+', 'myIndex');
|
||||
expect($state.filters.length).to.be(3);
|
||||
expect(appState.filters.length).to.be(3);
|
||||
});
|
||||
|
||||
it('should add an exists filter if _exists_ is used as the field', function () {
|
||||
filterManager.add('_exists_', 'myField', '+', 'myIndex');
|
||||
expect($state.filters[0].exists).to.eql({field: 'myField'});
|
||||
expect(appState.filters[0].exists).to.eql({field: 'myField'});
|
||||
});
|
||||
|
||||
it('Should negate existing filter instead of added a conflicting filter', function () {
|
||||
filterManager.add('myField', 1, '+', 'myIndex');
|
||||
expect($state.filters.length).to.be(1);
|
||||
expect(appState.filters.length).to.be(1);
|
||||
filterManager.add('myField', 1, '-', 'myIndex');
|
||||
expect($state.filters.length).to.be(1);
|
||||
expect($state.filters[0].meta.negate).to.be(true);
|
||||
expect(appState.filters.length).to.be(1);
|
||||
expect(appState.filters[0].meta.negate).to.be(true);
|
||||
|
||||
filterManager.add('_exists_', 'myField', '+', 'myIndex');
|
||||
expect($state.filters.length).to.be(2);
|
||||
expect(appState.filters.length).to.be(2);
|
||||
filterManager.add('_exists_', 'myField', '-', 'myIndex');
|
||||
expect($state.filters.length).to.be(2);
|
||||
expect($state.filters[1].meta.negate).to.be(true);
|
||||
expect(appState.filters.length).to.be(2);
|
||||
expect(appState.filters[1].meta.negate).to.be(true);
|
||||
});
|
||||
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue