diff --git a/src/ui/public/vis/request_handlers/courier.js b/src/ui/public/vis/request_handlers/courier.js index 85835cbd22b9..ca03bb0cec87 100644 --- a/src/ui/public/vis/request_handlers/courier.js +++ b/src/ui/public/vis/request_handlers/courier.js @@ -71,7 +71,7 @@ const CourierRequestHandlerProvider = function (Private, courier, timefilter) { // Add the explicit passed timeRange as a filter to the requestSearchSource. requestSearchSource.filter(() => { - return timefilter.get(searchSource.index(), timeRange); + return timefilter.get(searchSource.get('index'), timeRange); }); removeSearchSourceParentTimefilter(requestSearchSource); diff --git a/test/functional/apps/visualize/_linked_saved_searches.js b/test/functional/apps/visualize/_linked_saved_searches.js new file mode 100644 index 000000000000..019d7077169c --- /dev/null +++ b/test/functional/apps/visualize/_linked_saved_searches.js @@ -0,0 +1,66 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import expect from 'expect.js'; + +export default function ({ getPageObjects, getService }) { + const retry = getService('retry'); + const PageObjects = getPageObjects(['common', 'discover', 'visualize', 'header']); + + // Blocked by: https://github.com/elastic/kibana/issues/19750 + describe.skip('visualize app', function describeIndexTests() { + const fromTime = '2015-09-19 06:31:44.000'; + const toTime = '2015-09-23 18:31:44.000'; + + describe('linked saved searched', () => { + + const savedSearchName = 'vis_saved_search'; + + before(async () => { + await PageObjects.common.navigateToUrl('discover', ''); + await PageObjects.discover.saveSearch(savedSearchName); + }); + + it('should create a visualization from a saved search', async () => { + retry.try(async () => { + // Sometimes navigation to the page fails, so we have this in a retry + await PageObjects.common.navigateToUrl('visualize', 'new'); + await PageObjects.visualize.waitForVisualizationSelectPage(); + }); + await PageObjects.visualize.clickDataTable(); + await PageObjects.visualize.clickSavedSearch(savedSearchName); + await PageObjects.header.setAbsoluteRange(fromTime, toTime); + await PageObjects.header.waitUntilLoadingHasFinished(); + const data = await PageObjects.visualize.getDataTableData(); + expect(data.trim()).to.be('14,004'); + }); + + it('should respect the time filter when linked to a saved search', async () => { + await PageObjects.header.setAbsoluteRange('2015-09-19 06:31:44.000', '2015-09-21 10:00:00.000'); + await PageObjects.header.waitUntilLoadingHasFinished(); + const data = await PageObjects.visualize.getDataTableData(); + expect(data.trim()).to.be('6,086'); + }); + }); + + after(async () => { + await PageObjects.header.setAbsoluteRange(fromTime, toTime); + }); + }); +} diff --git a/test/functional/apps/visualize/index.js b/test/functional/apps/visualize/index.js index ca6edba9b8bf..60dde1880615 100644 --- a/test/functional/apps/visualize/index.js +++ b/test/functional/apps/visualize/index.js @@ -53,5 +53,6 @@ export default function ({ getService, loadTestFile }) { loadTestFile(require.resolve('./_histogram_request_start')); loadTestFile(require.resolve('./_vega_chart')); loadTestFile(require.resolve('./_lab_mode')); + loadTestFile(require.resolve('./_linked_saved_searches.js')); }); } diff --git a/test/functional/page_objects/visualize_page.js b/test/functional/page_objects/visualize_page.js index 8fb5f3672383..82f036c361a1 100644 --- a/test/functional/page_objects/visualize_page.js +++ b/test/functional/page_objects/visualize_page.js @@ -375,6 +375,11 @@ export function VisualizePageProvider({ getService, getPageObjects }) { await PageObjects.header.waitUntilLoadingHasFinished(); } + async clickSavedSearch(savedSearchName) { + await find.clickByPartialLinkText(savedSearchName); + await PageObjects.header.waitUntilLoadingHasFinished(); + } + async setValue(newValue) { await find.clickByCssSelector('button[ng-click="numberListCntr.add()"]', defaultFindTimeout * 2); const input = await find.byCssSelector('input[ng-model="numberListCntr.getList()[$index]"]');