mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
[Security Solution] Creates Investigations cypress execution (#158236)
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: Patryk Kopycinski <contact@patrykkopycinski.com>
This commit is contained in:
parent
f84e2d6545
commit
cf7ed17163
50 changed files with 466 additions and 371 deletions
|
@ -39,6 +39,7 @@ disabled:
|
|||
- x-pack/test/security_solution_cypress/ccs_config.ts
|
||||
- x-pack/test/security_solution_cypress/cli_config.ts
|
||||
- x-pack/test/security_solution_cypress/cli_config_parallel.ts
|
||||
- x-pack/test/security_solution_cypress/cli_config_investigations_parallel.ts
|
||||
- x-pack/test/security_solution_cypress/config.firefox.ts
|
||||
- x-pack/test/security_solution_cypress/config.ts
|
||||
- x-pack/test/security_solution_cypress/response_ops_cli_config.ts
|
||||
|
|
|
@ -63,6 +63,20 @@ steps:
|
|||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/steps/functional/security_solution_investigations.sh
|
||||
label: 'Investigations - Security Solution Tests'
|
||||
agents:
|
||||
queue: n2-4-spot
|
||||
depends_on: build
|
||||
timeout_in_minutes: 120
|
||||
parallelism: 4
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '-1'
|
||||
limit: 3
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/steps/functional/synthetics_plugin.sh
|
||||
label: 'Synthetics @elastic/synthetics Tests'
|
||||
agents:
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
steps:
|
||||
- command: .buildkite/scripts/steps/functional/security_solution_investigations.sh
|
||||
label: 'Investigations - Security Solution Tests'
|
||||
agents:
|
||||
queue: n2-4-spot
|
||||
depends_on: build
|
||||
timeout_in_minutes: 120
|
||||
parallelism: 4
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '-1'
|
||||
limit: 3
|
||||
- exit_status: '*'
|
||||
limit: 1
|
|
@ -73,6 +73,9 @@ const uploadPipeline = (pipelineContent: string | object) => {
|
|||
GITHUB_PR_LABELS.includes('ci:all-cypress-suites')
|
||||
) {
|
||||
pipeline.push(getPipeline('.buildkite/pipelines/pull_request/security_solution.yml'));
|
||||
pipeline.push(
|
||||
getPipeline('.buildkite/pipelines/pull_request/security_solution_investigations.yml')
|
||||
);
|
||||
pipeline.push(getPipeline('.buildkite/pipelines/pull_request/defend_workflows.yml'));
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/steps/functional/common.sh
|
||||
|
||||
export JOB=kibana-security-solution-chrome
|
||||
export CLI_NUMBER=${CLI_NUMBER:-$((BUILDKITE_PARALLEL_JOB+1))}
|
||||
export CLI_COUNT=${CLI_COUNT:-$BUILDKITE_PARALLEL_JOB_COUNT}
|
||||
|
||||
echo "--- Security Solution tests (Chrome)"
|
||||
|
||||
node scripts/functional_tests \
|
||||
--debug --bail \
|
||||
--kibana-install-dir "$KIBANA_BUILD_LOCATION" \
|
||||
--config x-pack/test/security_solution_cypress/cli_config_investigations_parallel.ts
|
5
.github/CODEOWNERS
vendored
5
.github/CODEOWNERS
vendored
|
@ -1006,10 +1006,7 @@ x-pack/plugins/cloud_integrations/cloud_full_story/server/config.ts @elastic/kib
|
|||
/x-pack/plugins/security_solution/common/search_strategy/timeline @elastic/security-threat-hunting-investigations
|
||||
/x-pack/plugins/security_solution/common/types/timeline @elastic/security-threat-hunting-investigations
|
||||
|
||||
/x-pack/plugins/security_solution/cypress/e2e/timeline_templates @elastic/security-threat-hunting-investigations
|
||||
/x-pack/plugins/security_solution/cypress/e2e/timeline @elastic/security-threat-hunting-investigations
|
||||
/x-pack/plugins/security_solution/cypress/e2e/detection_alerts @elastic/security-threat-hunting-investigations
|
||||
/x-pack/plugins/security_solution/cypress/e2e/urls @elastic/security-threat-hunting-investigations
|
||||
/x-pack/plugins/security_solution/cypress/e2e/investigations @elastic/security-threat-hunting-investigations
|
||||
|
||||
/x-pack/plugins/security_solution/public/common/components/alerts_viewer @elastic/security-threat-hunting-investigations
|
||||
/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_action @elastic/security-threat-hunting-investigations
|
||||
|
|
|
@ -5,18 +5,18 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { OVERLAY_CONTAINER } from '../../screens/alerts';
|
||||
import { OVERLAY_CONTAINER } from '../../../screens/alerts';
|
||||
import {
|
||||
closeAnalyzer,
|
||||
closeSessionViewerFromAlertTable,
|
||||
openAnalyzerForFirstAlertInTimeline,
|
||||
openSessionViewerFromAlertTable,
|
||||
} from '../../tasks/alerts';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../tasks/create_new_rule';
|
||||
import { esArchiverLoad, esArchiverUnload } from '../../tasks/es_archiver';
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { ALERTS_URL } from '../../urls/navigation';
|
||||
} from '../../../tasks/alerts';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
import { esArchiverLoad, esArchiverUnload } from '../../../tasks/es_archiver';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('Alerts Table Action column', { testIsolation: false }, () => {
|
||||
before(() => {
|
|
@ -5,8 +5,8 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { getNewRule } from '../../objects/rule';
|
||||
import { CELL_COPY_BUTTON, FILTER_BADGE, SHOW_TOP_N_HEADER } from '../../screens/alerts';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { CELL_COPY_BUTTON, FILTER_BADGE, SHOW_TOP_N_HEADER } from '../../../screens/alerts';
|
||||
import {
|
||||
ALERT_TABLE_ACTIONS_HEADER,
|
||||
ALERT_TABLE_FILE_NAME_HEADER,
|
||||
|
@ -14,7 +14,7 @@ import {
|
|||
ALERT_TABLE_SEVERITY_HEADER,
|
||||
ALERT_TABLE_SEVERITY_VALUES,
|
||||
PROVIDER_BADGE,
|
||||
} from '../../screens/timeline';
|
||||
} from '../../../screens/timeline';
|
||||
|
||||
import {
|
||||
scrollAlertTableColumnIntoView,
|
||||
|
@ -24,21 +24,21 @@ import {
|
|||
clickExpandActions,
|
||||
filterOutAlertProperty,
|
||||
closeTopNAlertProperty,
|
||||
} from '../../tasks/alerts';
|
||||
import { createRule } from '../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../tasks/create_new_rule';
|
||||
import { login, visit } from '../../tasks/login';
|
||||
} from '../../../tasks/alerts';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import {
|
||||
clearKqlQueryBar,
|
||||
fillAddFilterForm,
|
||||
fillKqlQueryBar,
|
||||
openAddFilterPopover,
|
||||
removeKqlFilter,
|
||||
} from '../../tasks/search_bar';
|
||||
import { closeTimeline, openActiveTimeline, removeDataProvider } from '../../tasks/timeline';
|
||||
} from '../../../tasks/search_bar';
|
||||
import { closeTimeline, openActiveTimeline, removeDataProvider } from '../../../tasks/timeline';
|
||||
|
||||
import { ALERTS_URL } from '../../urls/navigation';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
describe('Alerts cell actions', { testIsolation: false }, () => {
|
||||
before(() => {
|
||||
cleanKibana();
|
|
@ -14,21 +14,26 @@ import {
|
|||
OVERVIEW_RULE,
|
||||
TABLE_CONTAINER,
|
||||
TABLE_ROWS,
|
||||
} from '../../screens/alerts_details';
|
||||
import { closeAlertFlyout, expandFirstAlert } from '../../tasks/alerts';
|
||||
import { changeAlertStatusTo, filterBy, openJsonView, openTable } from '../../tasks/alerts_details';
|
||||
import { createRule } from '../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../tasks/create_new_rule';
|
||||
import { esArchiverLoad, esArchiverUnload } from '../../tasks/es_archiver';
|
||||
import { login, visit, visitWithoutDateRange } from '../../tasks/login';
|
||||
import { getNewRule, getUnmappedRule } from '../../objects/rule';
|
||||
import { ALERTS_URL } from '../../urls/navigation';
|
||||
import { tablePageSelector } from '../../screens/table_pagination';
|
||||
import { ALERTS_TABLE_COUNT } from '../../screens/timeline';
|
||||
import { ALERT_SUMMARY_SEVERITY_DONUT_CHART } from '../../screens/alerts';
|
||||
import { getLocalstorageEntryAsObject } from '../../helpers/common';
|
||||
import { goToRuleDetails } from '../../tasks/alerts_detection_rules';
|
||||
} from '../../../screens/alerts_details';
|
||||
import { closeAlertFlyout, expandFirstAlert } from '../../../tasks/alerts';
|
||||
import {
|
||||
changeAlertStatusTo,
|
||||
filterBy,
|
||||
openJsonView,
|
||||
openTable,
|
||||
} from '../../../tasks/alerts_details';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
import { esArchiverLoad, esArchiverUnload } from '../../../tasks/es_archiver';
|
||||
import { login, visit, visitWithoutDateRange } from '../../../tasks/login';
|
||||
import { getNewRule, getUnmappedRule } from '../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import { tablePageSelector } from '../../../screens/table_pagination';
|
||||
import { ALERTS_TABLE_COUNT } from '../../../screens/timeline';
|
||||
import { ALERT_SUMMARY_SEVERITY_DONUT_CHART } from '../../../screens/alerts';
|
||||
import { getLocalstorageEntryAsObject } from '../../../helpers/common';
|
||||
import { goToRuleDetails } from '../../../tasks/alerts_detection_rules';
|
||||
|
||||
describe('Alert details flyout', () => {
|
||||
describe('Basic functions', () => {
|
|
@ -5,18 +5,21 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { getBuildingBlockRule } from '../../objects/rule';
|
||||
import { OVERVIEW_ALERTS_HISTOGRAM_EMPTY } from '../../screens/overview';
|
||||
import { HIGHLIGHTED_ROWS_IN_TABLE } from '../../screens/rule_details';
|
||||
import { OVERVIEW } from '../../screens/security_header';
|
||||
import { goToRuleDetails } from '../../tasks/alerts_detection_rules';
|
||||
import { createRule } from '../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { waitForAlertsToPopulate, waitForTheRuleToBeExecuted } from '../../tasks/create_new_rule';
|
||||
import { esArchiverLoad, esArchiverUnload } from '../../tasks/es_archiver';
|
||||
import { login, visitWithoutDateRange } from '../../tasks/login';
|
||||
import { navigateFromHeaderTo } from '../../tasks/security_header';
|
||||
import { DETECTIONS_RULE_MANAGEMENT_URL } from '../../urls/navigation';
|
||||
import { getBuildingBlockRule } from '../../../objects/rule';
|
||||
import { OVERVIEW_ALERTS_HISTOGRAM_EMPTY } from '../../../screens/overview';
|
||||
import { HIGHLIGHTED_ROWS_IN_TABLE } from '../../../screens/rule_details';
|
||||
import { OVERVIEW } from '../../../screens/security_header';
|
||||
import { goToRuleDetails } from '../../../tasks/alerts_detection_rules';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import {
|
||||
waitForAlertsToPopulate,
|
||||
waitForTheRuleToBeExecuted,
|
||||
} from '../../../tasks/create_new_rule';
|
||||
import { esArchiverLoad, esArchiverUnload } from '../../../tasks/es_archiver';
|
||||
import { login, visitWithoutDateRange } from '../../../tasks/login';
|
||||
import { navigateFromHeaderTo } from '../../../tasks/security_header';
|
||||
import { DETECTIONS_RULE_MANAGEMENT_URL } from '../../../urls/navigation';
|
||||
|
||||
const EXPECTED_NUMBER_OF_ALERTS = 5;
|
||||
|
|
@ -5,15 +5,15 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { ROLES } from '../../../common/test';
|
||||
import { getNewRule } from '../../objects/rule';
|
||||
import { ROLES } from '../../../../common/test';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import {
|
||||
ALERTS_COUNT,
|
||||
TAKE_ACTION_POPOVER_BTN,
|
||||
SELECTED_ALERTS,
|
||||
ALERT_COUNT_TABLE_COLUMN,
|
||||
ALERT_EMBEDDABLE_EMPTY_PROMPT,
|
||||
} from '../../screens/alerts';
|
||||
} from '../../../screens/alerts';
|
||||
|
||||
import {
|
||||
selectNumberOfAlerts,
|
||||
|
@ -30,14 +30,14 @@ import {
|
|||
waitForPageFilters,
|
||||
sumAlertCountFromAlertCountTable,
|
||||
parseAlertsCountToInt,
|
||||
} from '../../tasks/alerts';
|
||||
import { createRule } from '../../tasks/api_calls/rules';
|
||||
import { cleanKibana, deleteAlertsAndRules } from '../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../tasks/create_new_rule';
|
||||
import { esArchiverLoad, esArchiverUnload } from '../../tasks/es_archiver';
|
||||
import { login, visit } from '../../tasks/login';
|
||||
} from '../../../tasks/alerts';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { cleanKibana, deleteAlertsAndRules } from '../../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
import { esArchiverLoad, esArchiverUnload } from '../../../tasks/es_archiver';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
|
||||
import { ALERTS_URL } from '../../urls/navigation';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('Changing alert status', () => {
|
||||
before(() => {
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
import { encode } from '@kbn/rison';
|
||||
import { getNewRule } from '../../objects/rule';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import {
|
||||
CONTROL_FRAMES,
|
||||
CONTROL_FRAME_TITLE,
|
||||
|
@ -17,13 +17,13 @@ import {
|
|||
OPTION_LIST_VALUES,
|
||||
OPTION_SELECTABLE,
|
||||
FILTER_GROUP_CONTROL_ACTION_EDIT,
|
||||
} from '../../screens/common/filter_group';
|
||||
import { createRule } from '../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { ALERTS_URL } from '../../urls/navigation';
|
||||
import { DEFAULT_DETECTION_PAGE_FILTERS } from '../../../common/constants';
|
||||
import { formatPageFilterSearchParam } from '../../../common/utils/format_page_filter_search_param';
|
||||
} from '../../../screens/common/filter_group';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import { DEFAULT_DETECTION_PAGE_FILTERS } from '../../../../common/constants';
|
||||
import { formatPageFilterSearchParam } from '../../../../common/utils/format_page_filter_search_param';
|
||||
import {
|
||||
closePageFilterPopover,
|
||||
markAcknowledgedFirstAlert,
|
||||
|
@ -33,10 +33,10 @@ import {
|
|||
visitAlertsPageWithCustomFilters,
|
||||
waitForAlerts,
|
||||
waitForPageFilters,
|
||||
} from '../../tasks/alerts';
|
||||
import { ALERTS_COUNT } from '../../screens/alerts';
|
||||
import { navigateFromHeaderTo } from '../../tasks/security_header';
|
||||
import { ALERTS, CASES } from '../../screens/security_header';
|
||||
} from '../../../tasks/alerts';
|
||||
import { ALERTS_COUNT } from '../../../screens/alerts';
|
||||
import { navigateFromHeaderTo } from '../../../tasks/security_header';
|
||||
import { ALERTS, CASES } from '../../../screens/security_header';
|
||||
import {
|
||||
addNewFilterGroupControlValues,
|
||||
cancelFieldEditing,
|
||||
|
@ -45,7 +45,7 @@ import {
|
|||
editFilterGroupControl,
|
||||
editFilterGroupControls,
|
||||
saveFilterGroupControls,
|
||||
} from '../../tasks/common/filter_group';
|
||||
} from '../../../tasks/common/filter_group';
|
||||
|
||||
const customFilters = [
|
||||
{
|
|
@ -26,7 +26,7 @@ import {
|
|||
DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_BUTTON,
|
||||
DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_SESSION_VIEW_CONTENT,
|
||||
DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_CONTENT,
|
||||
} from '../../../screens/document_expandable_flyout';
|
||||
} from '../../../../screens/document_expandable_flyout';
|
||||
import {
|
||||
expandDocumentDetailsExpandableFlyoutLeftSection,
|
||||
expandFirstAlertExpandableFlyout,
|
||||
|
@ -40,13 +40,13 @@ import {
|
|||
openThreatIntelligence,
|
||||
openPrevalence,
|
||||
openCorrelations,
|
||||
} from '../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
} from '../../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../../tasks/common';
|
||||
import { login, visit } from '../../../../tasks/login';
|
||||
import { createRule } from '../../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule';
|
||||
|
||||
// Skipping these for now as the feature is protected behind a feature flag set to false by default
|
||||
// To run the tests locally, add 'securityFlyoutEnabled' in the Cypress config.ts here https://github.com/elastic/kibana/blob/main/x-pack/test/security_solution_cypress/config.ts#L50
|
|
@ -5,19 +5,19 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { ANALYZER_NODE } from '../../../screens/alerts';
|
||||
import { DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_CONTENT } from '../../../screens/document_expandable_flyout';
|
||||
import { ANALYZER_NODE } from '../../../../screens/alerts';
|
||||
import { DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_GRAPH_ANALYZER_CONTENT } from '../../../../screens/document_expandable_flyout';
|
||||
import {
|
||||
expandFirstAlertExpandableFlyout,
|
||||
openGraphAnalyzer,
|
||||
expandDocumentDetailsExpandableFlyoutLeftSection,
|
||||
} from '../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
} from '../../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../../tasks/common';
|
||||
import { login, visit } from '../../../../tasks/login';
|
||||
import { createRule } from '../../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule';
|
||||
|
||||
// Skipping these for now as the feature is protected behind a feature flag set to false by default
|
||||
// To run the tests locally, add 'securityFlyoutEnabled' in the Cypress config.ts here https://github.com/elastic/kibana/blob/main/x-pack/test/security_solution_cypress/config.ts#L50
|
|
@ -8,19 +8,19 @@
|
|||
import {
|
||||
DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_USER_DETAILS,
|
||||
DOCUMENT_DETAILS_FLYOUT_INSIGHTS_TAB_HOST_DETAILS,
|
||||
} from '../../../screens/document_expandable_flyout';
|
||||
} from '../../../../screens/document_expandable_flyout';
|
||||
import {
|
||||
expandFirstAlertExpandableFlyout,
|
||||
openInsightsTab,
|
||||
openEntities,
|
||||
expandDocumentDetailsExpandableFlyoutLeftSection,
|
||||
} from '../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
} from '../../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../../tasks/common';
|
||||
import { login, visit } from '../../../../tasks/login';
|
||||
import { createRule } from '../../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule';
|
||||
|
||||
// Skipping these for now as the feature is protected behind a feature flag set to false by default
|
||||
// To run the tests locally, add 'securityFlyoutEnabled' in the Cypress config.ts here https://github.com/elastic/kibana/blob/main/x-pack/test/security_solution_cypress/config.ts#L50
|
|
@ -5,17 +5,17 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_SESSION_VIEW_NO_DATA } from '../../../screens/document_expandable_flyout';
|
||||
import { DOCUMENT_DETAILS_FLYOUT_VISUALIZE_TAB_SESSION_VIEW_NO_DATA } from '../../../../screens/document_expandable_flyout';
|
||||
import {
|
||||
expandFirstAlertExpandableFlyout,
|
||||
expandDocumentDetailsExpandableFlyoutLeftSection,
|
||||
} from '../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
} from '../../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../../tasks/common';
|
||||
import { login, visit } from '../../../../tasks/login';
|
||||
import { createRule } from '../../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule';
|
||||
|
||||
// Skipping these for now as the feature is protected behind a feature flag set to false by default
|
||||
// To run the tests locally, add 'securityFlyoutEnabled' in the Cypress config.ts here https://github.com/elastic/kibana/blob/main/x-pack/test/security_solution_cypress/config.ts#L50
|
|
@ -5,11 +5,11 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
import { expandFirstAlertExpandableFlyout } from '../../../tasks/document_expandable_flyout';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import { cleanKibana } from '../../../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule';
|
||||
import { expandFirstAlertExpandableFlyout } from '../../../../tasks/document_expandable_flyout';
|
||||
import { login, visit } from '../../../../tasks/login';
|
||||
import { ALERTS_URL } from '../../../../urls/navigation';
|
||||
|
||||
// Skipping these for now as the feature is protected behind a feature flag set to false by default
|
||||
// To run the tests locally, add 'securityFlyoutEnabled' in the Cypress config.ts here https://github.com/elastic/kibana/blob/main/x-pack/test/security_solution_cypress/config.ts#L50
|
|
@ -15,7 +15,7 @@ import {
|
|||
DOCUMENT_DETAILS_FLYOUT_TABLE_TAB,
|
||||
DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_CONTENT,
|
||||
DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_EVENT_TYPE_ROW,
|
||||
} from '../../../screens/document_expandable_flyout';
|
||||
} from '../../../../screens/document_expandable_flyout';
|
||||
import {
|
||||
collapseDocumentDetailsExpandableFlyoutLeftSection,
|
||||
expandDocumentDetailsExpandableFlyoutLeftSection,
|
||||
|
@ -24,13 +24,13 @@ import {
|
|||
openOverviewTab,
|
||||
openTableTab,
|
||||
scrollWithinDocumentDetailsExpandableFlyoutRightSection,
|
||||
} from '../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
} from '../../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../../tasks/common';
|
||||
import { login, visit } from '../../../../tasks/login';
|
||||
import { createRule } from '../../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule';
|
||||
|
||||
// Skipping these for now as the feature is protected behind a feature flag set to false by default
|
||||
// To run the tests locally, add 'securityFlyoutEnabled' in the Cypress config.ts here https://github.com/elastic/kibana/blob/main/x-pack/test/security_solution_cypress/config.ts#L50
|
|
@ -34,7 +34,7 @@ import {
|
|||
NEW_CASE_DESCRIPTION_INPUT,
|
||||
NEW_CASE_NAME_INPUT,
|
||||
VIEW_CASE_TOASTER_LINK,
|
||||
} from '../../../screens/document_expandable_flyout';
|
||||
} from '../../../../screens/document_expandable_flyout';
|
||||
import {
|
||||
expandFirstAlertExpandableFlyout,
|
||||
navigateToAlertsPage,
|
||||
|
@ -44,13 +44,13 @@ import {
|
|||
openTableTab,
|
||||
openTakeActionButton,
|
||||
openTakeActionButtonAndSelectItem,
|
||||
} from '../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
} from '../../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../../tasks/common';
|
||||
import { login, visit } from '../../../../tasks/login';
|
||||
import { createRule } from '../../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule';
|
||||
|
||||
const createNewCaseFromCases = () => {
|
||||
navigateToCasesPage();
|
|
@ -12,14 +12,14 @@ import {
|
|||
DOCUMENT_DETAILS_OVERVIEW_TAB_HEADER_SEVERITY,
|
||||
DOCUMENT_DETAILS_OVERVIEW_TAB_HEADER_SEVERITY_VALUE,
|
||||
DOCUMENT_DETAILS_OVERVIEW_TAB_HEADER_TITLE,
|
||||
} from '../../../screens/document_expandable_flyout';
|
||||
import { expandFirstAlertExpandableFlyout } from '../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
} from '../../../../screens/document_expandable_flyout';
|
||||
import { expandFirstAlertExpandableFlyout } from '../../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../../tasks/common';
|
||||
import { login, visit } from '../../../../tasks/login';
|
||||
import { createRule } from '../../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule';
|
||||
|
||||
// Skipping these for now as the feature is protected behind a feature flag set to false by default
|
||||
// To run the tests locally, add 'securityFlyoutEnabled' in the Cypress config.ts here https://github.com/elastic/kibana/blob/main/x-pack/test/security_solution_cypress/config.ts#L50
|
|
@ -38,7 +38,7 @@ import {
|
|||
DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_CORRELATIONS_CONTENT,
|
||||
DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_CORRELATIONS_VALUES,
|
||||
DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_INSIGHTS_CORRELATIONS_VIEW_ALL_BUTTON,
|
||||
} from '../../../screens/document_expandable_flyout';
|
||||
} from '../../../../screens/document_expandable_flyout';
|
||||
import {
|
||||
expandFirstAlertExpandableFlyout,
|
||||
openOverviewTab,
|
||||
|
@ -46,13 +46,13 @@ import {
|
|||
toggleOverviewTabInvestigationSection,
|
||||
toggleOverviewTabInsightsSection,
|
||||
toggleOverviewTabVisualizationsSection,
|
||||
} from '../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
} from '../../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../../tasks/common';
|
||||
import { login, visit } from '../../../../tasks/login';
|
||||
import { createRule } from '../../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule';
|
||||
|
||||
// Skipping these for now as the feature is protected behind a feature flag set to false by default
|
||||
// To run the tests locally, add 'securityFlyoutEnabled' in the Cypress config.ts here https://github.com/elastic/kibana/blob/main/x-pack/test/security_solution_cypress/config.ts#L50
|
|
@ -5,15 +5,15 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { closeTimeline, openActiveTimeline } from '../../../tasks/timeline';
|
||||
import { PROVIDER_BADGE } from '../../../screens/timeline';
|
||||
import { removeKqlFilter } from '../../../tasks/search_bar';
|
||||
import { FILTER_BADGE } from '../../../screens/alerts';
|
||||
import { closeTimeline, openActiveTimeline } from '../../../../tasks/timeline';
|
||||
import { PROVIDER_BADGE } from '../../../../screens/timeline';
|
||||
import { removeKqlFilter } from '../../../../tasks/search_bar';
|
||||
import { FILTER_BADGE } from '../../../../screens/alerts';
|
||||
import {
|
||||
DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_ID_ROW,
|
||||
DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_ROW_CELL_COPY_TO_CLIPBOARD,
|
||||
DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_TIMESTAMP_ROW,
|
||||
} from '../../../screens/document_expandable_flyout';
|
||||
} from '../../../../screens/document_expandable_flyout';
|
||||
import {
|
||||
addToTimelineTableTabTable,
|
||||
clearFilterTableTabTable,
|
||||
|
@ -23,13 +23,13 @@ import {
|
|||
filterOutTableTabTable,
|
||||
filterTableTabTable,
|
||||
openTableTab,
|
||||
} from '../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
} from '../../../../tasks/document_expandable_flyout';
|
||||
import { cleanKibana } from '../../../../tasks/common';
|
||||
import { login, visit } from '../../../../tasks/login';
|
||||
import { createRule } from '../../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../../objects/rule';
|
||||
import { ALERTS_URL } from '../../../../urls/navigation';
|
||||
import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule';
|
||||
|
||||
// Skipping these for now as the feature is protected behind a feature flag set to false by default
|
||||
// To run the tests locally, add 'securityFlyoutEnabled' in the Cypress config.ts here https://github.com/elastic/kibana/blob/main/x-pack/test/security_solution_cypress/config.ts#L50
|
|
@ -5,17 +5,17 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
import { expandFirstAlertExpandableFlyout } from '../../../tasks/document_expandable_flyout';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import { getNewRule } from '../../../../objects/rule';
|
||||
import { cleanKibana } from '../../../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../../../tasks/create_new_rule';
|
||||
import { expandFirstAlertExpandableFlyout } from '../../../../tasks/document_expandable_flyout';
|
||||
import { login, visit } from '../../../../tasks/login';
|
||||
import { createRule } from '../../../../tasks/api_calls/rules';
|
||||
import { ALERTS_URL } from '../../../../urls/navigation';
|
||||
import {
|
||||
DOCUMENT_DETAILS_FLYOUT_CLOSE_BUTTON,
|
||||
DOCUMENT_DETAILS_FLYOUT_HEADER_TITLE,
|
||||
} from '../../../screens/document_expandable_flyout';
|
||||
} from '../../../../screens/document_expandable_flyout';
|
||||
|
||||
// Skipping these for now as the feature is protected behind a feature flag set to false by default
|
||||
// To run the tests locally, add 'securityFlyoutEnabled' in the Cypress config.ts here https://github.com/elastic/kibana/blob/main/x-pack/test/security_solution_cypress/config.ts#L50
|
|
@ -5,18 +5,18 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { closeTimeline } from '../../tasks/timeline';
|
||||
import { getNewRule } from '../../objects/rule';
|
||||
import { PROVIDER_BADGE, QUERY_TAB_BUTTON, TIMELINE_TITLE } from '../../screens/timeline';
|
||||
import { FILTER_BADGE } from '../../screens/alerts';
|
||||
import { closeTimeline } from '../../../tasks/timeline';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { PROVIDER_BADGE, QUERY_TAB_BUTTON, TIMELINE_TITLE } from '../../../screens/timeline';
|
||||
import { FILTER_BADGE } from '../../../screens/alerts';
|
||||
|
||||
import { expandFirstAlert, investigateFirstAlertInTimeline } from '../../tasks/alerts';
|
||||
import { createRule } from '../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../tasks/create_new_rule';
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { expandFirstAlert, investigateFirstAlertInTimeline } from '../../../tasks/alerts';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
|
||||
import { ALERTS_URL } from '../../urls/navigation';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import {
|
||||
ALERT_FLYOUT,
|
||||
INSIGHTS_INVESTIGATE_ANCESTRY_ALERTS_IN_TIMELINE_BUTTON,
|
||||
|
@ -24,8 +24,8 @@ import {
|
|||
INSIGHTS_RELATED_ALERTS_BY_ANCESTRY,
|
||||
INSIGHTS_RELATED_ALERTS_BY_SESSION,
|
||||
SUMMARY_VIEW_INVESTIGATE_IN_TIMELINE_BUTTON,
|
||||
} from '../../screens/alerts_details';
|
||||
import { verifyInsightCount } from '../../tasks/alerts_details';
|
||||
} from '../../../screens/alerts_details';
|
||||
import { verifyInsightCount } from '../../../tasks/alerts_details';
|
||||
|
||||
describe('Investigate in timeline', { testIsolation: false }, () => {
|
||||
before(() => {
|
|
@ -5,21 +5,21 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { expandFirstAlert, waitForAlerts } from '../../tasks/alerts';
|
||||
import { createRule } from '../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { expandFirstAlert, waitForAlerts } from '../../../tasks/alerts';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
|
||||
import { getNewRule } from '../../objects/rule';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
|
||||
import { ALERTS_URL } from '../../urls/navigation';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
import {
|
||||
OPEN_ALERT_DETAILS_PAGE_CONTEXT_MENU_BTN,
|
||||
TIMELINE_CONTEXT_MENU_BTN,
|
||||
ALERTS_REFRESH_BTN,
|
||||
} from '../../screens/alerts';
|
||||
import { PAGE_TITLE } from '../../screens/common/page';
|
||||
import { OPEN_ALERT_DETAILS_PAGE } from '../../screens/alerts_details';
|
||||
} from '../../../screens/alerts';
|
||||
import { PAGE_TITLE } from '../../../screens/common/page';
|
||||
import { OPEN_ALERT_DETAILS_PAGE } from '../../../screens/alerts_details';
|
||||
|
||||
// This is skipped as the details page POC will be removed in favor of the expanded alert flyout
|
||||
// https://github.com/elastic/kibana/issues/154477
|
|
@ -5,17 +5,17 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { ANALYZER_NODE } from '../../screens/alerts';
|
||||
import { ANALYZER_NODE } from '../../../screens/alerts';
|
||||
|
||||
import { openAnalyzerForFirstAlertInTimeline } from '../../tasks/alerts';
|
||||
import { createRule } from '../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../objects/rule';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { setStartDate } from '../../tasks/date_picker';
|
||||
import { TOASTER } from '../../screens/alerts_detection_rules';
|
||||
import { waitForAlertsToPopulate } from '../../tasks/create_new_rule';
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { ALERTS_URL } from '../../urls/navigation';
|
||||
import { openAnalyzerForFirstAlertInTimeline } from '../../../tasks/alerts';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { setStartDate } from '../../../tasks/date_picker';
|
||||
import { TOASTER } from '../../../screens/alerts_detection_rules';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { ALERTS_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('Analyze events view for alerts', () => {
|
||||
before(() => {
|
|
@ -4,13 +4,13 @@
|
|||
* 2.0; you may not use this file except in compliance with the Elastic License
|
||||
* 2.0.
|
||||
*/
|
||||
import { getNewRule } from '../../objects/rule';
|
||||
import { ALERTS_COUNT } from '../../screens/alerts';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { ALERTS_COUNT } from '../../../screens/alerts';
|
||||
import {
|
||||
CONTROL_FRAMES,
|
||||
OPTION_LIST_LABELS,
|
||||
OPTION_LIST_VALUES,
|
||||
} from '../../screens/common/filter_group';
|
||||
} from '../../../screens/common/filter_group';
|
||||
|
||||
import {
|
||||
ALERTS_DONUT_CHART,
|
||||
|
@ -23,18 +23,18 @@ import {
|
|||
USER_TABLE_ROW_SEV,
|
||||
USER_TABLE_ROW_TOTAL_ALERTS,
|
||||
USER_TABLE_USER_NAME_BTN,
|
||||
} from '../../screens/detection_response';
|
||||
import { DETECTION_RESPONSE } from '../../screens/security_header';
|
||||
import { QUERY_TAB_BUTTON, TIMELINE_DATA_PROVIDERS_CONTAINER } from '../../screens/timeline';
|
||||
import { waitForAlerts } from '../../tasks/alerts';
|
||||
import { createRule } from '../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { investigateDashboardItemInTimeline } from '../../tasks/dashboards/common';
|
||||
import { waitToNavigateAwayFrom } from '../../tasks/kibana_navigation';
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { clearSearchBar, kqlSearch, navigateFromHeaderTo } from '../../tasks/security_header';
|
||||
import { closeTimeline } from '../../tasks/timeline';
|
||||
import { ALERTS_URL, DASHBOARDS_URL, DETECTIONS_RESPONSE_URL } from '../../urls/navigation';
|
||||
} from '../../../screens/detection_response';
|
||||
import { DETECTION_RESPONSE } from '../../../screens/security_header';
|
||||
import { QUERY_TAB_BUTTON, TIMELINE_DATA_PROVIDERS_CONTAINER } from '../../../screens/timeline';
|
||||
import { waitForAlerts } from '../../../tasks/alerts';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { investigateDashboardItemInTimeline } from '../../../tasks/dashboards/common';
|
||||
import { waitToNavigateAwayFrom } from '../../../tasks/kibana_navigation';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { clearSearchBar, kqlSearch, navigateFromHeaderTo } from '../../../tasks/security_header';
|
||||
import { closeTimeline } from '../../../tasks/timeline';
|
||||
import { ALERTS_URL, DASHBOARDS_URL, DETECTIONS_RESPONSE_URL } from '../../../urls/navigation';
|
||||
|
||||
const TEST_USER_NAME = 'test';
|
||||
const SIEM_KIBANA_HOST_NAME = 'siem-kibana';
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { getTimeline } from '../../objects/timeline';
|
||||
import { getTimeline } from '../../../objects/timeline';
|
||||
|
||||
import {
|
||||
FAVORITE_TIMELINE,
|
||||
|
@ -18,18 +18,18 @@ import {
|
|||
TIMELINE_FLYOUT_WRAPPER,
|
||||
TIMELINE_QUERY,
|
||||
TIMELINE_TITLE,
|
||||
} from '../../screens/timeline';
|
||||
} from '../../../screens/timeline';
|
||||
import {
|
||||
TIMELINES_DESCRIPTION,
|
||||
TIMELINES_PINNED_EVENT_COUNT,
|
||||
TIMELINES_NOTES_COUNT,
|
||||
TIMELINES_FAVORITE,
|
||||
} from '../../screens/timelines';
|
||||
import { createTimeline } from '../../tasks/api_calls/timelines';
|
||||
import { cleanKibana, deleteTimelines } from '../../tasks/common';
|
||||
} from '../../../screens/timelines';
|
||||
import { createTimeline } from '../../../tasks/api_calls/timelines';
|
||||
import { cleanKibana, deleteTimelines } from '../../../tasks/common';
|
||||
|
||||
import { login, visitWithoutDateRange } from '../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../tasks/security_main';
|
||||
import { login, visitWithoutDateRange } from '../../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../../tasks/security_main';
|
||||
import {
|
||||
addDescriptionToTimeline,
|
||||
addFilter,
|
||||
|
@ -43,10 +43,10 @@ import {
|
|||
openTimelineTemplateFromSettings,
|
||||
populateTimeline,
|
||||
waitForTimelineChanges,
|
||||
} from '../../tasks/timeline';
|
||||
import { openTimeline, waitForTimelinesPanelToBeLoaded } from '../../tasks/timelines';
|
||||
} from '../../../tasks/timeline';
|
||||
import { openTimeline, waitForTimelinesPanelToBeLoaded } from '../../../tasks/timelines';
|
||||
|
||||
import { TIMELINES_URL } from '../../urls/navigation';
|
||||
import { TIMELINES_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('Timeline Templates', () => {
|
||||
before(() => {
|
|
@ -5,17 +5,17 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { exportTimeline } from '../../tasks/timelines';
|
||||
import { login, visitWithoutDateRange } from '../../tasks/login';
|
||||
import { exportTimeline } from '../../../tasks/timelines';
|
||||
import { login, visitWithoutDateRange } from '../../../tasks/login';
|
||||
import {
|
||||
expectedExportedTimelineTemplate,
|
||||
getTimeline as getTimelineTemplate,
|
||||
} from '../../objects/timeline';
|
||||
} from '../../../objects/timeline';
|
||||
|
||||
import { TIMELINE_TEMPLATES_URL } from '../../urls/navigation';
|
||||
import { createTimelineTemplate } from '../../tasks/api_calls/timelines';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { searchByTitle } from '../../tasks/table_pagination';
|
||||
import { TIMELINE_TEMPLATES_URL } from '../../../urls/navigation';
|
||||
import { createTimelineTemplate } from '../../../tasks/api_calls/timelines';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { searchByTitle } from '../../../tasks/table_pagination';
|
||||
|
||||
describe('Export timelines', () => {
|
||||
before(() => {
|
|
@ -5,23 +5,23 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { getNewRule } from '../../objects/rule';
|
||||
import { SELECTED_ALERTS } from '../../screens/alerts';
|
||||
import { SERVER_SIDE_EVENT_COUNT } from '../../screens/timeline';
|
||||
import { selectAllAlerts, selectFirstPageAlerts } from '../../tasks/alerts';
|
||||
import { createRule } from '../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { getNewRule } from '../../../objects/rule';
|
||||
import { SELECTED_ALERTS } from '../../../screens/alerts';
|
||||
import { SERVER_SIDE_EVENT_COUNT } from '../../../screens/timeline';
|
||||
import { selectAllAlerts, selectFirstPageAlerts } from '../../../tasks/alerts';
|
||||
import { createRule } from '../../../tasks/api_calls/rules';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import {
|
||||
bulkInvestigateSelectedEventsInTimeline,
|
||||
selectAllEvents,
|
||||
selectFirstPageEvents,
|
||||
} from '../../tasks/common/event_table';
|
||||
import { waitForAlertsToPopulate } from '../../tasks/create_new_rule';
|
||||
import { esArchiverLoad, esArchiverUnload } from '../../tasks/es_archiver';
|
||||
import { waitsForEventsToBeLoaded } from '../../tasks/hosts/events';
|
||||
import { openEvents, openSessions } from '../../tasks/hosts/main';
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { ALERTS_URL, HOSTS_URL } from '../../urls/navigation';
|
||||
} from '../../../tasks/common/event_table';
|
||||
import { waitForAlertsToPopulate } from '../../../tasks/create_new_rule';
|
||||
import { esArchiverLoad, esArchiverUnload } from '../../../tasks/es_archiver';
|
||||
import { waitsForEventsToBeLoaded } from '../../../tasks/hosts/events';
|
||||
import { openEvents, openSessions } from '../../../tasks/hosts/main';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { ALERTS_URL, HOSTS_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('Bulk Investigate in Timeline', () => {
|
||||
before(() => {
|
|
@ -5,8 +5,8 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { getTimeline } from '../../objects/timeline';
|
||||
import { ROLES } from '../../../common/test';
|
||||
import { getTimeline } from '../../../objects/timeline';
|
||||
import { ROLES } from '../../../../common/test';
|
||||
|
||||
import {
|
||||
LOCKED_ICON,
|
||||
|
@ -23,13 +23,13 @@ import {
|
|||
EDIT_TIMELINE_BTN,
|
||||
EDIT_TIMELINE_TOOLTIP,
|
||||
TIMELINE_CORRELATION_INPUT,
|
||||
} from '../../screens/timeline';
|
||||
import { createTimelineTemplate } from '../../tasks/api_calls/timelines';
|
||||
} from '../../../screens/timeline';
|
||||
import { createTimelineTemplate } from '../../../tasks/api_calls/timelines';
|
||||
|
||||
import { cleanKibana, deleteTimelines } from '../../tasks/common';
|
||||
import { login, visit, visitWithoutDateRange } from '../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../tasks/security_main';
|
||||
import { selectCustomTemplates } from '../../tasks/templates';
|
||||
import { cleanKibana, deleteTimelines } from '../../../tasks/common';
|
||||
import { login, visit, visitWithoutDateRange } from '../../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../../tasks/security_main';
|
||||
import { selectCustomTemplates } from '../../../tasks/templates';
|
||||
import {
|
||||
addEqlToTimeline,
|
||||
addFilter,
|
||||
|
@ -43,10 +43,10 @@ import {
|
|||
pinFirstEvent,
|
||||
populateTimeline,
|
||||
waitForTimelineChanges,
|
||||
} from '../../tasks/timeline';
|
||||
} from '../../../tasks/timeline';
|
||||
|
||||
import { OVERVIEW_URL, TIMELINE_TEMPLATES_URL } from '../../urls/navigation';
|
||||
import { EQL_QUERY_VALIDATION_ERROR } from '../../screens/create_new_rule';
|
||||
import { OVERVIEW_URL, TIMELINE_TEMPLATES_URL } from '../../../urls/navigation';
|
||||
import { EQL_QUERY_VALIDATION_ERROR } from '../../../screens/create_new_rule';
|
||||
|
||||
describe('Create a timeline from a template', () => {
|
||||
before(() => {
|
|
@ -11,11 +11,11 @@ import {
|
|||
TIMELINE_FLYOUT_HEADER,
|
||||
GET_TIMELINE_GRID_CELL,
|
||||
TIMELINE_DATA_PROVIDERS_CONTAINER,
|
||||
} from '../../screens/timeline';
|
||||
} from '../../../screens/timeline';
|
||||
|
||||
import { waitForAllHostsToBeLoaded } from '../../tasks/hosts/all_hosts';
|
||||
import { waitForAllHostsToBeLoaded } from '../../../tasks/hosts/all_hosts';
|
||||
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import {
|
||||
addDataProvider,
|
||||
updateDataProviderbyDraggingField,
|
||||
|
@ -24,10 +24,10 @@ import {
|
|||
waitForTimelineChanges,
|
||||
createNewTimeline,
|
||||
updateDataProviderByFieldHoverAction,
|
||||
} from '../../tasks/timeline';
|
||||
import { getTimeline } from '../../objects/timeline';
|
||||
import { HOSTS_URL } from '../../urls/navigation';
|
||||
import { cleanKibana, scrollToBottom } from '../../tasks/common';
|
||||
} from '../../../tasks/timeline';
|
||||
import { getTimeline } from '../../../objects/timeline';
|
||||
import { HOSTS_URL } from '../../../urls/navigation';
|
||||
import { cleanKibana, scrollToBottom } from '../../../tasks/common';
|
||||
|
||||
describe('timeline data providers', () => {
|
||||
before(() => {
|
|
@ -10,15 +10,15 @@ import {
|
|||
selectTimeline,
|
||||
selectAllTimelines,
|
||||
exportSelectedTimelines,
|
||||
} from '../../tasks/timelines';
|
||||
import { login, visitWithoutDateRange } from '../../tasks/login';
|
||||
} from '../../../tasks/timelines';
|
||||
import { login, visitWithoutDateRange } from '../../../tasks/login';
|
||||
|
||||
import { TIMELINES_URL } from '../../urls/navigation';
|
||||
import { TOASTER } from '../../screens/alerts_detection_rules';
|
||||
import { TIMELINE_CHECKBOX } from '../../screens/timelines';
|
||||
import { createTimeline } from '../../tasks/api_calls/timelines';
|
||||
import { expectedExportedTimeline, getTimeline } from '../../objects/timeline';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { TIMELINES_URL } from '../../../urls/navigation';
|
||||
import { TOASTER } from '../../../screens/alerts_detection_rules';
|
||||
import { TIMELINE_CHECKBOX } from '../../../screens/timelines';
|
||||
import { createTimeline } from '../../../tasks/api_calls/timelines';
|
||||
import { expectedExportedTimeline, getTimeline } from '../../../objects/timeline';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
|
||||
describe('Export timelines', () => {
|
||||
before(() => {
|
|
@ -16,9 +16,9 @@ import {
|
|||
FIELDS_BROWSER_SELECTED_CATEGORIES_BADGES,
|
||||
FIELDS_BROWSER_CATEGORY_BADGE,
|
||||
FIELDS_BROWSER_VIEW_BUTTON,
|
||||
} from '../../screens/fields_browser';
|
||||
import { TIMELINE_FIELDS_BUTTON } from '../../screens/timeline';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
} from '../../../screens/fields_browser';
|
||||
import { TIMELINE_FIELDS_BUTTON } from '../../../screens/timeline';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
|
||||
import {
|
||||
addsHostGeoCityNameToTimeline,
|
||||
|
@ -31,12 +31,12 @@ import {
|
|||
toggleCategory,
|
||||
activateViewSelected,
|
||||
activateViewAll,
|
||||
} from '../../tasks/fields_browser';
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../tasks/security_main';
|
||||
import { openTimelineFieldsBrowser, populateTimeline } from '../../tasks/timeline';
|
||||
} from '../../../tasks/fields_browser';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../../tasks/security_main';
|
||||
import { openTimelineFieldsBrowser, populateTimeline } from '../../../tasks/timeline';
|
||||
|
||||
import { HOSTS_URL } from '../../urls/navigation';
|
||||
import { HOSTS_URL } from '../../../urls/navigation';
|
||||
|
||||
const defaultHeaders = [
|
||||
{ id: '@timestamp' },
|
|
@ -5,23 +5,23 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { TIMELINE_BOTTOM_BAR_TOGGLE_BUTTON } from '../../screens/security_main';
|
||||
import { CREATE_NEW_TIMELINE, TIMELINE_FLYOUT_HEADER } from '../../screens/timeline';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { TIMELINE_BOTTOM_BAR_TOGGLE_BUTTON } from '../../../screens/security_main';
|
||||
import { CREATE_NEW_TIMELINE, TIMELINE_FLYOUT_HEADER } from '../../../screens/timeline';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
|
||||
import { waitForAllHostsToBeLoaded } from '../../tasks/hosts/all_hosts';
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { waitForAllHostsToBeLoaded } from '../../../tasks/hosts/all_hosts';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import {
|
||||
closeTimelineUsingCloseButton,
|
||||
closeTimelineUsingToggle,
|
||||
openTimelineUsingToggle,
|
||||
} from '../../tasks/security_main';
|
||||
} from '../../../tasks/security_main';
|
||||
import {
|
||||
closeCreateTimelineOptionsPopover,
|
||||
openCreateTimelineOptionsPopover,
|
||||
} from '../../tasks/timeline';
|
||||
} from '../../../tasks/timeline';
|
||||
|
||||
import { HOSTS_URL } from '../../urls/navigation';
|
||||
import { HOSTS_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('timeline flyout button', () => {
|
||||
before(() => {
|
|
@ -5,18 +5,18 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { TIMELINE_HEADER, TIMELINE_TABS } from '../../screens/timeline';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { TIMELINE_HEADER, TIMELINE_TABS } from '../../../screens/timeline';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import {
|
||||
openTimelineUsingToggle,
|
||||
enterFullScreenMode,
|
||||
exitFullScreenMode,
|
||||
} from '../../tasks/security_main';
|
||||
import { populateTimeline } from '../../tasks/timeline';
|
||||
} from '../../../tasks/security_main';
|
||||
import { populateTimeline } from '../../../tasks/timeline';
|
||||
|
||||
import { HOSTS_URL } from '../../urls/navigation';
|
||||
import { HOSTS_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('Toggle full screen', () => {
|
||||
before(() => {
|
|
@ -5,13 +5,13 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { INSPECT_MODAL } from '../../screens/inspect';
|
||||
import { INSPECT_MODAL } from '../../../screens/inspect';
|
||||
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../tasks/security_main';
|
||||
import { executeTimelineKQL, openTimelineInspectButton } from '../../tasks/timeline';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../../tasks/security_main';
|
||||
import { executeTimelineKQL, openTimelineInspectButton } from '../../../tasks/timeline';
|
||||
|
||||
import { HOSTS_URL } from '../../urls/navigation';
|
||||
import { HOSTS_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('Inspect', () => {
|
||||
context('Timeline', () => {
|
|
@ -5,13 +5,13 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { cleanKibana, reload } from '../../tasks/common';
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { HOSTS_URL } from '../../urls/navigation';
|
||||
import { openEvents } from '../../tasks/hosts/main';
|
||||
import { DATAGRID_HEADERS } from '../../screens/timeline';
|
||||
import { waitsForEventsToBeLoaded } from '../../tasks/hosts/events';
|
||||
import { removeColumn } from '../../tasks/timeline';
|
||||
import { cleanKibana, reload } from '../../../tasks/common';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { HOSTS_URL } from '../../../urls/navigation';
|
||||
import { openEvents } from '../../../tasks/hosts/main';
|
||||
import { DATAGRID_HEADERS } from '../../../screens/timeline';
|
||||
import { waitsForEventsToBeLoaded } from '../../../tasks/hosts/events';
|
||||
import { removeColumn } from '../../../tasks/timeline';
|
||||
|
||||
// TODO: Fix bug in persisting the columns of timeline
|
||||
describe.skip('persistent timeline', () => {
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { getTimelineNonValidQuery } from '../../objects/timeline';
|
||||
import { getTimelineNonValidQuery } from '../../../objects/timeline';
|
||||
|
||||
import {
|
||||
DELETE_NOTE,
|
||||
|
@ -16,21 +16,21 @@ import {
|
|||
NOTES_TEXT,
|
||||
NOTES_TEXT_AREA,
|
||||
MARKDOWN_INVESTIGATE_BUTTON,
|
||||
} from '../../screens/timeline';
|
||||
import { MODAL_CONFIRMATION_BTN } from '../../screens/alerts_detection_rules';
|
||||
import { createTimeline } from '../../tasks/api_calls/timelines';
|
||||
} from '../../../screens/timeline';
|
||||
import { MODAL_CONFIRMATION_BTN } from '../../../screens/alerts_detection_rules';
|
||||
import { createTimeline } from '../../../tasks/api_calls/timelines';
|
||||
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
|
||||
import { login, visitWithoutDateRange } from '../../tasks/login';
|
||||
import { login, visitWithoutDateRange } from '../../../tasks/login';
|
||||
import {
|
||||
addNotesToTimeline,
|
||||
goToNotesTab,
|
||||
openTimelineById,
|
||||
refreshTimelinesUntilTimeLinePresent,
|
||||
} from '../../tasks/timeline';
|
||||
} from '../../../tasks/timeline';
|
||||
|
||||
import { TIMELINES_URL } from '../../urls/navigation';
|
||||
import { TIMELINES_URL } from '../../../urls/navigation';
|
||||
|
||||
const text = 'elastic';
|
||||
const link = 'https://www.elastic.co/';
|
|
@ -5,31 +5,35 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { getTimeline } from '../../objects/timeline';
|
||||
import { getTimeline } from '../../../objects/timeline';
|
||||
|
||||
import { TIMELINE_DESCRIPTION, TIMELINE_TITLE, OPEN_TIMELINE_MODAL } from '../../screens/timeline';
|
||||
import {
|
||||
TIMELINE_DESCRIPTION,
|
||||
TIMELINE_TITLE,
|
||||
OPEN_TIMELINE_MODAL,
|
||||
} from '../../../screens/timeline';
|
||||
import {
|
||||
TIMELINES_DESCRIPTION,
|
||||
TIMELINES_PINNED_EVENT_COUNT,
|
||||
TIMELINES_NOTES_COUNT,
|
||||
TIMELINES_FAVORITE,
|
||||
} from '../../screens/timelines';
|
||||
import { addNoteToTimeline } from '../../tasks/api_calls/notes';
|
||||
} from '../../../screens/timelines';
|
||||
import { addNoteToTimeline } from '../../../tasks/api_calls/notes';
|
||||
|
||||
import { createTimeline } from '../../tasks/api_calls/timelines';
|
||||
import { createTimeline } from '../../../tasks/api_calls/timelines';
|
||||
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
|
||||
import { login, visitWithoutDateRange } from '../../tasks/login';
|
||||
import { login, visitWithoutDateRange } from '../../../tasks/login';
|
||||
import {
|
||||
markAsFavorite,
|
||||
openTimelineById,
|
||||
openTimelineFromSettings,
|
||||
pinFirstEvent,
|
||||
refreshTimelinesUntilTimeLinePresent,
|
||||
} from '../../tasks/timeline';
|
||||
} from '../../../tasks/timeline';
|
||||
|
||||
import { TIMELINES_URL } from '../../urls/navigation';
|
||||
import { TIMELINES_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('Open timeline', () => {
|
||||
before(() => {
|
|
@ -9,20 +9,20 @@ import {
|
|||
TIMELINES_OVERVIEW_TABLE,
|
||||
TIMELINES_OVERVIEW_ONLY_FAVORITES,
|
||||
TIMELINES_OVERVIEW_SEARCH,
|
||||
} from '../../screens/timelines';
|
||||
} from '../../../screens/timelines';
|
||||
|
||||
import {
|
||||
getTimeline,
|
||||
getFavoritedTimeline,
|
||||
sharedTimelineTitleFragment,
|
||||
} from '../../objects/timeline';
|
||||
} from '../../../objects/timeline';
|
||||
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
|
||||
import { login, visitWithoutDateRange } from '../../tasks/login';
|
||||
import { createTimeline, favoriteTimeline } from '../../tasks/api_calls/timelines';
|
||||
import { login, visitWithoutDateRange } from '../../../tasks/login';
|
||||
import { createTimeline, favoriteTimeline } from '../../../tasks/api_calls/timelines';
|
||||
|
||||
import { TIMELINES_URL } from '../../urls/navigation';
|
||||
import { TIMELINES_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('timeline overview search', () => {
|
||||
before(() => {
|
|
@ -13,15 +13,15 @@ import {
|
|||
TIMELINE_EVENTS_COUNT_PER_PAGE_OPTION,
|
||||
TIMELINE_EVENTS_COUNT_PREV_PAGE,
|
||||
TIMELINE_FLYOUT,
|
||||
} from '../../screens/timeline';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { esArchiverLoad, esArchiverUnload } from '../../tasks/es_archiver';
|
||||
} from '../../../screens/timeline';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import { esArchiverLoad, esArchiverUnload } from '../../../tasks/es_archiver';
|
||||
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../tasks/security_main';
|
||||
import { populateTimeline } from '../../tasks/timeline';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../../tasks/security_main';
|
||||
import { populateTimeline } from '../../../tasks/timeline';
|
||||
|
||||
import { HOSTS_URL } from '../../urls/navigation';
|
||||
import { HOSTS_URL } from '../../../urls/navigation';
|
||||
|
||||
const defaultPageSize = 25;
|
||||
describe('Pagination', () => {
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { getTimeline } from '../../objects/timeline';
|
||||
import { getTimeline } from '../../../objects/timeline';
|
||||
|
||||
import {
|
||||
UNLOCKED_ICON,
|
||||
|
@ -13,22 +13,22 @@ import {
|
|||
TIMELINE_FILTER,
|
||||
TIMELINE_QUERY,
|
||||
NOTE_CARD_CONTENT,
|
||||
} from '../../screens/timeline';
|
||||
import { addNoteToTimeline } from '../../tasks/api_calls/notes';
|
||||
import { createTimeline } from '../../tasks/api_calls/timelines';
|
||||
} from '../../../screens/timeline';
|
||||
import { addNoteToTimeline } from '../../../tasks/api_calls/notes';
|
||||
import { createTimeline } from '../../../tasks/api_calls/timelines';
|
||||
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
|
||||
import { login, visitWithoutDateRange } from '../../tasks/login';
|
||||
import { login, visitWithoutDateRange } from '../../../tasks/login';
|
||||
import {
|
||||
addFilter,
|
||||
openTimelineById,
|
||||
persistNoteToFirstEvent,
|
||||
pinFirstEvent,
|
||||
refreshTimelinesUntilTimeLinePresent,
|
||||
} from '../../tasks/timeline';
|
||||
} from '../../../tasks/timeline';
|
||||
|
||||
import { TIMELINES_URL } from '../../urls/navigation';
|
||||
import { TIMELINES_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('Timeline query tab', () => {
|
||||
before(() => {
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { elementsOverlap } from '../../helpers/rules';
|
||||
import { elementsOverlap } from '../../../helpers/rules';
|
||||
import {
|
||||
TIMELINE_ROW_RENDERERS_DISABLE_ALL_BTN,
|
||||
TIMELINE_ROW_RENDERERS_MODAL_CLOSE_BUTTON,
|
||||
|
@ -15,14 +15,14 @@ import {
|
|||
TIMELINE_ROW_RENDERERS_SURICATA_SIGNATURE,
|
||||
TIMELINE_ROW_RENDERERS_SURICATA_SIGNATURE_TOOLTIP,
|
||||
TIMELINE_ROW_RENDERERS_SURICATA_LINK_TOOLTIP,
|
||||
} from '../../screens/timeline';
|
||||
import { cleanKibana, deleteTimelines } from '../../tasks/common';
|
||||
} from '../../../screens/timeline';
|
||||
import { cleanKibana, deleteTimelines } from '../../../tasks/common';
|
||||
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../tasks/security_main';
|
||||
import { populateTimeline } from '../../tasks/timeline';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../../tasks/security_main';
|
||||
import { populateTimeline } from '../../../tasks/timeline';
|
||||
|
||||
import { HOSTS_URL } from '../../urls/navigation';
|
||||
import { HOSTS_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('Row renderers', () => {
|
||||
before(() => {
|
|
@ -11,19 +11,19 @@ import {
|
|||
TIMELINE_KQLMODE_FILTER,
|
||||
TIMELINE_KQLMODE_SEARCH,
|
||||
TIMELINE_SEARCH_OR_FILTER,
|
||||
} from '../../screens/timeline';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
} from '../../../screens/timeline';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
|
||||
import { login, visit, visitWithoutDateRange } from '../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../tasks/security_main';
|
||||
import { login, visit, visitWithoutDateRange } from '../../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../../tasks/security_main';
|
||||
import {
|
||||
changeTimelineQueryLanguage,
|
||||
executeTimelineKQL,
|
||||
executeTimelineSearch,
|
||||
} from '../../tasks/timeline';
|
||||
import { waitForTimelinesPanelToBeLoaded } from '../../tasks/timelines';
|
||||
} from '../../../tasks/timeline';
|
||||
import { waitForTimelinesPanelToBeLoaded } from '../../../tasks/timelines';
|
||||
|
||||
import { HOSTS_URL, TIMELINES_URL } from '../../urls/navigation';
|
||||
import { HOSTS_URL, TIMELINES_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('Timeline search and filters', () => {
|
||||
before(() => {
|
|
@ -5,11 +5,11 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import { ID_HEADER_FIELD, TIMESTAMP_HEADER_FIELD } from '../../screens/timeline';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
import { ID_HEADER_FIELD, TIMESTAMP_HEADER_FIELD } from '../../../screens/timeline';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../tasks/security_main';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { openTimelineUsingToggle } from '../../../tasks/security_main';
|
||||
import {
|
||||
clickIdToggleField,
|
||||
closeTimeline,
|
||||
|
@ -17,9 +17,9 @@ import {
|
|||
expandFirstTimelineEventDetails,
|
||||
populateTimeline,
|
||||
clickTimestampToggleField,
|
||||
} from '../../tasks/timeline';
|
||||
} from '../../../tasks/timeline';
|
||||
|
||||
import { HOSTS_URL } from '../../urls/navigation';
|
||||
import { HOSTS_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('toggle column in timeline', () => {
|
||||
before(() => {
|
|
@ -5,33 +5,33 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { Timeline } from '../../objects/timeline';
|
||||
import type { Timeline } from '../../../objects/timeline';
|
||||
import {
|
||||
MODAL_CONFIRMATION_BTN,
|
||||
MODAL_CONFIRMATION_CANCEL_BTN,
|
||||
} from '../../screens/alerts_detection_rules';
|
||||
} from '../../../screens/alerts_detection_rules';
|
||||
import {
|
||||
ALERTS_PAGE,
|
||||
APP_LEAVE_CONFIRM_MODAL,
|
||||
CASES_PAGE,
|
||||
MANAGE_PAGE,
|
||||
OBSERVABILITY_ALERTS_PAGE,
|
||||
} from '../../screens/kibana_navigation';
|
||||
import { TIMELINE_SAVE_MODAL } from '../../screens/timeline';
|
||||
import { cleanKibana } from '../../tasks/common';
|
||||
} from '../../../screens/kibana_navigation';
|
||||
import { TIMELINE_SAVE_MODAL } from '../../../screens/timeline';
|
||||
import { cleanKibana } from '../../../tasks/common';
|
||||
import {
|
||||
navigateFromKibanaCollapsibleTo,
|
||||
openKibanaNavigation,
|
||||
} from '../../tasks/kibana_navigation';
|
||||
import { login, visit } from '../../tasks/login';
|
||||
import { closeTimelineUsingToggle } from '../../tasks/security_main';
|
||||
} from '../../../tasks/kibana_navigation';
|
||||
import { login, visit } from '../../../tasks/login';
|
||||
import { closeTimelineUsingToggle } from '../../../tasks/security_main';
|
||||
import {
|
||||
addNameAndDescriptionToTimeline,
|
||||
createNewTimeline,
|
||||
populateTimeline,
|
||||
waitForTimelineChanges,
|
||||
} from '../../tasks/timeline';
|
||||
import { HOSTS_URL, MANAGE_URL } from '../../urls/navigation';
|
||||
} from '../../../tasks/timeline';
|
||||
import { HOSTS_URL, MANAGE_URL } from '../../../urls/navigation';
|
||||
|
||||
describe('Save Timeline Prompts', () => {
|
||||
before(() => {
|
|
@ -28,6 +28,7 @@
|
|||
"cypress:dw:run-as-ci": "node ../../../scripts/functional_tests --config ../../test/defend_workflows_cypress/cli_config.ts",
|
||||
"cypress:dw:endpoint:open": "yarn cypress open --config-file ./public/management/cypress_endpoint.config.ts",
|
||||
"cypress:dw:endpoint:open-as-ci": "node ../../../scripts/functional_tests --config ../../test/defend_workflows_cypress/endpoint_config.ts",
|
||||
"cypress:investigations:run": "yarn cypress:run:reporter --browser chrome --spec ${SPEC_LIST:-'./cypress/e2e/investigations/**/*.cy.ts'}; status=$?; yarn junit:merge && exit $status",
|
||||
"junit:merge": "../../../node_modules/.bin/mochawesome-merge ../../../target/kibana-security-solution/cypress/results/mochawesome*.json > ../../../target/kibana-security-solution/cypress/results/output.json && ../../../node_modules/.bin/marge ../../../target/kibana-security-solution/cypress/results/output.json --reportDir ../../../target/kibana-security-solution/cypress/results && mkdir -p ../../../target/junit && cp ../../../target/kibana-security-solution/cypress/results/*.xml ../../../target/junit/",
|
||||
"test:generate": "node scripts/endpoint/resolver_generator"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0; you may not use this file except in compliance with the Elastic License
|
||||
* 2.0.
|
||||
*/
|
||||
|
||||
import { FtrConfigProviderContext } from '@kbn/test';
|
||||
import { FtrProviderContext } from './ftr_provider_context';
|
||||
|
||||
import { SecuritySolutionCypressCliTestRunnerCI } from './runner';
|
||||
|
||||
const cliNumber = parseInt(process.env.CLI_NUMBER ?? '1', 10);
|
||||
const cliCount = parseInt(process.env.CLI_COUNT ?? '1', 10);
|
||||
|
||||
// eslint-disable-next-line import/no-default-export
|
||||
export default async function ({ readConfigFile }: FtrConfigProviderContext) {
|
||||
const securitySolutionCypressConfig = await readConfigFile(require.resolve('./config.ts'));
|
||||
return {
|
||||
...securitySolutionCypressConfig.getAll(),
|
||||
|
||||
testRunner: (context: FtrProviderContext) =>
|
||||
SecuritySolutionCypressCliTestRunnerCI(
|
||||
context,
|
||||
cliCount,
|
||||
cliNumber,
|
||||
'/investigations/**/*.cy.ts'
|
||||
),
|
||||
};
|
||||
}
|
|
@ -16,8 +16,14 @@ import { withProcRunner } from '@kbn/dev-proc-runner';
|
|||
import semver from 'semver';
|
||||
import { FtrProviderContext } from './ftr_provider_context';
|
||||
|
||||
const retrieveIntegrations = (chunksTotal: number, chunkIndex: number) => {
|
||||
const pattern = resolve(__dirname, '../../plugins/security_solution/cypress/e2e/**/*.cy.ts');
|
||||
const BASE_PATH = '../../plugins/security_solution';
|
||||
|
||||
const retrieveIntegrations = (
|
||||
chunksTotal: number,
|
||||
chunkIndex: number,
|
||||
specPattern = '/{,!(investigations)/**/}*.cy.ts'
|
||||
) => {
|
||||
const pattern = resolve(__dirname, BASE_PATH + '/cypress/e2e' + specPattern);
|
||||
const integrationsPaths = globby.sync(pattern);
|
||||
const chunkSize = Math.ceil(integrationsPaths.length / chunksTotal);
|
||||
|
||||
|
@ -39,7 +45,7 @@ export async function SecuritySolutionConfigurableCypressTestRunner(
|
|||
await procs.run('cypress', {
|
||||
cmd: 'yarn',
|
||||
args: [command],
|
||||
cwd: resolve(__dirname, '../../plugins/security_solution'),
|
||||
cwd: resolve(__dirname, BASE_PATH),
|
||||
env: {
|
||||
FORCE_COLOR: '1',
|
||||
CYPRESS_BASE_URL: Url.format(config.get('servers.kibana')),
|
||||
|
@ -66,9 +72,10 @@ export async function SecuritySolutionConfigurableCypressTestRunner(
|
|||
export async function SecuritySolutionCypressCliTestRunnerCI(
|
||||
context: FtrProviderContext,
|
||||
totalCiJobs: number,
|
||||
ciJobNumber: number
|
||||
ciJobNumber: number,
|
||||
specPattern?: string
|
||||
) {
|
||||
const integrations = retrieveIntegrations(totalCiJobs, ciJobNumber);
|
||||
const integrations = retrieveIntegrations(totalCiJobs, ciJobNumber, specPattern);
|
||||
return SecuritySolutionConfigurableCypressTestRunner(context, 'cypress:run:spec', {
|
||||
SPEC_LIST: integrations.join(','),
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue