From cc338447be94a725ba7cc739ab713800084fc209 Mon Sep 17 00:00:00 2001 From: Angela Chuang Date: Mon, 23 Jan 2023 13:57:19 +0000 Subject: [PATCH] sync up with main --- .../risk_score_over_time_area.test.ts.snap | 187 ++++++++++++++++++ .../risk_score_over_time_area.test.ts | 56 ++++++ ...e_area.ts => risk_score_over_time_area.ts} | 6 +- .../risk_score/risk_score_over_time/index.tsx | 2 +- 4 files changed, 247 insertions(+), 4 deletions(-) create mode 100644 x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/__snapshots__/risk_score_over_time_area.test.ts.snap create mode 100644 x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/risk_score_over_time_area.test.ts rename x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/{risk_score_overtime_area.ts => risk_score_over_time_area.ts} (97%) diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/__snapshots__/risk_score_over_time_area.test.ts.snap b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/__snapshots__/risk_score_over_time_area.test.ts.snap new file mode 100644 index 0000000000000..750f5852079a0 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/__snapshots__/risk_score_over_time_area.test.ts.snap @@ -0,0 +1,187 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`getRiskScoreOverTimeAreaAttributes should render 1`] = ` +Object { + "description": "", + "references": Array [], + "state": Object { + "adHocDataViews": Object { + "1dd5663b-f062-43f8-8688-fc8166c2ca8e": Object { + "allowNoIndex": false, + "fieldAttrs": Object {}, + "fieldFormats": Object {}, + "id": "1dd5663b-f062-43f8-8688-fc8166c2ca8e", + "name": "ml_host_risk_score_mockSpaceId", + "runtimeFieldMap": Object {}, + "sourceFilters": Array [], + "timeFieldName": "@timestamp", + "title": "ml_host_risk_score_mockSpaceId", + }, + }, + "datasourceStates": Object { + "formBased": Object { + "layers": Object { + "d594baeb-5eca-480c-8885-ba79eaf41372": Object { + "columnOrder": Array [ + "02a55c97-d7a4-440d-ac77-33b941c16189", + "8886a925-4419-4d9a-8498-3bda4ecf1b0a", + "df9461a3-db14-4196-932c-6404dabfd11a", + "df9461a3-db14-4196-932c-6404dabfd11aX0", + ], + "columns": Object { + "02a55c97-d7a4-440d-ac77-33b941c16189": Object { + "dataType": "date", + "isBucketed": true, + "label": "@timestamp", + "operationType": "date_histogram", + "params": Object { + "dropPartials": false, + "includeEmptyRows": true, + "interval": "auto", + }, + "scale": "interval", + "sourceField": "@timestamp", + }, + "8886a925-4419-4d9a-8498-3bda4ecf1b0a": Object { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Risk score", + "operationType": "average", + "params": Object { + "emptyAsNull": true, + "format": Object { + "id": "number", + "params": Object { + "decimals": 0, + }, + }, + }, + "scale": "ratio", + "sourceField": "host.risk.calculated_score_norm", + }, + "df9461a3-db14-4196-932c-6404dabfd11a": Object { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Risky threshold", + "operationType": "formula", + "params": Object { + "formula": "70", + "isFormulaBroken": false, + }, + "references": Array [ + "df9461a3-db14-4196-932c-6404dabfd11aX0", + ], + "scale": "ratio", + }, + "df9461a3-db14-4196-932c-6404dabfd11aX0": Object { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Part of Risky threshold", + "operationType": "math", + "params": Object { + "tinymathAst": 70, + }, + "references": Array [], + "scale": "ratio", + }, + }, + "incompleteColumns": Object {}, + "sampling": 1, + }, + }, + }, + "textBased": Object { + "layers": Object {}, + }, + }, + "filters": Array [ + Object { + "meta": Object { + "alias": null, + "disabled": false, + "key": "host.id", + "negate": false, + "params": Object { + "query": "123", + }, + "type": "phrase", + }, + "query": Object { + "match_phrase": Object { + "host.id": "123", + }, + }, + }, + Object { + "meta": Object { + "alias": null, + "disabled": false, + "key": "host.name", + "negate": false, + "params": Object { + "query": "mockHost", + }, + "type": "phrase", + }, + "query": Object { + "match_phrase": Object { + "host.name": "mockHost", + }, + }, + }, + ], + "internalReferences": Array [ + Object { + "id": "1dd5663b-f062-43f8-8688-fc8166c2ca8e", + "name": "indexpattern-datasource-layer-d594baeb-5eca-480c-8885-ba79eaf41372", + "type": "index-pattern", + }, + ], + "query": Object { + "language": "kql", + "query": "host.name: *", + }, + "visualization": Object { + "axisTitlesVisibilitySettings": Object { + "x": false, + "yLeft": false, + "yRight": true, + }, + "layers": Array [ + Object { + "accessors": Array [ + "8886a925-4419-4d9a-8498-3bda4ecf1b0a", + "df9461a3-db14-4196-932c-6404dabfd11a", + ], + "layerId": "d594baeb-5eca-480c-8885-ba79eaf41372", + "layerType": "data", + "position": "top", + "seriesType": "line", + "showGridlines": false, + "xAccessor": "02a55c97-d7a4-440d-ac77-33b941c16189", + "yConfig": Array [ + Object { + "color": "#c06060", + "forAccessor": "df9461a3-db14-4196-932c-6404dabfd11a", + }, + ], + }, + ], + "legend": Object { + "isVisible": true, + "position": "right", + }, + "preferredSeriesType": "line", + "title": "Empty XY chart", + "valueLabels": "hide", + "xTitle": "", + "yTitle": "", + }, + }, + "title": "host risk score over time", + "visualizationType": "lnsXY", +} +`; diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/risk_score_over_time_area.test.ts b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/risk_score_over_time_area.test.ts new file mode 100644 index 0000000000000..7809f218f9358 --- /dev/null +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/risk_score_over_time_area.test.ts @@ -0,0 +1,56 @@ +/* + * 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 { renderHook } from '@testing-library/react-hooks'; +import { wrapper } from '../../../mocks'; + +import { useLensAttributes } from '../../../use_lens_attributes'; + +import { getRiskScoreOverTimeAreaAttributes } from './risk_score_over_time_area'; + +jest.mock('../../../../../containers/sourcerer', () => ({ + useSourcererDataView: jest.fn().mockReturnValue({ + selectedPatterns: ['auditbeat-mytest-*'], + dataViewId: 'security-solution-my-test', + indicesExist: true, + }), +})); + +jest.mock('../../../../../utils/route/use_route_spy', () => ({ + useRouteSpy: jest.fn().mockReturnValue([ + { + detailName: 'mockHost', + pageName: 'hosts', + tabName: 'hostRisk', + }, + ]), +})); + +jest.mock('uuid', () => ({ + v4: jest + .fn() + .mockReturnValueOnce('d594baeb-5eca-480c-8885-ba79eaf41372') + .mockReturnValue('1dd5663b-f062-43f8-8688-fc8166c2ca8e'), +})); + +describe('getRiskScoreOverTimeAreaAttributes', () => { + it('should render', () => { + const { result } = renderHook( + () => + useLensAttributes({ + getLensAttributes: getRiskScoreOverTimeAreaAttributes, + stackByField: 'host', + extraOptions: { + spaceId: 'mockSpaceId', + }, + }), + { wrapper } + ); + + expect(result?.current).toMatchSnapshot(); + }); +}); diff --git a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/risk_score_overtime_area.ts b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/risk_score_over_time_area.ts similarity index 97% rename from x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/risk_score_overtime_area.ts rename to x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/risk_score_over_time_area.ts index 5a489cd5c91ee..7e8985715b5a1 100644 --- a/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/risk_score_overtime_area.ts +++ b/x-pack/plugins/security_solution/public/common/components/visualization_actions/lens_attributes/common/risk_scores/risk_score_over_time_area.ts @@ -5,14 +5,14 @@ * 2.0. */ -import uuid from 'uuid'; +import { v4 as uuidv4 } from 'uuid'; import type { GetLensAttributes } from '../../../types'; export const getRiskScoreOverTimeAreaAttributes: GetLensAttributes = ( stackByField, extraOptions = { spaceId: 'default' } ) => { - const layerId = uuid.v4(); - const internalReferenceId = uuid.v4(); + const layerId = uuidv4(); + const internalReferenceId = uuidv4(); return { title: `${stackByField} risk score over time`, description: '', diff --git a/x-pack/plugins/security_solution/public/explore/components/risk_score/risk_score_over_time/index.tsx b/x-pack/plugins/security_solution/public/explore/components/risk_score/risk_score_over_time/index.tsx index aefd8b6f8fd80..b689541bc898b 100644 --- a/x-pack/plugins/security_solution/public/explore/components/risk_score/risk_score_over_time/index.tsx +++ b/x-pack/plugins/security_solution/public/explore/components/risk_score/risk_score_over_time/index.tsx @@ -36,7 +36,7 @@ import { isUserRiskScore } from '../../../../../common/search_strategy'; import { useSpaceId } from '../../../../common/hooks/use_space_id'; import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features'; import { VisualizationEmbeddable } from '../../../../common/components/visualization_actions/visualization_embeddable'; -import { getRiskScoreOverTimeAreaAttributes } from '../../../../common/components/visualization_actions/lens_attributes/common/risk_scores/risk_score_overtime_area'; +import { getRiskScoreOverTimeAreaAttributes } from '../../../../common/components/visualization_actions/lens_attributes/common/risk_scores/risk_score_over_time_area'; export interface RiskScoreOverTimeProps { from: string;