mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
[Discover] Fix "Unsaved changes" badge for ES|QL (#174645)
## Summary This PR fixes a bug where "Unsaved changes" badge would appear after page refresh for an ES|QL saved search. To reproduce on main: - Create a new ES|QL saved search - Reload the page => Notice that the badge appeared With this PR the issue should be resolved. It was caused by the fact that adhoc data view id might change internally. ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios
This commit is contained in:
parent
f8a54a5c82
commit
900ab217a2
2 changed files with 33 additions and 1 deletions
|
@ -318,7 +318,9 @@ function getSearchSourceFieldValueForComparison(
|
|||
searchSourceFieldName: keyof SearchSourceFields
|
||||
) {
|
||||
if (searchSourceFieldName === 'index') {
|
||||
return searchSource.getField('index')?.id;
|
||||
const query = searchSource.getField('query');
|
||||
// ad-hoc data view id can change, so we rather compare the ES|QL query itself here
|
||||
return query && 'esql' in query ? query.esql : searchSource.getField('index')?.id;
|
||||
}
|
||||
|
||||
if (searchSourceFieldName === 'filter') {
|
||||
|
|
|
@ -11,6 +11,7 @@ import { FtrProviderContext } from '../ftr_provider_context';
|
|||
|
||||
const SAVED_SEARCH_NAME = 'test saved search';
|
||||
const SAVED_SEARCH_WITH_FILTERS_NAME = 'test saved search with filters';
|
||||
const SAVED_SEARCH_ESQL = 'test saved search ES|QL';
|
||||
|
||||
export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
||||
const esArchiver = getService('esArchiver');
|
||||
|
@ -18,6 +19,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
const testSubjects = getService('testSubjects');
|
||||
const dataGrid = getService('dataGrid');
|
||||
const filterBar = getService('filterBar');
|
||||
const monacoEditor = getService('monacoEditor');
|
||||
const browser = getService('browser');
|
||||
const PageObjects = getPageObjects([
|
||||
'settings',
|
||||
'common',
|
||||
|
@ -194,5 +197,32 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
expect(await filterBar.isFilterNegated('bytes')).to.be(false);
|
||||
expect(await PageObjects.discover.getHitCount()).to.be('1,373');
|
||||
});
|
||||
|
||||
it('should not show a badge after loading an ES|QL saved search, only after changes', async () => {
|
||||
await PageObjects.discover.selectTextBaseLang();
|
||||
|
||||
await monacoEditor.setCodeEditorValue('from logstash-* | limit 10');
|
||||
await testSubjects.click('querySubmitButton');
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.discover.waitUntilSearchingHasFinished();
|
||||
|
||||
await PageObjects.discover.saveSearch(SAVED_SEARCH_ESQL);
|
||||
await PageObjects.discover.waitUntilSearchingHasFinished();
|
||||
|
||||
await testSubjects.missingOrFail('unsavedChangesBadge');
|
||||
|
||||
await browser.refresh();
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.discover.waitUntilSearchingHasFinished();
|
||||
|
||||
await testSubjects.missingOrFail('unsavedChangesBadge');
|
||||
|
||||
await monacoEditor.setCodeEditorValue('from logstash-* | limit 100');
|
||||
await testSubjects.click('querySubmitButton');
|
||||
await PageObjects.header.waitUntilLoadingHasFinished();
|
||||
await PageObjects.discover.waitUntilSearchingHasFinished();
|
||||
|
||||
await testSubjects.existOrFail('unsavedChangesBadge');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue