Fix fieldformatter calls in pipeline helper and add functional test for range aggs (#29842)

This commit is contained in:
Joe Reuter 2019-02-04 11:25:06 +01:00 committed by GitHub
parent daf19f8a5a
commit 93fef68647
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 10 deletions

View file

@ -46,26 +46,23 @@ export const getFormat = (mapping: any) => {
if (!mapping) {
return defaultFormat;
}
let { id } = mapping;
const { id } = mapping;
if (id === 'range') {
id = mapping.params.id;
const RangeFormat = FieldFormat.from((range: any) => {
const format = getFieldFormat(id, mapping.params).convert;
const format = getFieldFormat(id, mapping.params);
return i18n.translate('common.ui.aggTypes.buckets.ranges.rangesFormatMessage', {
defaultMessage: '{from} to {to}',
values: {
from: format(range.gte),
to: format(range.lt),
from: format.convert(range.gte),
to: format.convert(range.lt),
},
});
});
return new RangeFormat();
} else if (id === 'terms') {
id = mapping.params.id;
return {
getConverterFor: (type: string) => {
const format = getFieldFormat(id, mapping.params).convert;
const format = getFieldFormat(mapping.params.id, mapping.params);
return (val: string) => {
if (val === '__other__') {
return mapping.params.otherBucketLabel;
@ -78,11 +75,11 @@ export const getFormat = (mapping: any) => {
pathname: window.location.pathname,
basePath: chrome.getBasePath(),
};
return format(val, undefined, undefined, parsedUrl);
return format.convert(val, undefined, undefined, parsedUrl);
};
},
convert: (val: string, type: string) => {
const format = getFieldFormat(id, mapping.params);
const format = getFieldFormat(mapping.params.id, mapping.params);
if (val === '__other__') {
return mapping.params.otherBucketLabel;
}

View file

@ -188,6 +188,23 @@ export default function ({ getService, getPageObjects }) {
expect(data.length).to.be.greaterThan(0);
});
it('should show correct data for a data table with range agg', async () => {
await PageObjects.visualize.navigateToNewVisualization();
await PageObjects.visualize.clickDataTable();
await PageObjects.visualize.clickNewSearch();
await PageObjects.header.setAbsoluteRange(fromTime, toTime);
await PageObjects.visualize.clickBucket('Split Rows');
await PageObjects.visualize.selectAggregation('Range');
await PageObjects.visualize.selectField('bytes');
await PageObjects.visualize.clickGo();
const data = await PageObjects.visualize.getTableVisData();
expect(data.trim().split('\n')).to.be.eql([
'0 to 1000', '1,351',
'1000 to 2000', '737',
]);
});
describe('otherBucket', () => {
before(async () => {
await PageObjects.visualize.navigateToNewVisualization();