diff --git a/src/plugins/unified_search/public/dataview_picker/dataview_list.tsx b/src/plugins/unified_search/public/dataview_picker/dataview_list.tsx index 153cbdd3cf3f2..58d81c06563ce 100644 --- a/src/plugins/unified_search/public/dataview_picker/dataview_list.tsx +++ b/src/plugins/unified_search/public/dataview_picker/dataview_list.tsx @@ -56,6 +56,7 @@ export function DataViewsList({ placeholder: i18n.translate('unifiedSearch.query.queryBar.indexPattern.findDataView', { defaultMessage: 'Find a data view', }), + 'data-test-subj': 'indexPattern-switcher--input', ...(selectableProps ? selectableProps.searchProps : undefined), }} > diff --git a/test/functional/page_objects/unified_search_page.ts b/test/functional/page_objects/unified_search_page.ts index b1bcd0662f77e..ad964383641d4 100644 --- a/test/functional/page_objects/unified_search_page.ts +++ b/test/functional/page_objects/unified_search_page.ts @@ -10,6 +10,7 @@ import { FtrService } from '../ftr_provider_context'; export class UnifiedSearchPageObject extends FtrService { private readonly browser = this.ctx.getService('browser'); + private readonly retry = this.ctx.getService('retry'); private readonly testSubjects = this.ctx.getService('testSubjects'); public async closeTour() { @@ -23,4 +24,17 @@ export class UnifiedSearchPageObject extends FtrService { await this.browser.setLocalStorageItem('data.newDataViewMenu', 'true'); await this.browser.refresh(); } + + public async switchDataView(switchButtonSelector: string, dataViewTitle: string) { + await this.testSubjects.click(switchButtonSelector); + + const indexPatternSwitcher = await this.testSubjects.find('indexPattern-switcher', 500); + await this.testSubjects.setValue('indexPattern-switcher--input', dataViewTitle); + await (await indexPatternSwitcher.findByCssSelector(`[title="${dataViewTitle}"]`)).click(); + + await this.retry.waitFor( + 'wait for updating switcher', + async () => (await this.testSubjects.getVisibleText(switchButtonSelector)) === dataViewTitle + ); + } } diff --git a/x-pack/test/functional/page_objects/lens_page.ts b/x-pack/test/functional/page_objects/lens_page.ts index ce293ea569822..030d39df8065a 100644 --- a/x-pack/test/functional/page_objects/lens_page.ts +++ b/x-pack/test/functional/page_objects/lens_page.ts @@ -841,18 +841,16 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont /** * Changes the index pattern in the data panel */ - async switchDataPanelIndexPattern(name: string) { - await testSubjects.click('lns-dataView-switch-link'); - await find.clickByCssSelector(`[title="${name}"]`); + async switchDataPanelIndexPattern(dataViewTitle: string) { + await PageObjects.unifiedSearch.switchDataView('lns-dataView-switch-link', dataViewTitle); await PageObjects.header.waitUntilLoadingHasFinished(); }, /** * Changes the index pattern for the first layer */ - async switchFirstLayerIndexPattern(name: string) { - await testSubjects.click('lns_layerIndexPatternLabel'); - await find.clickByCssSelector(`.lnsChangeIndexPatternPopover [title="${name}"]`); + async switchFirstLayerIndexPattern(dataViewTitle: string) { + await PageObjects.unifiedSearch.switchDataView('lns_layerIndexPatternLabel', dataViewTitle); await PageObjects.header.waitUntilLoadingHasFinished(); },