Skip to content

Commit

Permalink
[Fix] Saved Search Integ Test Update: update saving a new saved searc…
Browse files Browse the repository at this point in the history
…h test spec (opensearch-project#9200)

* wait for the page to be loaded before loading a saved search
* when loading a saved search and saving it as a new saved search, use a different name

Signed-off-by: Justin Kim <jungkm@amazon.com>

---------

Signed-off-by: Justin Kim <jungkm@amazon.com>
  • Loading branch information
angle943 authored and ananzh committed Jan 23, 2025
1 parent a2ae0ba commit e417aa0
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ export const runSavedSearchTests = () => {
cy.setIndexPatternAsDataset(INDEX_PATTERN_WITH_TIME, datasourceName);

cy.setQueryLanguage(startingLanguage);
cy.loadSaveSearch(config.saveName, false);
cy.loadSaveSearch(config.saveName);
setDatePickerDatesAndSearchIfRelevant(config.language);
verifyDiscoverPageState(config);
});
Expand Down
18 changes: 3 additions & 15 deletions cypress/utils/apps/data_explorer/commands.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,31 +30,19 @@ Cypress.Commands.add('saveSearch', (name, saveAsNew = false) => {

cy.getElementByTestId('confirmSaveSavedObjectButton').click({ force: true });

// if saving as new save search, you need to click confirm twice;
if (saveAsNew) {
cy.getElementByTestId('confirmSaveSavedObjectButton').click();
}

// Wait for page to load
cy.getElementByTestId('euiToastHeader').contains(/was saved/);
});

Cypress.Commands.add('loadSaveSearch', (name, selectDuplicate = false) => {
Cypress.Commands.add('loadSaveSearch', (name) => {
const opts = {
log: false,
force: true,
};

cy.getElementByTestId('discoverOpenButton', opts).click(opts);
if (selectDuplicate) {
cy.getElementByTestId(`savedObjectTitle${toTestId(name)}`)
.last()
.click();
} else {
cy.getElementByTestId(`savedObjectTitle${toTestId(name)}`)
.first()
.click();
}

cy.getElementByTestId(`savedObjectTitle${toTestId(name)}`).click();

cy.get('h1').contains(name).should('be.visible');
});
Expand Down
2 changes: 1 addition & 1 deletion cypress/utils/apps/data_explorer/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ declare namespace Cypress {
interface Chainable<Subject> {
verifyTimeConfig(start: string, end: string): Chainable<any>;
saveSearch(name: string, saveAsNew?: boolean): Chainable<any>;
loadSaveSearch(name: string, selectDuplicate?: boolean): Chainable<any>;
loadSaveSearch(name: string): Chainable<any>;
verifyHitCount(count: string): Chainable<any>;
waitForSearch(): Chainable<any>;
prepareTest(fromTime: string, toTime: string, interval: string): Chainable<any>;
Expand Down
11 changes: 6 additions & 5 deletions cypress/utils/apps/query_enhancements/saved_search.js
Original file line number Diff line number Diff line change
Expand Up @@ -497,14 +497,12 @@ export const postRequestSaveSearch = (config) => {
* @param {boolean} saveAsNew - flag to determine whether to overwrite the saved search (false) or save as a new saved search (true)
*/
export const updateSavedSearchAndSaveAndVerify = (config, saveAsNew) => {
const saveName = config.saveName;

cy.navigateToWorkSpaceSpecificPage({
workspaceName: workspaceName,
page: 'discover',
isEnhancement: true,
});
cy.loadSaveSearch(saveName);
cy.loadSaveSearch(config.saveName);

// Change the dataset type to use
const [newDataset, newDatasetType] =
Expand All @@ -524,11 +522,14 @@ export const updateSavedSearchAndSaveAndVerify = (config, saveAsNew) => {
// only select field if previous config did not select it, because otherwise it is already selected
selectFields: !config.selectFields ? newConfig.selectFields : false,
});
cy.saveSearch(saveName, saveAsNew);
const saveNameToUse = saveAsNew ? newConfig.saveName : config.saveName;
cy.saveSearch(saveNameToUse, saveAsNew);

// Load updated saved search and verify
cy.getElementByTestId('discoverNewButton').click();
cy.loadSaveSearch(saveName, saveAsNew);
// wait for the new tab to load
cy.getElementByTestId('docTableHeader').should('be.visible');
cy.loadSaveSearch(saveNameToUse);
setDatePickerDatesAndSearchIfRelevant(newConfig.language);
verifyDiscoverPageState(newConfig);
};

0 comments on commit e417aa0

Please sign in to comment.