mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 01:13:23 -04:00
[Security Solution] Unskip and enable for Serverless shared_exception_lists_management
Cypress tests (#169182)
## Summary Running flaky test runner for: - `x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management` ## Changes - `x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/list_detail_page/list_details.cy.ts` **enabled on Serverless** - `x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/manage_exceptions.cy.ts` **enabled on Serverless** - `x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/manage_exceptions.cy.ts` **enabled on Serverless** - `x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/shared_exception_list_page/filter_table.cy.ts` **enabled on Serverless** - `x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/shared_exception_list_page/import_lists.cy.ts` **enabled on Serverless** - `x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/shared_exception_list_page/manage_lists.cy.ts` **unskipped and enabled in Serverless** - `x-pack/test/security_solution_cypress/cypress/e2e/exceptions/shared_exception_lists_management/shared_exception_list_page/read_only.cy.ts` **removed from Serverless testing** ## Related failing-test issues 1. https://github.com/elastic/kibana/issues/165874 2. https://github.com/elastic/kibana/issues/165838 3. https://github.com/elastic/kibana/issues/165795 4. https://github.com/elastic/kibana/issues/165743 - **Closed as duplicate of _#165640** 5. https://github.com/elastic/kibana/issues/165690 6. https://github.com/elastic/kibana/issues/165640 ### Flaky test runner link - https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3557#_ (Only ESS) 🟢 - https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3564#_ (ESS and Serverless) - https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3613 (Serverless evaluated and corrected) - https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3878 [V3] - https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3891 [V4]
This commit is contained in:
parent
f28445449e
commit
c0c7d1365f
7 changed files with 229 additions and 252 deletions
|
@ -41,93 +41,84 @@ const getExceptionList1 = () => ({
|
|||
|
||||
const EXCEPTION_LIST_NAME = 'Newly created list';
|
||||
|
||||
// TODO: https://github.com/elastic/kibana/issues/161539
|
||||
// FLAKY: https://github.com/elastic/kibana/issues/165640
|
||||
describe(
|
||||
'Exception list detail page',
|
||||
{ tags: ['@ess', '@serverless', '@skipInServerless'] },
|
||||
() => {
|
||||
before(() => {
|
||||
login();
|
||||
describe('Exception list detail page', { tags: ['@ess', '@serverless'] }, () => {
|
||||
beforeEach(() => {
|
||||
login();
|
||||
|
||||
// Create exception list associated with a rule
|
||||
createExceptionList(getExceptionList1(), getExceptionList1().list_id).then((response) =>
|
||||
createRule(
|
||||
getNewRule({
|
||||
exceptions_list: [
|
||||
{
|
||||
id: response.body.id,
|
||||
list_id: getExceptionList1().list_id,
|
||||
type: getExceptionList1().type,
|
||||
namespace_type: getExceptionList1().namespace_type,
|
||||
},
|
||||
],
|
||||
})
|
||||
)
|
||||
);
|
||||
createRule(getNewRule({ name: 'Rule to link to shared list' }));
|
||||
// Create exception list associated with a rule
|
||||
createExceptionList(getExceptionList1(), getExceptionList1().list_id).then((response) =>
|
||||
createRule(
|
||||
getNewRule({
|
||||
exceptions_list: [
|
||||
{
|
||||
id: response.body.id,
|
||||
list_id: getExceptionList1().list_id,
|
||||
type: getExceptionList1().type,
|
||||
namespace_type: getExceptionList1().namespace_type,
|
||||
},
|
||||
],
|
||||
})
|
||||
)
|
||||
);
|
||||
createRule(getNewRule({ name: 'Rule to link to shared list' }));
|
||||
visit(EXCEPTIONS_URL);
|
||||
});
|
||||
|
||||
it('Should edit list details', () => {
|
||||
visit(exceptionsListDetailsUrl(getExceptionList1().list_id));
|
||||
waitForExceptionListDetailToBeLoaded();
|
||||
// Check list details are loaded
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_NAME).should('have.text', LIST_NAME);
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_DESCRIPTION).should('have.text', LIST_DESCRIPTION);
|
||||
|
||||
// Update list details in edit modal
|
||||
editExceptionLisDetails({
|
||||
name: { original: LIST_NAME, updated: UPDATED_LIST_NAME },
|
||||
description: { original: LIST_DESCRIPTION, updated: UPDATED_LIST_DESCRIPTION },
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
login();
|
||||
visit(EXCEPTIONS_URL);
|
||||
// Ensure that list details were updated
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_NAME).should('have.text', UPDATED_LIST_NAME);
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_DESCRIPTION).should('have.text', UPDATED_LIST_DESCRIPTION);
|
||||
|
||||
// Ensure that list details changes persisted
|
||||
visit(exceptionsListDetailsUrl(getExceptionList1().list_id));
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_NAME).should('have.text', UPDATED_LIST_NAME);
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_DESCRIPTION).should('have.text', UPDATED_LIST_DESCRIPTION);
|
||||
|
||||
// Remove description
|
||||
editExceptionLisDetails({
|
||||
description: { original: UPDATED_LIST_DESCRIPTION, updated: null },
|
||||
});
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_DESCRIPTION).should('have.text', 'Add a description');
|
||||
|
||||
it('Should edit list details', () => {
|
||||
visit(exceptionsListDetailsUrl(getExceptionList1().list_id));
|
||||
waitForExceptionListDetailToBeLoaded();
|
||||
// Check list details are loaded
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_NAME).should('have.text', LIST_NAME);
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_DESCRIPTION).should('have.text', LIST_DESCRIPTION);
|
||||
// Ensure description removal persisted
|
||||
visit(exceptionsListDetailsUrl(getExceptionList1().list_id));
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_DESCRIPTION).should('have.text', 'Add a description');
|
||||
});
|
||||
|
||||
// Update list details in edit modal
|
||||
editExceptionLisDetails({
|
||||
name: { original: LIST_NAME, updated: UPDATED_LIST_NAME },
|
||||
description: { original: LIST_DESCRIPTION, updated: UPDATED_LIST_DESCRIPTION },
|
||||
});
|
||||
// TODO: Flaky in ESS and Serverless: https://github.com/elastic/kibana/pull/169182#issuecomment-1792597980
|
||||
it.skip('Should create a new list and link it to two rules', () => {
|
||||
createSharedExceptionList(
|
||||
{ name: 'Newly created list', description: 'This is my list.' },
|
||||
true
|
||||
);
|
||||
|
||||
// Ensure that list details were updated
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_NAME).should('have.text', UPDATED_LIST_NAME);
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_DESCRIPTION).should('have.text', UPDATED_LIST_DESCRIPTION);
|
||||
// After creation - directed to list detail page
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_NAME).should('have.text', EXCEPTION_LIST_NAME);
|
||||
|
||||
// Ensure that list details changes persisted
|
||||
visit(exceptionsListDetailsUrl(getExceptionList1().list_id));
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_NAME).should('have.text', UPDATED_LIST_NAME);
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_DESCRIPTION).should('have.text', UPDATED_LIST_DESCRIPTION);
|
||||
// Open Link rules flyout
|
||||
cy.get(EXCEPTION_LIST_DETAILS_LINK_RULES_BTN).click();
|
||||
|
||||
// Remove description
|
||||
editExceptionLisDetails({
|
||||
description: { original: UPDATED_LIST_DESCRIPTION, updated: null },
|
||||
});
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_DESCRIPTION).should('have.text', 'Add a description');
|
||||
// Link the first two Rules
|
||||
linkSharedListToRulesFromListDetails(2);
|
||||
|
||||
// Ensure description removal persisted
|
||||
visit(exceptionsListDetailsUrl(getExceptionList1().list_id));
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_DESCRIPTION).should('have.text', 'Add a description');
|
||||
});
|
||||
// Save the 2 linked Rules
|
||||
saveLinkedRules();
|
||||
|
||||
it('Should create a new list and link it to two rules', () => {
|
||||
createSharedExceptionList(
|
||||
{ name: 'Newly created list', description: 'This is my list.' },
|
||||
true
|
||||
);
|
||||
const linkedRulesNames = ['Rule to link to shared list', 'New Rule Test'];
|
||||
|
||||
// After creation - directed to list detail page
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_NAME).should('have.text', EXCEPTION_LIST_NAME);
|
||||
|
||||
// Open Link rules flyout
|
||||
cy.get(EXCEPTION_LIST_DETAILS_LINK_RULES_BTN).click();
|
||||
|
||||
// Link the first two Rules
|
||||
linkSharedListToRulesFromListDetails(2);
|
||||
|
||||
// Save the 2 linked Rules
|
||||
saveLinkedRules();
|
||||
|
||||
const linkedRulesNames = ['Rule to link to shared list', 'New Rule Test'];
|
||||
|
||||
// Validate the number of linked rules as well as the Rules' names
|
||||
validateSharedListLinkedRules(2, linkedRulesNames);
|
||||
});
|
||||
}
|
||||
);
|
||||
// Validate the number of linked rules as well as the Rules' names
|
||||
validateSharedListLinkedRules(2, linkedRulesNames);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -44,166 +44,160 @@ import { visitRuleDetailsPage } from '../../../tasks/rule_details';
|
|||
import { deleteEndpointExceptionList, deleteExceptionLists } from '../../../tasks/common';
|
||||
import { closeErrorToast } from '../../../tasks/alerts_detection_rules';
|
||||
|
||||
// TODO: https://github.com/elastic/kibana/issues/161539
|
||||
// FLAKY: https://github.com/elastic/kibana/issues/165795
|
||||
describe(
|
||||
'Add, edit and delete exception',
|
||||
{ tags: ['@ess', '@serverless', '@skipInServerless'] },
|
||||
() => {
|
||||
beforeEach(() => {
|
||||
login();
|
||||
deleteExceptionLists();
|
||||
deleteEndpointExceptionList();
|
||||
cy.task('esArchiverLoad', { archiveName: 'exceptions' });
|
||||
createRule(getNewRule()).as('createdRule');
|
||||
describe('Add, edit and delete exception', { tags: ['@ess', '@serverless'] }, () => {
|
||||
beforeEach(() => {
|
||||
login();
|
||||
deleteExceptionLists();
|
||||
deleteEndpointExceptionList();
|
||||
cy.task('esArchiverLoad', { archiveName: 'exceptions' });
|
||||
createRule(getNewRule()).as('createdRule');
|
||||
visit(EXCEPTIONS_URL);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
cy.task('esArchiverUnload', 'exceptions');
|
||||
});
|
||||
|
||||
const exceptionName = 'My item name';
|
||||
const exceptionNameEdited = 'My item name edited';
|
||||
const FIELD_DIFFERENT_FROM_EXISTING_ITEM_FIELD = 'agent.name';
|
||||
const EXCEPTION_LIST_NAME = 'Newly created list';
|
||||
|
||||
describe('Add, Edit and delete Exception item', () => {
|
||||
it('should create exception item from Shared Exception List page and linked to a Rule', () => {
|
||||
// Click on "Create shared exception list" button on the header
|
||||
// Click on "Create exception item"
|
||||
addExceptionListFromSharedExceptionListHeaderMenu();
|
||||
|
||||
// Add exception item name
|
||||
addExceptionFlyoutItemName(exceptionName);
|
||||
|
||||
// Add Condition
|
||||
editException(FIELD_DIFFERENT_FROM_EXISTING_ITEM_FIELD, 0, 0);
|
||||
|
||||
// Confirm button should disabled until a rule(s) is selected
|
||||
cy.get(CONFIRM_BTN).should('have.attr', 'disabled');
|
||||
|
||||
// select rule
|
||||
linkFirstRuleOnExceptionFlyout();
|
||||
|
||||
// should be able to submit
|
||||
cy.get(CONFIRM_BTN).should('not.have.attr', 'disabled');
|
||||
|
||||
submitNewExceptionItem();
|
||||
|
||||
// Navigate to Rule details page
|
||||
cy.get<Cypress.Response<RuleResponse>>('@createdRule').then((rule) =>
|
||||
visitRuleDetailsPage(rule.body.id, { tab: 'rule_exceptions' })
|
||||
);
|
||||
|
||||
// Only one Exception should generated
|
||||
cy.get(EXCEPTION_ITEM_VIEWER_CONTAINER).should('have.length', 1);
|
||||
|
||||
// validate the And operator is displayed correctly
|
||||
cy.get(EXCEPTION_CARD_ITEM_NAME).should('have.text', exceptionName);
|
||||
});
|
||||
|
||||
it('should create exception item from Shared Exception List page, linked to a Shared List and validate Edit/delete in list detail page', function () {
|
||||
createSharedExceptionList(
|
||||
{ name: 'Newly created list', description: 'This is my list.' },
|
||||
true
|
||||
);
|
||||
|
||||
// After creation - directed to list detail page
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_NAME).should('have.text', EXCEPTION_LIST_NAME);
|
||||
|
||||
// Go back to Shared Exception List
|
||||
visit(EXCEPTIONS_URL);
|
||||
|
||||
// Click on "Create shared exception list" button on the header
|
||||
// Click on "Create exception item"
|
||||
addExceptionListFromSharedExceptionListHeaderMenu();
|
||||
|
||||
// Add exception item name
|
||||
addExceptionFlyoutItemName(exceptionName);
|
||||
|
||||
// Add Condition
|
||||
editException(FIELD_DIFFERENT_FROM_EXISTING_ITEM_FIELD, 0, 0);
|
||||
|
||||
// select shared list radio option and select the first one
|
||||
linkFirstSharedListOnExceptionFlyout();
|
||||
|
||||
submitNewExceptionItem();
|
||||
|
||||
// New exception is added to the new List
|
||||
findSharedExceptionListItemsByName(`${EXCEPTION_LIST_NAME}`, [exceptionName]);
|
||||
|
||||
// Click on the first exception overflow menu items
|
||||
// Open the edit modal
|
||||
editFirstExceptionItemInListDetailPage();
|
||||
// edit exception item name
|
||||
editExceptionFlyoutItemName(exceptionNameEdited);
|
||||
|
||||
// submit
|
||||
submitEditedExceptionItem();
|
||||
|
||||
// check the new name after edit
|
||||
cy.get(EXECPTION_ITEM_CARD_HEADER_TITLE).should('have.text', exceptionNameEdited);
|
||||
|
||||
// Click on the first exception overflow menu items
|
||||
// delete the exception
|
||||
deleteFirstExceptionItemInListDetailPage();
|
||||
|
||||
cy.get(EMPTY_EXCEPTIONS_VIEWER).should('exist');
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
cy.task('esArchiverUnload', 'exceptions');
|
||||
it('should handle huge text as a comment gracefully and allow user create exception item after user updates the comment', function () {
|
||||
createSharedExceptionList(
|
||||
{ name: 'Newly created list', description: 'This is my list.' },
|
||||
true
|
||||
);
|
||||
|
||||
// After creation - directed to list detail page
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_NAME).should('have.text', EXCEPTION_LIST_NAME);
|
||||
|
||||
// Go back to Shared Exception List
|
||||
visit(EXCEPTIONS_URL);
|
||||
|
||||
// Click on "Create shared exception list" button on the header
|
||||
// Click on "Create exception item"
|
||||
addExceptionListFromSharedExceptionListHeaderMenu();
|
||||
|
||||
// Add exception item name
|
||||
addExceptionFlyoutItemName(exceptionName);
|
||||
|
||||
// Add Condition
|
||||
editException(FIELD_DIFFERENT_FROM_EXISTING_ITEM_FIELD, 0, 0);
|
||||
|
||||
// select shared list radio option and select the first one
|
||||
linkFirstSharedListOnExceptionFlyout();
|
||||
|
||||
// add exception comment which is super long
|
||||
addExceptionHugeComment([...new Array(5000).keys()].map((_) => `Test text!`).join(''));
|
||||
|
||||
// submit
|
||||
submitNewExceptionItemWithFailure();
|
||||
|
||||
// Failed to add exception due to comment length and submit button should be disabled
|
||||
cy.get(CONFIRM_BTN).should('have.attr', 'disabled');
|
||||
|
||||
// Close error toast
|
||||
closeErrorToast();
|
||||
|
||||
// Dismiss error callout
|
||||
dismissExceptionItemErrorCallOut();
|
||||
|
||||
// Submit button should be enabled after we dismissed error callout
|
||||
cy.get(CONFIRM_BTN).should('not.have.attr', 'disabled');
|
||||
|
||||
// update exception comment to a reasonable (length wise) text
|
||||
editExceptionComment('Exceptional comment');
|
||||
|
||||
// submit
|
||||
submitNewExceptionItem();
|
||||
|
||||
// New exception is added to the new List
|
||||
findSharedExceptionListItemsByName(`${EXCEPTION_LIST_NAME}`, [exceptionName]);
|
||||
});
|
||||
|
||||
const exceptionName = 'My item name';
|
||||
const exceptionNameEdited = 'My item name edited';
|
||||
const FIELD_DIFFERENT_FROM_EXISTING_ITEM_FIELD = 'agent.name';
|
||||
const EXCEPTION_LIST_NAME = 'Newly created list';
|
||||
|
||||
describe('Add, Edit and delete Exception item', () => {
|
||||
it('should create exception item from Shared Exception List page and linked to a Rule', () => {
|
||||
// Click on "Create shared exception list" button on the header
|
||||
// Click on "Create exception item"
|
||||
addExceptionListFromSharedExceptionListHeaderMenu();
|
||||
|
||||
// Add exception item name
|
||||
addExceptionFlyoutItemName(exceptionName);
|
||||
|
||||
// Add Condition
|
||||
editException(FIELD_DIFFERENT_FROM_EXISTING_ITEM_FIELD, 0, 0);
|
||||
|
||||
// Confirm button should disabled until a rule(s) is selected
|
||||
cy.get(CONFIRM_BTN).should('have.attr', 'disabled');
|
||||
|
||||
// select rule
|
||||
linkFirstRuleOnExceptionFlyout();
|
||||
|
||||
// should be able to submit
|
||||
cy.get(CONFIRM_BTN).should('not.have.attr', 'disabled');
|
||||
|
||||
submitNewExceptionItem();
|
||||
|
||||
// Navigate to Rule details page
|
||||
cy.get<Cypress.Response<RuleResponse>>('@createdRule').then((rule) =>
|
||||
visitRuleDetailsPage(rule.body.id, { tab: 'rule_exceptions' })
|
||||
);
|
||||
|
||||
// Only one Exception should generated
|
||||
cy.get(EXCEPTION_ITEM_VIEWER_CONTAINER).should('have.length', 1);
|
||||
|
||||
// validate the And operator is displayed correctly
|
||||
cy.get(EXCEPTION_CARD_ITEM_NAME).should('have.text', exceptionName);
|
||||
});
|
||||
|
||||
it('should create exception item from Shared Exception List page, linked to a Shared List and validate Edit/delete in list detail page', function () {
|
||||
createSharedExceptionList(
|
||||
{ name: 'Newly created list', description: 'This is my list.' },
|
||||
true
|
||||
);
|
||||
|
||||
// After creation - directed to list detail page
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_NAME).should('have.text', EXCEPTION_LIST_NAME);
|
||||
|
||||
// Go back to Shared Exception List
|
||||
visit(EXCEPTIONS_URL);
|
||||
|
||||
// Click on "Create shared exception list" button on the header
|
||||
// Click on "Create exception item"
|
||||
addExceptionListFromSharedExceptionListHeaderMenu();
|
||||
|
||||
// Add exception item name
|
||||
addExceptionFlyoutItemName(exceptionName);
|
||||
|
||||
// Add Condition
|
||||
editException(FIELD_DIFFERENT_FROM_EXISTING_ITEM_FIELD, 0, 0);
|
||||
|
||||
// select shared list radio option and select the first one
|
||||
linkFirstSharedListOnExceptionFlyout();
|
||||
|
||||
submitNewExceptionItem();
|
||||
|
||||
// New exception is added to the new List
|
||||
findSharedExceptionListItemsByName(`${EXCEPTION_LIST_NAME}`, [exceptionName]);
|
||||
|
||||
// Click on the first exception overflow menu items
|
||||
// Open the edit modal
|
||||
editFirstExceptionItemInListDetailPage();
|
||||
// edit exception item name
|
||||
editExceptionFlyoutItemName(exceptionNameEdited);
|
||||
|
||||
// submit
|
||||
submitEditedExceptionItem();
|
||||
|
||||
// check the new name after edit
|
||||
cy.get(EXECPTION_ITEM_CARD_HEADER_TITLE).should('have.text', exceptionNameEdited);
|
||||
|
||||
// Click on the first exception overflow menu items
|
||||
// delete the exception
|
||||
deleteFirstExceptionItemInListDetailPage();
|
||||
|
||||
cy.get(EMPTY_EXCEPTIONS_VIEWER).should('exist');
|
||||
});
|
||||
|
||||
it('should handle huge text as a comment gracefully and allow user create exception item after user updates the comment', function () {
|
||||
createSharedExceptionList(
|
||||
{ name: 'Newly created list', description: 'This is my list.' },
|
||||
true
|
||||
);
|
||||
|
||||
// After creation - directed to list detail page
|
||||
cy.get(EXCEPTIONS_LIST_MANAGEMENT_NAME).should('have.text', EXCEPTION_LIST_NAME);
|
||||
|
||||
// Go back to Shared Exception List
|
||||
visit(EXCEPTIONS_URL);
|
||||
|
||||
// Click on "Create shared exception list" button on the header
|
||||
// Click on "Create exception item"
|
||||
addExceptionListFromSharedExceptionListHeaderMenu();
|
||||
|
||||
// Add exception item name
|
||||
addExceptionFlyoutItemName(exceptionName);
|
||||
|
||||
// Add Condition
|
||||
editException(FIELD_DIFFERENT_FROM_EXISTING_ITEM_FIELD, 0, 0);
|
||||
|
||||
// select shared list radio option and select the first one
|
||||
linkFirstSharedListOnExceptionFlyout();
|
||||
|
||||
// add exception comment which is super long
|
||||
addExceptionHugeComment([...new Array(5000).keys()].map((_) => `Test text!`).join(''));
|
||||
|
||||
// submit
|
||||
submitNewExceptionItemWithFailure();
|
||||
|
||||
// Failed to add exception due to comment length and submit button should be disabled
|
||||
cy.get(CONFIRM_BTN).should('have.attr', 'disabled');
|
||||
|
||||
// Close error toast
|
||||
closeErrorToast();
|
||||
|
||||
// Dismiss error callout
|
||||
dismissExceptionItemErrorCallOut();
|
||||
|
||||
// Submit button should be enabled after we dismissed error callout
|
||||
cy.get(CONFIRM_BTN).should('not.have.attr', 'disabled');
|
||||
|
||||
// update exception comment to a reasonable (length wise) text
|
||||
editExceptionComment('Exceptional comment');
|
||||
|
||||
// submit
|
||||
submitNewExceptionItem();
|
||||
|
||||
// New exception is added to the new List
|
||||
findSharedExceptionListItemsByName(`${EXCEPTION_LIST_NAME}`, [exceptionName]);
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -42,9 +42,7 @@ const getExceptionList2 = () => ({
|
|||
list_id: 'exception_list_2',
|
||||
});
|
||||
|
||||
// TODO: https://github.com/elastic/kibana/issues/161539
|
||||
// Flaky in serverless tests
|
||||
describe('Duplicate List', { tags: ['@ess', '@serverless', '@skipInServerless'] }, () => {
|
||||
describe('Duplicate List', { tags: ['@ess', '@serverless'] }, () => {
|
||||
beforeEach(() => {
|
||||
login();
|
||||
deleteAlertsAndRules();
|
||||
|
|
|
@ -37,8 +37,7 @@ const getExceptionList2 = () => ({
|
|||
list_id: 'exception_list_2',
|
||||
});
|
||||
|
||||
// TODO: https://github.com/elastic/kibana/issues/161539
|
||||
describe('Filter Lists', { tags: ['@ess', '@serverless', '@skipInServerless'] }, () => {
|
||||
describe('Filter Lists', { tags: ['@ess', '@serverless'] }, () => {
|
||||
beforeEach(() => {
|
||||
login();
|
||||
|
||||
|
|
|
@ -21,8 +21,6 @@ import { login } from '../../../../tasks/login';
|
|||
import { visit } from '../../../../tasks/navigation';
|
||||
import { EXCEPTIONS_URL } from '../../../../urls/navigation';
|
||||
|
||||
// TODO: https://github.com/elastic/kibana/issues/161539
|
||||
// Flaky in serverless
|
||||
describe('Import Lists', { tags: ['@ess', '@serverless', '@skipInServerless'] }, () => {
|
||||
const LIST_TO_IMPORT_FILENAME = 'cypress/fixtures/7_16_exception_list.ndjson';
|
||||
beforeEach(() => {
|
||||
|
|
|
@ -48,12 +48,9 @@ const getExceptionList2 = () => ({
|
|||
|
||||
let exceptionListResponse: Cypress.Response<ExceptionListSchema>;
|
||||
|
||||
// TODO: https://github.com/elastic/kibana/issues/161539
|
||||
// FLAKY: https://github.com/elastic/kibana/issues/165690
|
||||
// FLAKY: https://github.com/elastic/kibana/issues/165838
|
||||
describe.skip(
|
||||
describe(
|
||||
'Manage lists from "Shared Exception Lists" page',
|
||||
{ tags: ['@ess', '@serverless', '@skipInServerless'] },
|
||||
{ tags: ['@ess', '@serverless'] },
|
||||
() => {
|
||||
describe('Create/Export/Delete List', () => {
|
||||
before(() => {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
"scripts": {
|
||||
"cypress": "NODE_OPTIONS=--openssl-legacy-provider ../../../node_modules/.bin/cypress",
|
||||
"cypress:open:ess": "TZ=UTC NODE_OPTIONS=--openssl-legacy-provider node ../../plugins/security_solution/scripts/start_cypress_parallel open --spec './cypress/e2e/**/*.cy.ts' --config-file ../../test/security_solution_cypress/cypress/cypress.config.ts --ftr-config-file ../../test/security_solution_cypress/cli_config",
|
||||
"cypress:run:ess": "yarn cypress:ess --spec './cypress/e2e/!(investigations|explore)/**/*.cy.ts'",
|
||||
"cypress:run:ess": "yarn cypress:ess --spec './cypress/e2e/exceptions/shared_exception_lists_management/**/*.cy.ts'",
|
||||
"cypress:run:cases:ess": "yarn cypress:ess --spec './cypress/e2e/explore/cases/*.cy.ts'",
|
||||
"cypress:ess": "TZ=UTC NODE_OPTIONS=--openssl-legacy-provider node ../../plugins/security_solution/scripts/start_cypress_parallel run --config-file ../../test/security_solution_cypress/cypress/cypress_ci.config.ts --ftr-config-file ../../test/security_solution_cypress/cli_config",
|
||||
"cypress:run:respops:ess": "yarn cypress:ess --spec './cypress/e2e/(detection_response|exceptions)/**/*.cy.ts'",
|
||||
|
@ -21,7 +21,7 @@
|
|||
"cypress:cloud:serverless": "TZ=UTC NODE_OPTIONS=--openssl-legacy-provider NODE_TLS_REJECT_UNAUTHORIZED=0 ../../../node_modules/.bin/cypress",
|
||||
"cypress:open:cloud:serverless": "yarn cypress:cloud:serverless open --config-file ./cypress/cypress_serverless.config.ts --env CLOUD_SERVERLESS=true",
|
||||
"cypress:open:serverless": "yarn cypress:serverless open --config-file ../../test/security_solution_cypress/cypress/cypress_serverless.config.ts --spec './cypress/e2e/**/*.cy.ts'",
|
||||
"cypress:run:serverless": "yarn cypress:serverless --spec './cypress/e2e/!(investigations|explore)/**/*.cy.ts'",
|
||||
"cypress:run:serverless": "yarn cypress:serverless --spec './cypress/e2e/exceptions/shared_exception_lists_management/**/*.cy.ts'",
|
||||
"cypress:run:cloud:serverless": "yarn cypress:cloud:serverless run --config-file ./cypress/cypress_ci_serverless.config.ts --env CLOUD_SERVERLESS=true",
|
||||
"cypress:run:qa:serverless": "yarn cypress:cloud:serverless run --config-file ./cypress/cypress_ci_serverless_qa.config.ts --env CLOUD_SERVERLESS=true",
|
||||
"cypress:investigations:run:serverless": "yarn cypress:serverless --spec './cypress/e2e/investigations/**/*.cy.ts'",
|
||||
|
@ -29,4 +29,4 @@
|
|||
"cypress:changed-specs-only:serverless": "yarn cypress:serverless --changed-specs-only --env burn=5",
|
||||
"cypress:burn:serverless": "yarn cypress:serverless --env burn=5"
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue