mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
Controls vis - safely handle case where value can not be extracted from Kibana filter (#22885) (#22900)
* handle case where value can not be extracted from Kibana filter * review feedback
This commit is contained in:
parent
c74da9cac9
commit
cf95d1d6b8
4 changed files with 43 additions and 3 deletions
|
@ -61,10 +61,17 @@ export class PhraseFilterManager extends FilterManager {
|
|||
return;
|
||||
}
|
||||
|
||||
return kbnFilters
|
||||
const values = kbnFilters
|
||||
.map((kbnFilter) => {
|
||||
return this._getValueFromFilter(kbnFilter);
|
||||
})
|
||||
.filter(value => value != null);
|
||||
|
||||
if (values.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
return values
|
||||
.reduce((accumulator, currentValue) => {
|
||||
return accumulator.concat(currentValue);
|
||||
}, [])
|
||||
|
|
|
@ -154,6 +154,22 @@ describe('PhraseFilterManager', function () {
|
|||
]);
|
||||
expect(filterManager.getValueFromFilterBar()).to.eql([{ value: 'ios', label: 'ios' }, { value: 'win xp', label: 'win xp' }]);
|
||||
});
|
||||
|
||||
test('should return undefined when filter value can not be extracted from Kibana filter', function () {
|
||||
filterManager.setMockFilters([
|
||||
{
|
||||
query: {
|
||||
match: {
|
||||
myFieldWhichIsNotField1: {
|
||||
query: 'ios',
|
||||
type: 'phrase'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]);
|
||||
expect(filterManager.getValueFromFilterBar()).to.eql(undefined);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
|
|
@ -69,14 +69,17 @@ export class RangeFilterManager extends FilterManager {
|
|||
return;
|
||||
}
|
||||
|
||||
let range = null;
|
||||
let range;
|
||||
if (_.has(kbnFilters[0], 'script')) {
|
||||
range = _.get(kbnFilters[0], 'script.script.params');
|
||||
} else {
|
||||
range = _.get(kbnFilters[0], ['range', this.fieldName]);
|
||||
}
|
||||
|
||||
return fromRange(range);
|
||||
if (!range) {
|
||||
return;
|
||||
}
|
||||
|
||||
return fromRange(range);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -91,6 +91,20 @@ describe('RangeFilterManager', function () {
|
|||
expect(value).to.have.property('max');
|
||||
expect(value.max).to.be(3);
|
||||
});
|
||||
|
||||
test('should return undefined when filter value can not be extracted from Kibana filter', function () {
|
||||
filterManager.setMockFilters([
|
||||
{
|
||||
range: {
|
||||
myFieldWhichIsNotField1: {
|
||||
gte: 1,
|
||||
lte: 3
|
||||
}
|
||||
}
|
||||
}
|
||||
]);
|
||||
expect(filterManager.getValueFromFilterBar()).to.eql(undefined);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue