From dff464554fcdc923b019f92faf1c055b5a6e4e94 Mon Sep 17 00:00:00 2001 From: Ryland Herrick Date: Mon, 19 Oct 2020 12:19:08 -0500 Subject: [PATCH] Update other specs that are asserting on alerts * Do not automatically refresh the page * This is only necessary if we're not in the state we need. The `waitFor` helper functions automatically reload whatever needs to be reloaded, so we're delegating this task to them. * Ensure we wait for alerts to be nonzero before our assertion * Otherwise we get some strange behavior around this field's availability; see previous commits --- .../integration/alerts_detection_rules_custom.spec.ts | 10 +++------- .../integration/alerts_detection_rules_eql.spec.ts | 9 ++------- .../alerts_detection_rules_override.spec.ts | 10 +++------- .../alerts_detection_rules_threshold.spec.ts | 10 +++------- 4 files changed, 11 insertions(+), 28 deletions(-) diff --git a/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_custom.spec.ts b/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_custom.spec.ts index 41665cf6d20a..d7a963ba4efa 100644 --- a/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_custom.spec.ts +++ b/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_custom.spec.ts @@ -91,12 +91,12 @@ import { goToAboutStepTab, goToActionsStepTab, goToScheduleStepTab, + waitForAlertsToPopulate, waitForTheRuleToBeExecuted, } from '../tasks/create_new_rule'; import { saveEditedRule, waitForKibana } from '../tasks/edit_rule'; import { esArchiverLoad, esArchiverUnload } from '../tasks/es_archiver'; import { loginAndWaitForPageWithoutDateRange } from '../tasks/login'; -import { refreshPage } from '../tasks/security_header'; import { DETECTIONS_URL } from '../urls/navigation'; @@ -197,14 +197,10 @@ describe('Custom detection rules creation', () => { ); }); - refreshPage(); waitForTheRuleToBeExecuted(); + waitForAlertsToPopulate(); - cy.get(NUMBER_OF_ALERTS) - .invoke('text') - .then((numberOfAlertsText) => { - cy.wrap(parseInt(numberOfAlertsText, 10)).should('be.above', 0); - }); + cy.get(NUMBER_OF_ALERTS).invoke('text').then(parseFloat).should('be.above', 0); cy.get(ALERT_RULE_NAME).first().should('have.text', newRule.name); cy.get(ALERT_RULE_VERSION).first().should('have.text', '1'); cy.get(ALERT_RULE_METHOD).first().should('have.text', 'query'); diff --git a/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_eql.spec.ts b/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_eql.spec.ts index 803cf428101c..566720bd6083 100644 --- a/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_eql.spec.ts +++ b/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_eql.spec.ts @@ -160,14 +160,10 @@ describe('Detection rules, EQL', () => { ); }); - refreshPage(); waitForTheRuleToBeExecuted(); + waitForAlertsToPopulate(); - cy.get(NUMBER_OF_ALERTS) - .invoke('text') - .then((numberOfAlertsText) => { - cy.wrap(parseInt(numberOfAlertsText, 10)).should('eql', expectedNumberOfAlerts); - }); + cy.get(NUMBER_OF_ALERTS).should('have.text', expectedNumberOfAlerts); cy.get(ALERT_RULE_NAME).first().should('have.text', eqlRule.name); cy.get(ALERT_RULE_VERSION).first().should('have.text', '1'); cy.get(ALERT_RULE_METHOD).first().should('have.text', 'eql'); @@ -199,7 +195,6 @@ describe('Detection rules, EQL', () => { filterByCustomRules(); goToRuleDetails(); - refreshPage(); waitForTheRuleToBeExecuted(); waitForAlertsToPopulate(); diff --git a/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_override.spec.ts b/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_override.spec.ts index edf7305f6916..e31fe2e9a391 100644 --- a/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_override.spec.ts +++ b/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_override.spec.ts @@ -72,11 +72,11 @@ import { fillAboutRuleWithOverrideAndContinue, fillDefineCustomRuleWithImportedQueryAndContinue, fillScheduleRuleAndContinue, + waitForAlertsToPopulate, waitForTheRuleToBeExecuted, } from '../tasks/create_new_rule'; import { esArchiverLoad, esArchiverUnload } from '../tasks/es_archiver'; import { loginAndWaitForPageWithoutDateRange } from '../tasks/login'; -import { refreshPage } from '../tasks/security_header'; import { DETECTIONS_URL } from '../urls/navigation'; @@ -179,14 +179,10 @@ describe('Detection rules, override', () => { ); }); - refreshPage(); waitForTheRuleToBeExecuted(); + waitForAlertsToPopulate(); - cy.get(NUMBER_OF_ALERTS) - .invoke('text') - .then((numberOfAlertsText) => { - cy.wrap(parseInt(numberOfAlertsText, 10)).should('be.above', 0); - }); + cy.get(NUMBER_OF_ALERTS).invoke('text').then(parseFloat).should('be.above', 0); cy.get(ALERT_RULE_NAME).first().should('have.text', 'auditbeat'); cy.get(ALERT_RULE_VERSION).first().should('have.text', '1'); cy.get(ALERT_RULE_METHOD).first().should('have.text', 'query'); diff --git a/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_threshold.spec.ts b/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_threshold.spec.ts index 5095e856e3f6..f997b9eb3bc5 100644 --- a/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_threshold.spec.ts +++ b/x-pack/plugins/security_solution/cypress/integration/alerts_detection_rules_threshold.spec.ts @@ -68,11 +68,11 @@ import { fillDefineThresholdRuleAndContinue, fillScheduleRuleAndContinue, selectThresholdRuleType, + waitForAlertsToPopulate, waitForTheRuleToBeExecuted, } from '../tasks/create_new_rule'; import { esArchiverLoad, esArchiverUnload } from '../tasks/es_archiver'; import { loginAndWaitForPageWithoutDateRange } from '../tasks/login'; -import { refreshPage } from '../tasks/security_header'; import { DETECTIONS_URL } from '../urls/navigation'; @@ -162,14 +162,10 @@ describe('Detection rules, threshold', () => { ); }); - refreshPage(); waitForTheRuleToBeExecuted(); + waitForAlertsToPopulate(); - cy.get(NUMBER_OF_ALERTS) - .invoke('text') - .then((numberOfAlertsText) => { - cy.wrap(parseInt(numberOfAlertsText, 10)).should('be.below', 100); - }); + cy.get(NUMBER_OF_ALERTS).invoke('text').then(parseFloat).should('be.below', 100); cy.get(ALERT_RULE_NAME).first().should('have.text', newThresholdRule.name); cy.get(ALERT_RULE_VERSION).first().should('have.text', '1'); cy.get(ALERT_RULE_METHOD).first().should('have.text', 'threshold');