diff --git a/src/ui/public/filter_bar/filter_bar.html b/src/ui/public/filter_bar/filter_bar.html index 30222bfa1977a..5cd239781d192 100644 --- a/src/ui/public/filter_bar/filter_bar.html +++ b/src/ui/public/filter_bar/filter_bar.html @@ -9,7 +9,7 @@
  • Change time to: {{changeTimeFilter.meta.value}}
  • - diff --git a/src/ui/public/vis/response_handlers/legacy.js b/src/ui/public/vis/response_handlers/legacy.js index 2bcb2f1f1052f..c91d562f1dc72 100644 --- a/src/ui/public/vis/response_handlers/legacy.js +++ b/src/ui/public/vis/response_handlers/legacy.js @@ -70,6 +70,11 @@ const LegacyResponseHandlerProvider = function () { } let previousSplitAgg = new AggConfigResult(splitAgg, null, splitValue, splitValue); + previousSplitAgg.rawData = { + table: table, + column: splitColumnIndex, + row: rowIndex, + }; const tableIndex = splitMap[splitValue]; const newRow = _.map(converted.tables[tableIndex].tables[0].columns, column => { const value = row[column.id]; diff --git a/test/functional/apps/visualize/_pie_chart.js b/test/functional/apps/visualize/_pie_chart.js index e53f89d9d01e4..105d977ada0de 100644 --- a/test/functional/apps/visualize/_pie_chart.js +++ b/test/functional/apps/visualize/_pie_chart.js @@ -274,5 +274,77 @@ export default function ({ getService, getPageObjects }) { expect(legends).to.eql(expectedLegends); }); }); + + describe('split chart', () => { + before(async () => { + await PageObjects.visualize.navigateToNewVisualization(); + await PageObjects.visualize.clickPieChart(); + await PageObjects.visualize.clickNewSearch(); + log.debug('Set absolute time range from \"' + fromTime + '\" to \"' + toTime + '\"'); + await PageObjects.header.setAbsoluteRange(fromTime, toTime); + log.debug('select bucket Split Slices'); + await PageObjects.visualize.clickBucket('Split Chart'); + await PageObjects.visualize.selectAggregation('Terms'); + await PageObjects.visualize.selectField('machine.os.raw'); + await PageObjects.visualize.toggleAggregationEditor(2); + log.debug('Add a new series'); + await PageObjects.visualize.clickAddBucket(); + log.debug('select bucket Split Slices'); + await PageObjects.visualize.clickBucket('Split Slices'); + await PageObjects.visualize.selectAggregation('Terms'); + await PageObjects.visualize.selectField('geo.src'); + await PageObjects.visualize.clickGo(); + await PageObjects.visualize.waitForVisualization(); + }); + + it ('shows correct split chart', async () => { + const expectedTableData = [ + [ 'win 8', '2,904', 'CN', '560' ], + [ 'win 8', '2,904', 'IN', '489' ], + [ 'win 8', '2,904', 'US', '223' ], + [ 'win 8', '2,904', 'ID', '100' ], + [ 'win 8', '2,904', 'BR', '89' ], + [ 'win xp', '2,858', 'CN', '526' ], + [ 'win xp', '2,858', 'IN', '467' ], + [ 'win xp', '2,858', 'US', '250' ], + [ 'win xp', '2,858', 'ID', '98' ], + [ 'win xp', '2,858', 'BR', '84' ], + [ 'win 7', '2,814', 'CN', '537' ], + [ 'win 7', '2,814', 'IN', '460' ], + [ 'win 7', '2,814', 'US', '260' ], + [ 'win 7', '2,814', 'ID', '102' ], + [ 'win 7', '2,814', 'BR', '74' ], + [ 'ios', '2,784', 'IN', '494' ], + [ 'ios', '2,784', 'CN', '478' ], + [ 'ios', '2,784', 'US', '222' ], + [ 'ios', '2,784', 'ID', '96' ], + [ 'ios', '2,784', 'BR', '84' ], + [ 'osx', '1,322', 'IN', '242' ], + [ 'osx', '1,322', 'CN', '228' ], + [ 'osx', '1,322', 'US', '130' ], + [ 'osx', '1,322', 'ID', '56' ], + [ 'osx', '1,322', 'BR', '30' ] + ]; + await PageObjects.visualize.openInspector(); + await PageObjects.visualize.setInspectorTablePageSize(50); + const data = await PageObjects.visualize.getInspectorTableData(); + await PageObjects.visualize.closeInspector(); + log.debug(data); + expect(data).to.eql(expectedTableData); + }); + + it ('correctly applies filter', async () => { + const expectedTableData = [[ 'win 8', '560', 'CN', '560' ]]; + await PageObjects.visualize.filterLegend('CN'); + await PageObjects.visualize.applyFilters(); + await PageObjects.header.waitUntilLoadingHasFinished(); + await PageObjects.visualize.openInspector(); + await PageObjects.visualize.setInspectorTablePageSize(50); + const data = await PageObjects.visualize.getInspectorTableData(); + await PageObjects.visualize.closeInspector(); + log.debug(data); + expect(data).to.eql(expectedTableData); + }); + }); }); } diff --git a/test/functional/page_objects/visualize_page.js b/test/functional/page_objects/visualize_page.js index aa7d25f91d4c7..73b88de9f8c99 100644 --- a/test/functional/page_objects/visualize_page.js +++ b/test/functional/page_objects/visualize_page.js @@ -420,6 +420,9 @@ export function VisualizePageProvider({ getService, getPageObjects }) { await PageObjects.common.sleep(500); } + async applyFilters() { + return await testSubjects.click('filterBarApplyFilters'); + } /** * Set the test for a filter aggregation. * @param {*} filterValue the string value of the filter