[SIEM] Adds 'Open one signal' Cypress test (#60484)
* adds data for having closed signals * adds 'Open one signal when more than one closed signals are selected' test' Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
This commit is contained in:
parent
85481a7017
commit
10afcf4be8
|
@ -16,6 +16,7 @@ import {
|
||||||
closeSignals,
|
closeSignals,
|
||||||
goToClosedSignals,
|
goToClosedSignals,
|
||||||
goToOpenedSignals,
|
goToOpenedSignals,
|
||||||
|
openFirstSignal,
|
||||||
openSignals,
|
openSignals,
|
||||||
selectNumberOfSignals,
|
selectNumberOfSignals,
|
||||||
waitForSignalsPanelToBeLoaded,
|
waitForSignalsPanelToBeLoaded,
|
||||||
|
@ -28,129 +29,181 @@ import { loginAndWaitForPage } from '../tasks/login';
|
||||||
import { DETECTIONS } from '../urls/navigation';
|
import { DETECTIONS } from '../urls/navigation';
|
||||||
|
|
||||||
describe('Detections', () => {
|
describe('Detections', () => {
|
||||||
beforeEach(() => {
|
context('Closing signals', () => {
|
||||||
esArchiverLoad('signals');
|
beforeEach(() => {
|
||||||
loginAndWaitForPage(DETECTIONS);
|
esArchiverLoad('signals');
|
||||||
|
loginAndWaitForPage(DETECTIONS);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Closes and opens signals', () => {
|
||||||
|
waitForSignalsPanelToBeLoaded();
|
||||||
|
waitForSignalsToBeLoaded();
|
||||||
|
|
||||||
|
cy.get(NUMBER_OF_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.then(numberOfSignals => {
|
||||||
|
cy.get(SHOWING_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eql', `Showing ${numberOfSignals} signals`);
|
||||||
|
|
||||||
|
const numberOfSignalsToBeClosed = 3;
|
||||||
|
selectNumberOfSignals(numberOfSignalsToBeClosed);
|
||||||
|
|
||||||
|
cy.get(SELECTED_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eql', `Selected ${numberOfSignalsToBeClosed} signals`);
|
||||||
|
|
||||||
|
closeSignals();
|
||||||
|
waitForSignals();
|
||||||
|
cy.reload();
|
||||||
|
waitForSignals();
|
||||||
|
|
||||||
|
const expectedNumberOfSignalsAfterClosing = +numberOfSignals - numberOfSignalsToBeClosed;
|
||||||
|
cy.get(NUMBER_OF_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eq', expectedNumberOfSignalsAfterClosing.toString());
|
||||||
|
cy.get(SHOWING_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eql', `Showing ${expectedNumberOfSignalsAfterClosing.toString()} signals`);
|
||||||
|
|
||||||
|
goToClosedSignals();
|
||||||
|
waitForSignals();
|
||||||
|
|
||||||
|
cy.get(NUMBER_OF_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eql', numberOfSignalsToBeClosed.toString());
|
||||||
|
cy.get(SHOWING_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eql', `Showing ${numberOfSignalsToBeClosed.toString()} signals`);
|
||||||
|
cy.get(SIGNALS).should('have.length', numberOfSignalsToBeClosed);
|
||||||
|
|
||||||
|
const numberOfSignalsToBeOpened = 1;
|
||||||
|
selectNumberOfSignals(numberOfSignalsToBeOpened);
|
||||||
|
|
||||||
|
cy.get(SELECTED_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eql', `Selected ${numberOfSignalsToBeOpened} signal`);
|
||||||
|
|
||||||
|
openSignals();
|
||||||
|
waitForSignals();
|
||||||
|
cy.reload();
|
||||||
|
waitForSignalsToBeLoaded();
|
||||||
|
waitForSignals();
|
||||||
|
goToClosedSignals();
|
||||||
|
waitForSignals();
|
||||||
|
|
||||||
|
const expectedNumberOfClosedSignalsAfterOpened = 2;
|
||||||
|
cy.get(NUMBER_OF_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eql', expectedNumberOfClosedSignalsAfterOpened.toString());
|
||||||
|
cy.get(SHOWING_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should(
|
||||||
|
'eql',
|
||||||
|
`Showing ${expectedNumberOfClosedSignalsAfterOpened.toString()} signals`
|
||||||
|
);
|
||||||
|
cy.get(SIGNALS).should('have.length', expectedNumberOfClosedSignalsAfterOpened);
|
||||||
|
|
||||||
|
goToOpenedSignals();
|
||||||
|
waitForSignals();
|
||||||
|
|
||||||
|
const expectedNumberOfOpenedSignals =
|
||||||
|
+numberOfSignals - expectedNumberOfClosedSignalsAfterOpened;
|
||||||
|
cy.get(SHOWING_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eql', `Showing ${expectedNumberOfOpenedSignals.toString()} signals`);
|
||||||
|
|
||||||
|
cy.get('[data-test-subj="server-side-event-count"]')
|
||||||
|
.invoke('text')
|
||||||
|
.should('eql', expectedNumberOfOpenedSignals.toString());
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Closes one signal when more than one opened signals are selected', () => {
|
||||||
|
waitForSignalsToBeLoaded();
|
||||||
|
|
||||||
|
cy.get(NUMBER_OF_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.then(numberOfSignals => {
|
||||||
|
const numberOfSignalsToBeClosed = 1;
|
||||||
|
const numberOfSignalsToBeSelected = 3;
|
||||||
|
|
||||||
|
cy.get(OPEN_CLOSE_SIGNALS_BTN).should('have.attr', 'disabled');
|
||||||
|
selectNumberOfSignals(numberOfSignalsToBeSelected);
|
||||||
|
cy.get(OPEN_CLOSE_SIGNALS_BTN).should('not.have.attr', 'disabled');
|
||||||
|
|
||||||
|
closeFirstSignal();
|
||||||
|
cy.reload();
|
||||||
|
waitForSignalsToBeLoaded();
|
||||||
|
waitForSignals();
|
||||||
|
|
||||||
|
const expectedNumberOfSignals = +numberOfSignals - numberOfSignalsToBeClosed;
|
||||||
|
cy.get(NUMBER_OF_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eq', expectedNumberOfSignals.toString());
|
||||||
|
cy.get(SHOWING_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eql', `Showing ${expectedNumberOfSignals.toString()} signals`);
|
||||||
|
|
||||||
|
goToClosedSignals();
|
||||||
|
waitForSignals();
|
||||||
|
|
||||||
|
cy.get(NUMBER_OF_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eql', numberOfSignalsToBeClosed.toString());
|
||||||
|
cy.get(SHOWING_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eql', `Showing ${numberOfSignalsToBeClosed.toString()} signal`);
|
||||||
|
cy.get(SIGNALS).should('have.length', numberOfSignalsToBeClosed);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
context('Opening signals', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
esArchiverLoad('closed_signals');
|
||||||
|
loginAndWaitForPage(DETECTIONS);
|
||||||
|
});
|
||||||
|
|
||||||
it('Closes and opens signals', () => {
|
it('Open one signal when more than one closed signals are selected', () => {
|
||||||
waitForSignalsPanelToBeLoaded();
|
waitForSignals();
|
||||||
waitForSignalsToBeLoaded();
|
goToClosedSignals();
|
||||||
|
waitForSignalsToBeLoaded();
|
||||||
|
|
||||||
cy.get(NUMBER_OF_SIGNALS)
|
cy.get(NUMBER_OF_SIGNALS)
|
||||||
.invoke('text')
|
.invoke('text')
|
||||||
.then(numberOfSignals => {
|
.then(numberOfSignals => {
|
||||||
cy.get(SHOWING_SIGNALS)
|
const numberOfSignalsToBeOpened = 1;
|
||||||
.invoke('text')
|
const numberOfSignalsToBeSelected = 3;
|
||||||
.should('eql', `Showing ${numberOfSignals} signals`);
|
|
||||||
|
|
||||||
const numberOfSignalsToBeClosed = 3;
|
cy.get(OPEN_CLOSE_SIGNALS_BTN).should('have.attr', 'disabled');
|
||||||
selectNumberOfSignals(numberOfSignalsToBeClosed);
|
selectNumberOfSignals(numberOfSignalsToBeSelected);
|
||||||
|
cy.get(OPEN_CLOSE_SIGNALS_BTN).should('not.have.attr', 'disabled');
|
||||||
|
|
||||||
cy.get(SELECTED_SIGNALS)
|
openFirstSignal();
|
||||||
.invoke('text')
|
cy.reload();
|
||||||
.should('eql', `Selected ${numberOfSignalsToBeClosed} signals`);
|
goToClosedSignals();
|
||||||
|
waitForSignalsToBeLoaded();
|
||||||
|
waitForSignals();
|
||||||
|
|
||||||
closeSignals();
|
const expectedNumberOfSignals = +numberOfSignals - numberOfSignalsToBeOpened;
|
||||||
waitForSignals();
|
cy.get(NUMBER_OF_SIGNALS)
|
||||||
cy.reload();
|
.invoke('text')
|
||||||
waitForSignals();
|
.should('eq', expectedNumberOfSignals.toString());
|
||||||
waitForSignalsToBeLoaded();
|
cy.get(SHOWING_SIGNALS)
|
||||||
|
.invoke('text')
|
||||||
|
.should('eql', `Showing ${expectedNumberOfSignals.toString()} signals`);
|
||||||
|
|
||||||
const expectedNumberOfSignalsAfterClosing = +numberOfSignals - numberOfSignalsToBeClosed;
|
goToOpenedSignals();
|
||||||
cy.get(NUMBER_OF_SIGNALS)
|
waitForSignals();
|
||||||
.invoke('text')
|
|
||||||
.should('eq', expectedNumberOfSignalsAfterClosing.toString());
|
|
||||||
cy.get(SHOWING_SIGNALS)
|
|
||||||
.invoke('text')
|
|
||||||
.should('eql', `Showing ${expectedNumberOfSignalsAfterClosing.toString()} signals`);
|
|
||||||
|
|
||||||
goToClosedSignals();
|
cy.get(NUMBER_OF_SIGNALS)
|
||||||
waitForSignals();
|
.invoke('text')
|
||||||
|
.should('eql', numberOfSignalsToBeOpened.toString());
|
||||||
cy.get(NUMBER_OF_SIGNALS)
|
cy.get(SHOWING_SIGNALS)
|
||||||
.invoke('text')
|
.invoke('text')
|
||||||
.should('eql', numberOfSignalsToBeClosed.toString());
|
.should('eql', `Showing ${numberOfSignalsToBeOpened.toString()} signal`);
|
||||||
cy.get(SHOWING_SIGNALS)
|
cy.get(SIGNALS).should('have.length', numberOfSignalsToBeOpened);
|
||||||
.invoke('text')
|
});
|
||||||
.should('eql', `Showing ${numberOfSignalsToBeClosed.toString()} signals`);
|
});
|
||||||
cy.get(SIGNALS).should('have.length', numberOfSignalsToBeClosed);
|
|
||||||
|
|
||||||
const numberOfSignalsToBeOpened = 1;
|
|
||||||
selectNumberOfSignals(numberOfSignalsToBeOpened);
|
|
||||||
|
|
||||||
cy.get(SELECTED_SIGNALS)
|
|
||||||
.invoke('text')
|
|
||||||
.should('eql', `Selected ${numberOfSignalsToBeOpened} signal`);
|
|
||||||
|
|
||||||
openSignals();
|
|
||||||
waitForSignals();
|
|
||||||
cy.reload();
|
|
||||||
waitForSignalsToBeLoaded();
|
|
||||||
waitForSignals();
|
|
||||||
goToClosedSignals();
|
|
||||||
waitForSignals();
|
|
||||||
|
|
||||||
const expectedNumberOfClosedSignalsAfterOpened = 2;
|
|
||||||
cy.get(NUMBER_OF_SIGNALS)
|
|
||||||
.invoke('text')
|
|
||||||
.should('eql', expectedNumberOfClosedSignalsAfterOpened.toString());
|
|
||||||
cy.get(SHOWING_SIGNALS)
|
|
||||||
.invoke('text')
|
|
||||||
.should('eql', `Showing ${expectedNumberOfClosedSignalsAfterOpened.toString()} signals`);
|
|
||||||
cy.get(SIGNALS).should('have.length', expectedNumberOfClosedSignalsAfterOpened);
|
|
||||||
|
|
||||||
goToOpenedSignals();
|
|
||||||
waitForSignals();
|
|
||||||
|
|
||||||
const expectedNumberOfOpenedSignals =
|
|
||||||
+numberOfSignals - expectedNumberOfClosedSignalsAfterOpened;
|
|
||||||
cy.get(SHOWING_SIGNALS)
|
|
||||||
.invoke('text')
|
|
||||||
.should('eql', `Showing ${expectedNumberOfOpenedSignals.toString()} signals`);
|
|
||||||
|
|
||||||
cy.get('[data-test-subj="server-side-event-count"]')
|
|
||||||
.invoke('text')
|
|
||||||
.should('eql', expectedNumberOfOpenedSignals.toString());
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Closes one signal when more than one opened signals are selected', () => {
|
|
||||||
waitForSignalsToBeLoaded();
|
|
||||||
|
|
||||||
cy.get(NUMBER_OF_SIGNALS)
|
|
||||||
.invoke('text')
|
|
||||||
.then(numberOfSignals => {
|
|
||||||
const numberOfSignalsToBeClosed = 1;
|
|
||||||
const numberOfSignalsToBeSelected = 3;
|
|
||||||
|
|
||||||
cy.get(OPEN_CLOSE_SIGNALS_BTN).should('have.attr', 'disabled');
|
|
||||||
selectNumberOfSignals(numberOfSignalsToBeSelected);
|
|
||||||
cy.get(OPEN_CLOSE_SIGNALS_BTN).should('not.have.attr', 'disabled');
|
|
||||||
|
|
||||||
closeFirstSignal();
|
|
||||||
cy.reload();
|
|
||||||
waitForSignalsToBeLoaded();
|
|
||||||
waitForSignals();
|
|
||||||
|
|
||||||
const expectedNumberOfSignals = +numberOfSignals - numberOfSignalsToBeClosed;
|
|
||||||
cy.get(NUMBER_OF_SIGNALS)
|
|
||||||
.invoke('text')
|
|
||||||
.should('eq', expectedNumberOfSignals.toString());
|
|
||||||
cy.get(SHOWING_SIGNALS)
|
|
||||||
.invoke('text')
|
|
||||||
.should('eql', `Showing ${expectedNumberOfSignals.toString()} signals`);
|
|
||||||
|
|
||||||
goToClosedSignals();
|
|
||||||
waitForSignals();
|
|
||||||
|
|
||||||
cy.get(NUMBER_OF_SIGNALS)
|
|
||||||
.invoke('text')
|
|
||||||
.should('eql', numberOfSignalsToBeClosed.toString());
|
|
||||||
cy.get(SHOWING_SIGNALS)
|
|
||||||
.invoke('text')
|
|
||||||
.should('eql', `Showing ${numberOfSignalsToBeClosed.toString()} signal`);
|
|
||||||
cy.get(SIGNALS).should('have.length', numberOfSignalsToBeClosed);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -40,6 +40,12 @@ export const goToOpenedSignals = () => {
|
||||||
cy.get(OPENED_SIGNALS_BTN).click({ force: true });
|
cy.get(OPENED_SIGNALS_BTN).click({ force: true });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const openFirstSignal = () => {
|
||||||
|
cy.get(OPEN_CLOSE_SIGNAL_BTN)
|
||||||
|
.first()
|
||||||
|
.click({ force: true });
|
||||||
|
};
|
||||||
|
|
||||||
export const openSignals = () => {
|
export const openSignals = () => {
|
||||||
cy.get(OPEN_CLOSE_SIGNALS_BTN).click({ force: true });
|
cy.get(OPEN_CLOSE_SIGNALS_BTN).click({ force: true });
|
||||||
};
|
};
|
||||||
|
|
BIN
x-pack/test/siem_cypress/es_archives/closed_signals/data.json.gz
Normal file
BIN
x-pack/test/siem_cypress/es_archives/closed_signals/data.json.gz
Normal file
Binary file not shown.
7605
x-pack/test/siem_cypress/es_archives/closed_signals/mappings.json
Normal file
7605
x-pack/test/siem_cypress/es_archives/closed_signals/mappings.json
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue