[Discover] Allow user to generate a report after saving a modified saved search (#63623)

* Fix missing reset of initial state when saving saved searches

* Fix invalid setting of docTitle

* Add functional test
This commit is contained in:
Matthias Wilhelm 2020-04-20 20:36:09 +02:00 committed by GitHub
parent 86922e80a8
commit d69b1a0e39
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 2 deletions

View file

@ -57,7 +57,6 @@ const {
core,
chrome,
data,
docTitle,
history,
indexPatterns,
filterManager,
@ -214,6 +213,7 @@ function discoverController(
isAppStateDirty,
kbnUrlStateStorage,
getPreviousAppState,
resetInitialAppState,
} = getState({
defaultAppState: getStateDefaults(),
storeInSessionStorage: config.get('state:storeInSessionStorage'),
@ -373,6 +373,8 @@ function discoverController(
// If the save wasn't successful, put the original values back.
if (!response.id || response.error) {
savedSearch.title = currentTitle;
} else {
resetInitialAppState();
}
return response;
});
@ -758,7 +760,7 @@ function discoverController(
} else {
// Update defaults so that "reload saved query" functions correctly
setAppState(getStateDefaults());
docTitle.change(savedSearch.lastSavedTitle);
chrome.docTitle.change(savedSearch.lastSavedTitle);
}
}
});

View file

@ -24,6 +24,7 @@ export default function({ getService, getPageObjects }) {
const browser = getService('browser');
const log = getService('log');
const config = getService('config');
const filterBar = getService('filterBar');
const PageObjects = getPageObjects([
'reporting',
'common',
@ -161,7 +162,27 @@ export default function({ getService, getPageObjects }) {
expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null);
});
it('becomes available/not available when a saved search is created, changed and saved again', async () => {
// create new search, csv export is not available
await PageObjects.discover.clickNewSearchButton();
await PageObjects.reporting.openCsvReportingPanel();
expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true');
// save search, csv export is available
await PageObjects.discover.saveSearch('my search - expectEnabledGenerateReportButton 2');
await PageObjects.reporting.openCsvReportingPanel();
expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null);
// add filter, csv export is not available
await filterBar.addFilter('currency', 'is', 'EUR');
await PageObjects.reporting.openCsvReportingPanel();
expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true');
// save search again, csv export is available
await PageObjects.discover.saveSearch('my search - expectEnabledGenerateReportButton 2');
await PageObjects.reporting.openCsvReportingPanel();
expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null);
});
it('generates a report with data', async () => {
await PageObjects.discover.clickNewSearchButton();
await PageObjects.reporting.setTimepickerInDataRange();
await PageObjects.discover.saveSearch('my search - with data - expectReportCanBeCreated');
await PageObjects.reporting.openCsvReportingPanel();