[Security Solution] [Attack discovery] Updates Attack discovery directory structure (#200613)

### [Security Solution] [Attack discovery] Updates Attack discovery directory structure

This PR updates the Attack discovery directory structure to align it with the latest implementation.

The scope of this update is limited to file paths and imports.
This commit is contained in:
Andrew Macri 2024-11-18 15:32:43 -05:00 committed by GitHub
parent d57e3b0ea0
commit 974293fa01
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
104 changed files with 98 additions and 98 deletions

View file

@ -19,7 +19,7 @@ import {
RECONNAISSANCE,
replaceNewlineLiterals,
} from './helpers';
import { mockAttackDiscovery } from './mock/mock_attack_discovery';
import { mockAttackDiscovery } from './pages/mock/mock_attack_discovery';
import * as i18n from './translations';
const expectedTactics = {

View file

@ -21,13 +21,13 @@ import { mockHistory } from '../../common/utils/route/mocks';
import { AttackDiscoveryPage } from '.';
import { mockTimelines } from '../../common/mock/mock_timelines_plugin';
import { UpsellingProvider } from '../../common/components/upselling_provider';
import { mockFindAnonymizationFieldsResponse } from '../mock/mock_find_anonymization_fields_response';
import { mockFindAnonymizationFieldsResponse } from './mock/mock_find_anonymization_fields_response';
import {
getMockUseAttackDiscoveriesWithCachedAttackDiscoveries,
getMockUseAttackDiscoveriesWithNoAttackDiscoveriesLoading,
} from '../mock/mock_use_attack_discovery';
} from './mock/mock_use_attack_discovery';
import { ATTACK_DISCOVERY_PAGE_TITLE } from './page_title/translations';
import { useAttackDiscovery } from '../use_attack_discovery';
import { useAttackDiscovery } from './use_attack_discovery';
import { useLoadConnectors } from '@kbn/elastic-assistant/impl/connectorland/use_load_connectors';
const mockConnectors: unknown[] = [
@ -75,7 +75,7 @@ jest.mock('../../common/links', () => ({
}),
}));
jest.mock('../use_attack_discovery', () => ({
jest.mock('./use_attack_discovery', () => ({
useAttackDiscovery: jest.fn().mockReturnValue({
approximateFutureTime: null,
attackDiscoveries: [],

View file

@ -29,7 +29,7 @@ import { CONNECTOR_ID_LOCAL_STORAGE_KEY, getSize, showLoading } from './helpers'
import { LoadingCallout } from './loading_callout';
import { PageTitle } from './page_title';
import { Results } from './results';
import { useAttackDiscovery } from '../use_attack_discovery';
import { useAttackDiscovery } from './use_attack_discovery';
const AttackDiscoveryPageComponent: React.FC = () => {
const spaceId = useSpaceId() ?? 'default';

View file

@ -13,7 +13,7 @@ import {
import { render, screen } from '@testing-library/react';
import React from 'react';
import { TestProviders } from '../../../common/mock';
import { TestProviders } from '../../../../../common/mock';
import { getFieldMarkdownRenderer } from '../field_markdown_renderer';
import { AttackDiscoveryMarkdownParser } from '.';

View file

@ -9,9 +9,9 @@ import { useExpandableFlyoutApi } from '@kbn/expandable-flyout';
import { fireEvent, render, screen } from '@testing-library/react';
import React from 'react';
import { TestProviders } from '../../../common/mock';
import { TestProviders } from '../../../../../common/mock';
import { getFieldMarkdownRenderer } from '.';
import { createExpandableFlyoutApiMock } from '../../../common/mock/expandable_flyout';
import { createExpandableFlyoutApiMock } from '../../../../../common/mock/expandable_flyout';
jest.mock('@kbn/expandable-flyout');

View file

@ -9,7 +9,7 @@ import { EuiBadge, EuiButtonEmpty, EuiToolTip } from '@elastic/eui';
import React, { useCallback, useMemo } from 'react';
import { useExpandableFlyoutApi } from '@kbn/expandable-flyout';
import { DraggableBadge } from '../../../common/components/draggables';
import { DraggableBadge } from '../../../../../common/components/draggables';
import { getFlyoutPanelProps } from './helpers';
import type { ParsedField } from '../types';

View file

@ -8,7 +8,7 @@
import { render, screen } from '@testing-library/react';
import React from 'react';
import { TestProviders } from '../../common/mock';
import { TestProviders } from '../../../../common/mock';
import { AttackDiscoveryMarkdownFormatter } from '.';
describe('AttackDiscoveryMarkdownFormatter', () => {

View file

@ -5,7 +5,7 @@
* 2.0.
*/
import type { QueryOperator } from '../../../common/types';
import type { QueryOperator } from '../../../../../common/types';
export interface ParsedField {
icon?: string;

View file

@ -9,8 +9,8 @@ import { render, screen } from '@testing-library/react';
import React from 'react';
import { ActionableSummary } from '.';
import { TestProviders } from '../../../common/mock';
import { mockAttackDiscovery } from '../../mock/mock_attack_discovery';
import { TestProviders } from '../../../../../common/mock';
import { mockAttackDiscovery } from '../../../mock/mock_attack_discovery';
describe('ActionableSummary', () => {
const mockReplacements = {

View file

@ -9,8 +9,8 @@ import { render, screen } from '@testing-library/react';
import React from 'react';
import { Actions } from '.';
import { TestProviders } from '../../../common/mock';
import { mockAttackDiscovery } from '../../mock/mock_attack_discovery';
import { TestProviders } from '../../../../../common/mock';
import { mockAttackDiscovery } from '../../../mock/mock_attack_discovery';
import { ATTACK_CHAIN, ALERTS } from './translations';
describe('Actions', () => {

View file

@ -11,7 +11,7 @@ import type { AttackDiscovery, Replacements } from '@kbn/elastic-assistant-commo
import React from 'react';
import { AlertsBadge } from './alerts_badge';
import { MiniAttackChain } from '../../attack/mini_attack_chain';
import { MiniAttackChain } from '../tabs/attack_discovery_tab/attack/mini_attack_chain';
import { TakeAction } from './take_action';
import * as i18n from './translations';

View file

@ -8,8 +8,8 @@
import { fireEvent, render, screen } from '@testing-library/react';
import React from 'react';
import { TestProviders } from '../../../../common/mock';
import { mockAttackDiscovery } from '../../../mock/mock_attack_discovery';
import { TestProviders } from '../../../../../../common/mock';
import { mockAttackDiscovery } from '../../../../mock/mock_attack_discovery';
import { TakeAction } from '.';
describe('TakeAction', () => {

View file

@ -15,9 +15,9 @@ import {
} from '@elastic/eui';
import React, { useCallback, useMemo, useState } from 'react';
import { useKibana } from '../../../../common/lib/kibana';
import { APP_ID } from '../../../../../common';
import { getAttackDiscoveryMarkdown } from '../../../get_attack_discovery_markdown/get_attack_discovery_markdown';
import { useKibana } from '../../../../../../common/lib/kibana';
import { APP_ID } from '../../../../../../../common';
import { getAttackDiscoveryMarkdown } from '../../get_attack_discovery_markdown/get_attack_discovery_markdown';
import * as i18n from './translations';
import { useAddToNewCase } from '../use_add_to_case';
import { useAddToExistingCase } from '../use_add_to_existing_case';

View file

@ -8,9 +8,9 @@
import { act, renderHook } from '@testing-library/react-hooks';
import { useAddToNewCase } from '.';
import { TestProviders } from '../../../../common/mock';
import { TestProviders } from '../../../../../../common/mock';
jest.mock('../../../../common/lib/kibana', () => ({
jest.mock('../../../../../../common/lib/kibana', () => ({
useKibana: jest.fn().mockReturnValue({
services: {
cases: {

View file

@ -11,7 +11,7 @@ import { useAssistantContext } from '@kbn/elastic-assistant';
import type { Replacements } from '@kbn/elastic-assistant-common';
import React, { useCallback, useMemo } from 'react';
import { useKibana } from '../../../../common/lib/kibana';
import { useKibana } from '../../../../../../common/lib/kibana';
import * as i18n from './translations';
interface Props {

View file

@ -8,10 +8,10 @@
import { act, renderHook } from '@testing-library/react-hooks';
import { useAddToExistingCase } from '.';
import { useKibana } from '../../../../common/lib/kibana';
import { TestProviders } from '../../../../common/mock';
import { useKibana } from '../../../../../../common/lib/kibana';
import { TestProviders } from '../../../../../../common/mock';
jest.mock('../../../../common/lib/kibana', () => ({
jest.mock('../../../../../../common/lib/kibana', () => ({
useKibana: jest.fn().mockReturnValue({
services: {
cases: {

View file

@ -11,7 +11,7 @@ import { useAssistantContext } from '@kbn/elastic-assistant';
import type { Replacements } from '@kbn/elastic-assistant-common';
import { useCallback } from 'react';
import { useKibana } from '../../../../common/lib/kibana';
import { useKibana } from '../../../../../../common/lib/kibana';
import * as i18n from './translations';
interface Props {

View file

@ -11,7 +11,7 @@ import {
getMarkdownFields,
getMarkdownWithOriginalValues,
} from './get_attack_discovery_markdown';
import { mockAttackDiscovery } from '../mock/mock_attack_discovery';
import { mockAttackDiscovery } from '../../../mock/mock_attack_discovery';
describe('getAttackDiscoveryMarkdown', () => {
describe('getMarkdownFields', () => {

View file

@ -7,7 +7,7 @@
import type { AttackDiscovery, Replacements } from '@kbn/elastic-assistant-common';
import { getTacticLabel, getTacticMetadata } from '../helpers';
import { getTacticLabel, getTacticMetadata } from '../../../../helpers';
export const getMarkdownFields = (markdown: string): string => {
const regex = new RegExp('{{\\s*(\\S+)\\s+(\\S+)\\s*}}', 'gm');

View file

@ -9,8 +9,8 @@ import { render, screen } from '@testing-library/react';
import React from 'react';
import { AttackDiscoveryPanel } from '.';
import { TestProviders } from '../../common/mock';
import { mockAttackDiscovery } from '../mock/mock_attack_discovery';
import { TestProviders } from '../../../../common/mock';
import { mockAttackDiscovery } from '../../mock/mock_attack_discovery';
describe('AttackDiscoveryPanel', () => {
it('renders the attack discovery accordion', () => {

View file

@ -8,8 +8,8 @@
import { render, screen } from '@testing-library/react';
import React from 'react';
import { TestProviders } from '../../../../common/mock';
import { mockAttackDiscovery } from '../../../mock/mock_attack_discovery';
import { TestProviders } from '../../../../../../common/mock';
import { mockAttackDiscovery } from '../../../../mock/mock_attack_discovery';
import { AlertsTab } from '.';
describe('AlertsTab', () => {

View file

@ -9,8 +9,8 @@ import type { AttackDiscovery, Replacements } from '@kbn/elastic-assistant-commo
import { AlertConsumers } from '@kbn/rule-registry-plugin/common/technical_rule_data_field_names';
import React, { useMemo } from 'react';
import { ALERTS_TABLE_REGISTRY_CONFIG_IDS } from '../../../../../common/constants';
import { useKibana } from '../../../../common/lib/kibana';
import { ALERTS_TABLE_REGISTRY_CONFIG_IDS } from '../../../../../../../common/constants';
import { useKibana } from '../../../../../../common/lib/kibana';
interface Props {
attackDiscovery: AttackDiscovery;

View file

@ -8,10 +8,10 @@
import { render, screen } from '@testing-library/react';
import React from 'react';
import { getTacticMetadata } from '../../helpers';
import { getTacticMetadata } from '../../../../../../../helpers';
import { AttackChain } from '.';
import { mockAttackDiscovery } from '../../mock/mock_attack_discovery';
import { mockAttackDiscovery } from '../../../../../../mock/mock_attack_discovery';
describe('AttackChain', () => {
it('renders the expected tactics', () => {

View file

@ -11,7 +11,7 @@ import React, { useMemo } from 'react';
import type { AttackDiscovery } from '@kbn/elastic-assistant-common';
import { Tactic } from './tactic';
import { getTacticMetadata } from '../../helpers';
import { getTacticMetadata } from '../../../../../../../helpers';
interface Props {
attackDiscovery: AttackDiscovery;

View file

@ -8,9 +8,9 @@
import { render, screen } from '@testing-library/react';
import React from 'react';
import type { TacticMetadata } from '../../helpers';
import { getTacticMetadata } from '../../helpers';
import { mockAttackDiscovery } from '../../mock/mock_attack_discovery';
import type { TacticMetadata } from '../../../../../../../helpers';
import { getTacticMetadata } from '../../../../../../../helpers';
import { mockAttackDiscovery } from '../../../../../../mock/mock_attack_discovery';
import { MiniAttackChain } from '.';
describe('MiniAttackChain', () => {

View file

@ -10,7 +10,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiText, EuiToolTip, useEuiTheme } from '@el
import React, { useMemo } from 'react';
import type { AttackDiscovery } from '@kbn/elastic-assistant-common';
import { getTacticMetadata } from '../../helpers';
import { getTacticMetadata } from '../../../../../../../helpers';
import { ATTACK_CHAIN_TOOLTIP } from './translations';
interface Props {

View file

@ -10,8 +10,8 @@ import React from 'react';
import { AttackDiscoveryTab } from '.';
import type { Replacements } from '@kbn/elastic-assistant-common';
import { TestProviders } from '../../../../common/mock';
import { mockAttackDiscovery } from '../../../mock/mock_attack_discovery';
import { TestProviders } from '../../../../../../common/mock';
import { mockAttackDiscovery } from '../../../../mock/mock_attack_discovery';
import { ATTACK_CHAIN, DETAILS, SUMMARY } from './translations';
describe('AttackDiscoveryTab', () => {

View file

@ -11,10 +11,10 @@ import { EuiFlexGroup, EuiFlexItem, EuiIcon, EuiSpacer, EuiTitle, useEuiTheme }
import { css } from '@emotion/react';
import React, { useMemo } from 'react';
import { AttackChain } from '../../../attack/attack_chain';
import { InvestigateInTimelineButton } from '../../../../common/components/event_details/investigate_in_timeline_button';
import { buildAlertsKqlFilter } from '../../../../detections/components/alerts_table/actions';
import { getTacticMetadata } from '../../../helpers';
import { AttackChain } from './attack/attack_chain';
import { InvestigateInTimelineButton } from '../../../../../../common/components/event_details/investigate_in_timeline_button';
import { buildAlertsKqlFilter } from '../../../../../../detections/components/alerts_table/actions';
import { getTacticMetadata } from '../../../../../helpers';
import { AttackDiscoveryMarkdownFormatter } from '../../../attack_discovery_markdown_formatter';
import * as i18n from './translations';
import { ViewInAiAssistant } from '../../view_in_ai_assistant';

View file

@ -10,8 +10,8 @@ import { render, screen } from '@testing-library/react';
import React from 'react';
import { getTabs } from './get_tabs';
import { TestProviders } from '../../../common/mock';
import { mockAttackDiscovery } from '../../mock/mock_attack_discovery';
import { TestProviders } from '../../../../../common/mock';
import { mockAttackDiscovery } from '../../../mock/mock_attack_discovery';
import { ALERTS, ATTACK_DISCOVERY } from './translations';
describe('getTabs', () => {

View file

@ -9,8 +9,8 @@ import { fireEvent, render, screen } from '@testing-library/react';
import React from 'react';
import { Tabs } from '.';
import { TestProviders } from '../../../common/mock';
import { mockAttackDiscovery } from '../../mock/mock_attack_discovery';
import { TestProviders } from '../../../../../common/mock';
import { mockAttackDiscovery } from '../../../mock/mock_attack_discovery';
describe('Tabs', () => {
beforeEach(() => {

View file

@ -9,8 +9,8 @@ import { render, screen } from '@testing-library/react';
import React from 'react';
import { ViewInAiAssistant } from '.';
import { TestProviders } from '../../../common/mock';
import { mockAttackDiscovery } from '../../mock/mock_attack_discovery';
import { TestProviders } from '../../../../../common/mock';
import { mockAttackDiscovery } from '../../../mock/mock_attack_discovery';
import { VIEW_IN_AI_ASSISTANT } from './translations';
describe('ViewInAiAssistant', () => {

View file

@ -8,14 +8,14 @@
import { renderHook } from '@testing-library/react-hooks';
import { useAssistantOverlay } from '@kbn/elastic-assistant';
import { useAssistantAvailability } from '../../../assistant/use_assistant_availability';
import { getAttackDiscoveryMarkdown } from '../../get_attack_discovery_markdown/get_attack_discovery_markdown';
import { mockAttackDiscovery } from '../../mock/mock_attack_discovery';
import { useAssistantAvailability } from '../../../../../assistant/use_assistant_availability';
import { getAttackDiscoveryMarkdown } from '../get_attack_discovery_markdown/get_attack_discovery_markdown';
import { mockAttackDiscovery } from '../../../mock/mock_attack_discovery';
import { useViewInAiAssistant } from './use_view_in_ai_assistant';
jest.mock('@kbn/elastic-assistant');
jest.mock('../../../assistant/use_assistant_availability');
jest.mock('../../get_attack_discovery_markdown/get_attack_discovery_markdown');
jest.mock('../../../../../assistant/use_assistant_availability');
jest.mock('../get_attack_discovery_markdown/get_attack_discovery_markdown');
const mockUseAssistantOverlay = useAssistantOverlay as jest.Mock;
describe('useViewInAiAssistant', () => {
beforeEach(() => {

View file

@ -8,8 +8,8 @@
import { useMemo, useCallback } from 'react';
import { useAssistantOverlay } from '@kbn/elastic-assistant';
import type { AttackDiscovery, Replacements } from '@kbn/elastic-assistant-common';
import { useAssistantAvailability } from '../../../assistant/use_assistant_availability';
import { getAttackDiscoveryMarkdown } from '../../get_attack_discovery_markdown/get_attack_discovery_markdown';
import { useAssistantAvailability } from '../../../../../assistant/use_assistant_availability';
import { getAttackDiscoveryMarkdown } from '../get_attack_discovery_markdown/get_attack_discovery_markdown';
/**
* This category is provided in the prompt context for the assistant

View file

@ -9,10 +9,10 @@ import { fireEvent, render, screen } from '@testing-library/react';
import React from 'react';
import { EmptyPrompt } from '.';
import { useAssistantAvailability } from '../../../assistant/use_assistant_availability';
import { TestProviders } from '../../../common/mock';
import { useAssistantAvailability } from '../../../../../assistant/use_assistant_availability';
import { TestProviders } from '../../../../../common/mock';
jest.mock('../../../assistant/use_assistant_availability');
jest.mock('../../../../../assistant/use_assistant_availability');
describe('EmptyPrompt', () => {
const alertsCount = 20;

View file

@ -11,9 +11,9 @@ import {
showFailurePrompt,
showNoAlertsPrompt,
showWelcomePrompt,
} from '../../../helpers';
} from '../../../../helpers';
jest.mock('../../../helpers', () => ({
jest.mock('../../../../helpers', () => ({
showEmptyPrompt: jest.fn().mockReturnValue(false),
showFailurePrompt: jest.fn().mockReturnValue(false),
showNoAlertsPrompt: jest.fn().mockReturnValue(false),

View file

@ -10,7 +10,7 @@ import {
showFailurePrompt,
showNoAlertsPrompt,
showWelcomePrompt,
} from '../../../helpers';
} from '../../../../helpers';
export const showEmptyStates = ({
aiConnectorsCount,

View file

@ -10,7 +10,7 @@ import { render, screen } from '@testing-library/react';
import React from 'react';
import { EmptyStates } from '.';
import { TestProviders } from '../../../common/mock';
import { TestProviders } from '../../../../common/mock';
describe('EmptyStates', () => {
describe('when the Welcome prompt should be shown', () => {

View file

@ -7,11 +7,11 @@
import React from 'react';
import { Failure } from '../failure';
import { EmptyPrompt } from '../empty_prompt';
import { showFailurePrompt, showNoAlertsPrompt, showWelcomePrompt } from '../helpers';
import { NoAlerts } from '../no_alerts';
import { Welcome } from '../welcome';
import { Failure } from './failure';
import { EmptyPrompt } from './empty_prompt';
import { showFailurePrompt, showNoAlertsPrompt, showWelcomePrompt } from '../../helpers';
import { NoAlerts } from './no_alerts';
import { Welcome } from './welcome';
interface Props {
aiConnectorsCount: number | null; // null when connectors are not configured

View file

@ -9,7 +9,7 @@ import { render, screen } from '@testing-library/react';
import React from 'react';
import { Welcome } from '.';
import { TestProviders } from '../../../common/mock';
import { TestProviders } from '../../../../../common/mock';
import { FIRST_SET_UP, WELCOME_TO_ATTACK_DISCOVERY } from './translations';
describe('Welcome', () => {

View file

@ -9,7 +9,7 @@ import { render, screen, fireEvent } from '@testing-library/react';
import React from 'react';
import { TestProviders } from '../../../common/mock';
import { mockAttackDiscovery } from '../../mock/mock_attack_discovery';
import { mockAttackDiscovery } from '../mock/mock_attack_discovery';
import { Results } from '.';
describe('Results', () => {

View file

@ -10,11 +10,11 @@ import { DEFAULT_ATTACK_DISCOVERY_MAX_ALERTS } from '@kbn/elastic-assistant';
import type { AttackDiscovery, Replacements } from '@kbn/elastic-assistant-common';
import React from 'react';
import { AttackDiscoveryPanel } from '../../attack_discovery_panel';
import { EmptyStates } from '../empty_states';
import { showEmptyStates } from '../empty_states/helpers/show_empty_states';
import { AttackDiscoveryPanel } from './attack_discovery_panel';
import { EmptyStates } from './empty_states';
import { showEmptyStates } from './empty_states/helpers/show_empty_states';
import { getInitialIsOpen, showSummary } from '../helpers';
import { Summary } from '../summary';
import { Summary } from './summary';
interface Props {
aiConnectorsCount: number | null; // null when connectors are not configured

View file

@ -9,8 +9,8 @@ import { EuiButtonIcon, EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiToolTip } from
import { css } from '@emotion/react';
import React from 'react';
import { SummaryCount } from '../summary_count';
import { SHOW_REAL_VALUES, SHOW_ANONYMIZED_LABEL } from '../translations';
import { SummaryCount } from './summary_count';
import { SHOW_REAL_VALUES, SHOW_ANONYMIZED_LABEL } from '../../translations';
interface Props {
alertsCount: number;

Some files were not shown because too many files have changed in this diff Show more