Fix view saved search through a visualization (#73040)

This commit is contained in:
Daniil Suleiman 2020-07-23 18:00:52 +03:00 committed by GitHub
parent 15ccdc36ca
commit 2d9eaf013b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 2 deletions

View file

@ -65,7 +65,7 @@ export function LinkedSearch({ savedSearch, eventEmitter }: LinkedSearchProps) {
}, [eventEmitter]);
const onClickViewInDiscover = useCallback(() => {
application.navigateToApp('discover', {
path: `#/${savedSearch.id}`,
path: `#/view/${savedSearch.id}`,
});
}, [application, savedSearch.id]);
@ -128,7 +128,12 @@ export function LinkedSearch({ savedSearch, eventEmitter }: LinkedSearchProps) {
<div style={{ width: 260 }}>
<EuiText size="s">
<p>
<EuiButtonEmpty flush="left" onClick={onClickViewInDiscover} size="xs">
<EuiButtonEmpty
data-test-subj="viewSavedSearch"
flush="left"
onClick={onClickViewInDiscover}
size="xs"
>
<FormattedMessage
id="visDefaultEditor.sidebar.savedSearch.goToDiscoverButtonText"
defaultMessage="View this search in Discover"

View file

@ -21,8 +21,10 @@ import expect from '@kbn/expect';
import { FtrProviderContext } from '../../ftr_provider_context';
// eslint-disable-next-line import/no-default-export
export default function ({ getService, getPageObjects }: FtrProviderContext) {
const browser = getService('browser');
const filterBar = getService('filterBar');
const retry = getService('retry');
const testSubjects = getService('testSubjects');
const PageObjects = getPageObjects([
'common',
'discover',
@ -35,12 +37,14 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
describe('saved search visualizations from visualize app', function describeIndexTests() {
describe('linked saved searched', () => {
const savedSearchName = 'vis_saved_search';
let discoverSavedSearchUrlPath: string;
before(async () => {
await PageObjects.common.navigateToApp('discover');
await filterBar.addFilter('extension.raw', 'is', 'jpg');
await PageObjects.header.waitUntilLoadingHasFinished();
await PageObjects.discover.saveSearch(savedSearchName);
discoverSavedSearchUrlPath = (await browser.getCurrentUrl()).split('?')[0];
});
it('should create a visualization from a saved search', async () => {
@ -54,6 +58,24 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
});
});
it('should have a valid link to the saved search from the visualization', async () => {
await testSubjects.click('showUnlinkSavedSearchPopover');
await testSubjects.click('viewSavedSearch');
await PageObjects.header.waitUntilLoadingHasFinished();
await retry.waitFor('wait discover load its breadcrumbs', async () => {
const discoverBreadcrumb = await PageObjects.discover.getCurrentQueryName();
return discoverBreadcrumb === savedSearchName;
});
const discoverURLPath = (await browser.getCurrentUrl()).split('?')[0];
expect(discoverURLPath).to.equal(discoverSavedSearchUrlPath);
// go back to visualize
await browser.goBack();
await PageObjects.header.waitUntilLoadingHasFinished();
});
it('should respect the time filter when linked to a saved search', async () => {
await PageObjects.timePicker.setAbsoluteRange(
'Sep 19, 2015 @ 06:31:44.000',