Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15309,24 +15309,14 @@
"xpack.csp.findings.errorCallout.pageSearchErrorTitle": "Une erreur s’est produite lors de la récupération des résultats de recherche.",
"xpack.csp.findings.errorCallout.showErrorButtonLabel": "Afficher le message d'erreur",
"xpack.csp.findings.findingsFlyout.calloutTitle": "Certains champs ne sont pas fournis par {vendor}",
"xpack.csp.findings.findingsFlyout.flyoutDescriptionList.resourceId": "ID ressource",
"xpack.csp.findings.findingsFlyout.flyoutDescriptionList.resourceName": "Nom de ressource",
"xpack.csp.findings.findingsFlyout.jsonTabTitle": "JSON",
"xpack.csp.findings.findingsFlyout.overviewTab.alertsTitle": "Alertes",
"xpack.csp.findings.findingsFlyout.overviewTab.cisSectionTitle": "Section de Framework",
"xpack.csp.findings.findingsFlyout.overviewTab.dataViewTitle": "Vue de données",
"xpack.csp.findings.findingsFlyout.overviewTab.defaultValueTitle": "Valeur par défaut",
"xpack.csp.findings.findingsFlyout.overviewTab.detailsTitle": "Détails",
"xpack.csp.findings.findingsFlyout.overviewTab.evaluatedAtTitle": "Évalué à",
"xpack.csp.findings.findingsFlyout.overviewTab.evidenceDescription": "Les métadonnées spécifiques de la ressource évaluées pour établir ces conclusions de niveau",
"xpack.csp.findings.findingsFlyout.overviewTab.evidenceSourcesTitle": "Preuve",
"xpack.csp.findings.findingsFlyout.overviewTab.frameworkSourcesTitle": "Sources du framework",
"xpack.csp.findings.findingsFlyout.overviewTab.impactTitle": "Impact",
"xpack.csp.findings.findingsFlyout.overviewTab.rationaleTitle": "Environnement",
"xpack.csp.findings.findingsFlyout.overviewTab.remediationTitle": "Résolution",
"xpack.csp.findings.findingsFlyout.overviewTab.ruleNameTitle": "Nom de règle",
"xpack.csp.findings.findingsFlyout.overviewTab.ruleTagsTitle": "Balises de règle",
"xpack.csp.findings.findingsFlyout.overviewTab.vendorTitle": "Fournisseur",
"xpack.csp.findings.findingsFlyout.overviewTabTitle": "Aperçu",
"xpack.csp.findings.findingsFlyout.ruleNameTabField.ruleNameTooltip": "Gérer la règle",
"xpack.csp.findings.findingsFlyout.ruleTab.AlertsTitle": "Alertes",
Expand All @@ -15340,7 +15330,6 @@
"xpack.csp.findings.findingsFlyout.ruleTab.profileApplicabilityTitle": "Applicabilité du profil",
"xpack.csp.findings.findingsFlyout.ruleTab.referencesTitle": "Références",
"xpack.csp.findings.findingsFlyout.ruleTab.tagsTitle": "Balises",
"xpack.csp.findings.findingsFlyout.ruleTabTitle": "Règle",
"xpack.csp.findings.findingsFlyout.tableTabTitle": "Tableau",
"xpack.csp.findings.findingsTable.findingsTableColumn.lastCheckedColumnLabel": "Dernière vérification",
"xpack.csp.findings.findingsTable.findingsTableColumn.resourceIdColumnLabel": "ID ressource",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15291,24 +15291,14 @@
"xpack.csp.findings.errorCallout.pageSearchErrorTitle": "検索結果の取得中にエラーが発生しました",
"xpack.csp.findings.errorCallout.showErrorButtonLabel": "エラーメッセージを表示",
"xpack.csp.findings.findingsFlyout.calloutTitle": "一部のフィールドは{vendor}によって提供されていません",
"xpack.csp.findings.findingsFlyout.flyoutDescriptionList.resourceId": "リソースID",
"xpack.csp.findings.findingsFlyout.flyoutDescriptionList.resourceName": "リソース名",
"xpack.csp.findings.findingsFlyout.jsonTabTitle": "JSON",
"xpack.csp.findings.findingsFlyout.overviewTab.alertsTitle": "アラート",
"xpack.csp.findings.findingsFlyout.overviewTab.cisSectionTitle": "フレームワークセクション",
"xpack.csp.findings.findingsFlyout.overviewTab.dataViewTitle": "データビュー",
"xpack.csp.findings.findingsFlyout.overviewTab.defaultValueTitle": "デフォルト値",
"xpack.csp.findings.findingsFlyout.overviewTab.detailsTitle": "詳細",
"xpack.csp.findings.findingsFlyout.overviewTab.evaluatedAtTitle": "評価日",
"xpack.csp.findings.findingsFlyout.overviewTab.evidenceDescription": "この態勢の調査結果を生成するために評価された特定のリソースメタデータ",
"xpack.csp.findings.findingsFlyout.overviewTab.evidenceSourcesTitle": "証拠",
"xpack.csp.findings.findingsFlyout.overviewTab.frameworkSourcesTitle": "フレームワークソース",
"xpack.csp.findings.findingsFlyout.overviewTab.impactTitle": "インパクト",
"xpack.csp.findings.findingsFlyout.overviewTab.rationaleTitle": "根拠",
"xpack.csp.findings.findingsFlyout.overviewTab.remediationTitle": "修正",
"xpack.csp.findings.findingsFlyout.overviewTab.ruleNameTitle": "ルール名",
"xpack.csp.findings.findingsFlyout.overviewTab.ruleTagsTitle": "ルールタグ",
"xpack.csp.findings.findingsFlyout.overviewTab.vendorTitle": "ベンダー",
"xpack.csp.findings.findingsFlyout.overviewTabTitle": "概要",
"xpack.csp.findings.findingsFlyout.ruleNameTabField.ruleNameTooltip": "ルールの管理",
"xpack.csp.findings.findingsFlyout.ruleTab.AlertsTitle": "アラート",
Expand All @@ -15322,7 +15312,6 @@
"xpack.csp.findings.findingsFlyout.ruleTab.profileApplicabilityTitle": "プロファイル適用性",
"xpack.csp.findings.findingsFlyout.ruleTab.referencesTitle": "基準",
"xpack.csp.findings.findingsFlyout.ruleTab.tagsTitle": "タグ",
"xpack.csp.findings.findingsFlyout.ruleTabTitle": "ルール",
"xpack.csp.findings.findingsFlyout.tableTabTitle": "表",
"xpack.csp.findings.findingsTable.findingsTableColumn.lastCheckedColumnLabel": "最終確認",
"xpack.csp.findings.findingsTable.findingsTableColumn.resourceIdColumnLabel": "リソースID",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15325,24 +15325,14 @@
"xpack.csp.findings.errorCallout.pageSearchErrorTitle": "检索搜索结果时遇到问题",
"xpack.csp.findings.errorCallout.showErrorButtonLabel": "显示错误消息",
"xpack.csp.findings.findingsFlyout.calloutTitle": "{vendor} 未提供某些字段",
"xpack.csp.findings.findingsFlyout.flyoutDescriptionList.resourceId": "资源 ID",
"xpack.csp.findings.findingsFlyout.flyoutDescriptionList.resourceName": "资源名称",
"xpack.csp.findings.findingsFlyout.jsonTabTitle": "JSON",
"xpack.csp.findings.findingsFlyout.overviewTab.alertsTitle": "告警",
"xpack.csp.findings.findingsFlyout.overviewTab.cisSectionTitle": "框架部分",
"xpack.csp.findings.findingsFlyout.overviewTab.dataViewTitle": "数据视图",
"xpack.csp.findings.findingsFlyout.overviewTab.defaultValueTitle": "默认值",
"xpack.csp.findings.findingsFlyout.overviewTab.detailsTitle": "详情",
"xpack.csp.findings.findingsFlyout.overviewTab.evaluatedAtTitle": "评估时间",
"xpack.csp.findings.findingsFlyout.overviewTab.evidenceDescription": "已进行评估以生成此态势结果的特定资源元数据",
"xpack.csp.findings.findingsFlyout.overviewTab.evidenceSourcesTitle": "证据",
"xpack.csp.findings.findingsFlyout.overviewTab.frameworkSourcesTitle": "框架源",
"xpack.csp.findings.findingsFlyout.overviewTab.impactTitle": "影响",
"xpack.csp.findings.findingsFlyout.overviewTab.rationaleTitle": "理由",
"xpack.csp.findings.findingsFlyout.overviewTab.remediationTitle": "补救",
"xpack.csp.findings.findingsFlyout.overviewTab.ruleNameTitle": "规则名称",
"xpack.csp.findings.findingsFlyout.overviewTab.ruleTagsTitle": "规则标签",
"xpack.csp.findings.findingsFlyout.overviewTab.vendorTitle": "向量",
"xpack.csp.findings.findingsFlyout.overviewTabTitle": "概览",
"xpack.csp.findings.findingsFlyout.ruleNameTabField.ruleNameTooltip": "管理规则",
"xpack.csp.findings.findingsFlyout.ruleTab.AlertsTitle": "告警",
Expand All @@ -15356,7 +15346,6 @@
"xpack.csp.findings.findingsFlyout.ruleTab.profileApplicabilityTitle": "配置文件适用性",
"xpack.csp.findings.findingsFlyout.ruleTab.referencesTitle": "参考",
"xpack.csp.findings.findingsFlyout.ruleTab.tagsTitle": "标签",
"xpack.csp.findings.findingsFlyout.ruleTabTitle": "规则",
"xpack.csp.findings.findingsFlyout.tableTabTitle": "表",
"xpack.csp.findings.findingsTable.findingsTableColumn.lastCheckedColumnLabel": "上次检查时间",
"xpack.csp.findings.findingsTable.findingsTableColumn.resourceIdColumnLabel": "资源 ID",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { UiActionsStart } from '@kbn/ui-actions-plugin/public';
import { FieldFormatsStart } from '@kbn/field-formats-plugin/public';
import { IndexPatternFieldEditorStart } from '@kbn/data-view-field-editor-plugin/public';
import type { DataPublicPluginStart } from '@kbn/data-plugin/public';
import { ToastsStart } from '@kbn/core/public';
import { HttpSetup, ToastsStart } from '@kbn/core/public';
import { Storage } from '@kbn/kibana-utils-plugin/public';
import type { FlyoutPanelProps } from '@kbn/expandable-flyout';
import type { ChartsPluginStart } from '@kbn/charts-plugin/public';
Expand All @@ -22,7 +22,7 @@ import type { FleetStart } from '@kbn/fleet-plugin/public';
import type { UsageCollectionStart } from '@kbn/usage-collection-plugin/public';
import { SharePluginStart } from '@kbn/share-plugin/public';
import { SpacesPluginStart } from '@kbn/spaces-plugin/public';
import { CspFinding } from '@kbn/cloud-security-posture-common';
import { CspFinding, RuleResponse } from '@kbn/cloud-security-posture-common';
import type { estypes } from '@elastic/elasticsearch';
import type { IKibanaSearchResponse, IKibanaSearchRequest } from '@kbn/search-types';

Expand Down Expand Up @@ -89,3 +89,19 @@ export interface FindingsMisconfigurationPanelExpandableFlyoutProps extends Flyo
key: 'findings-misconfiguration-panel';
params: FindingMisconfigurationFlyoutProps;
}
export interface FindingsMisconfigurationFlyoutHeaderProps {
finding: CspFinding;
}

export interface FindingsMisconfigurationFlyoutContentProps {
finding: CspFinding;
}

export interface FindingMisconfigurationFlyoutFooterProps {
createRuleFn: (http: HttpSetup) => Promise<RuleResponse>;
}

export interface FindingMisconfigurationFlyoutContentProps {
finding: CspFinding;
createRuleFn: (http: HttpSetup) => Promise<RuleResponse>;
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,29 @@
import React from 'react';
import { CDR_MISCONFIGURATIONS_INDEX_PATTERN } from '@kbn/cloud-security-posture-common';
import userEvent from '@testing-library/user-event';
import { FindingsRuleFlyout } from './findings_flyout';
import { render, screen } from '@testing-library/react';
import { useMisconfigurationFinding } from '@kbn/cloud-security-posture/src/hooks/use_misconfiguration_finding';
import { TestProvider } from '../../../test/test_provider';
import { mockFindingsHit, mockWizFinding } from '../__mocks__/findings';
import { FindingMisconfigurationFlyoutContentProps } from '@kbn/cloud-security-posture';
import FindingsMisconfigurationFlyoutContent from './findings_right/content';
import FindingsMisconfigurationFlyoutFooter from './findings_right/footer';
import FindingsMisconfigurationFlyoutHeader from './findings_right/header';
import FindingsRuleFlyout from './findings_flyout';

const TestComponent = () => (
<TestProvider>
<FindingsRuleFlyout ruleId={'rule_id_test'} resourceId={'resource_id_test'} />
<FindingsRuleFlyout ruleId={'rule_id_test'} resourceId={'resource_id_test'}>
{({ finding, createRuleFn }: FindingMisconfigurationFlyoutContentProps) => {
return (
<>
<FindingsMisconfigurationFlyoutHeader finding={finding} />
<FindingsMisconfigurationFlyoutContent finding={finding} />
<FindingsMisconfigurationFlyoutFooter createRuleFn={createRuleFn} />
</>
);
}}
</FindingsRuleFlyout>
</TestProvider>
);

Expand All @@ -32,9 +46,8 @@ describe('<FindingsFlyout/>', () => {

const { getAllByText, getByText } = render(<TestComponent />);

getAllByText(mockFindingsHit.rule.name);
getAllByText(mockFindingsHit.resource.name);
getByText(mockFindingsHit.resource.id);
getByText(mockFindingsHit.resource.name);
getAllByText(mockFindingsHit.rule.section);
getByText(CDR_MISCONFIGURATIONS_INDEX_PATTERN);
mockFindingsHit.rule.tags.forEach((tag) => {
Expand All @@ -60,41 +73,6 @@ describe('<FindingsFlyout/>', () => {
});
});

describe('Rule Tab', () => {
it('displays rule text details', async () => {
const { getByText, getAllByText } = render(<TestComponent />);
await userEvent.click(screen.getByTestId('findings_flyout_tab_rule'));

getAllByText(mockFindingsHit.rule.name);
getByText(mockFindingsHit.rule.benchmark.name);
getAllByText(mockFindingsHit.rule.section);
mockFindingsHit.rule.tags.forEach((tag) => {
getAllByText(tag);
});
});

it('displays missing info callout when data source is not CSP', async () => {
(useMisconfigurationFinding as jest.Mock).mockReturnValue({
data: { result: { hits: [{ _source: mockWizFinding }] } },
});
const { getByText } = render(<TestComponent />);
await userEvent.click(screen.getByTestId('findings_flyout_tab_rule'));

getByText('Some fields not provided by Wiz');
});

it('does not display missing info callout when data source is CSP', async () => {
(useMisconfigurationFinding as jest.Mock).mockReturnValue({
data: { result: { hits: [{ _source: mockFindingsHit }] } },
});
const { queryByText } = render(<TestComponent />);
await userEvent.click(screen.getByTestId('findings_flyout_tab_rule'));

const missingInfoCallout = queryByText('Some fields not provided by Wiz');
expect(missingInfoCallout).toBeNull();
});
});

describe('Table Tab', () => {
it('displays resource name and id', async () => {
(useMisconfigurationFinding as jest.Mock).mockReturnValue({
Expand Down
Loading