5
5
* 2.0.
6
6
*/
7
7
8
- import { mockRiskScoreState } from '../../../flyout/entity_details/mocks' ;
8
+ import {
9
+ mockHostRiskScoreState ,
10
+ mockUserRiskScoreState ,
11
+ } from '../../../flyout/entity_details/mocks' ;
9
12
import { render } from '@testing-library/react' ;
10
13
import React from 'react' ;
11
14
import { TestProviders } from '../../../common/mock' ;
12
15
import { RiskSummary } from './risk_summary' ;
16
+ import type {
17
+ LensAttributes ,
18
+ VisualizationEmbeddableProps ,
19
+ } from '../../../common/components/visualization_actions/types' ;
13
20
14
- jest . mock ( '../../../common/components/visualization_actions/visualization_embeddable' ) ;
21
+ const mockVisualizationEmbeddable = jest
22
+ . fn ( )
23
+ . mockReturnValue ( < div data-test-subj = "visualization-embeddable" /> ) ;
24
+
25
+ jest . mock ( '../../../common/components/visualization_actions/visualization_embeddable' , ( ) => ( {
26
+ VisualizationEmbeddable : ( props : VisualizationEmbeddableProps ) =>
27
+ mockVisualizationEmbeddable ( props ) ,
28
+ } ) ) ;
15
29
16
30
describe ( 'RiskSummary' , ( ) => {
31
+ beforeEach ( ( ) => {
32
+ mockVisualizationEmbeddable . mockClear ( ) ;
33
+ } ) ;
34
+
17
35
it ( 'renders risk summary table' , ( ) => {
18
36
const { getByTestId } = render (
19
37
< TestProviders >
20
38
< RiskSummary
21
- riskScoreData = { mockRiskScoreState }
39
+ riskScoreData = { mockHostRiskScoreState }
22
40
queryId = { 'testQuery' }
23
41
openDetailsPanel = { ( ) => { } }
24
42
/>
@@ -34,7 +52,7 @@ describe('RiskSummary', () => {
34
52
const { getByTestId } = render (
35
53
< TestProviders >
36
54
< RiskSummary
37
- riskScoreData = { { ...mockRiskScoreState , data : undefined } }
55
+ riskScoreData = { { ...mockHostRiskScoreState , data : undefined } }
38
56
queryId = { 'testQuery' }
39
57
openDetailsPanel = { ( ) => { } }
40
58
/>
@@ -47,7 +65,7 @@ describe('RiskSummary', () => {
47
65
const { getByTestId } = render (
48
66
< TestProviders >
49
67
< RiskSummary
50
- riskScoreData = { mockRiskScoreState }
68
+ riskScoreData = { mockHostRiskScoreState }
51
69
queryId = { 'testQuery' }
52
70
openDetailsPanel = { ( ) => { } }
53
71
/>
@@ -61,7 +79,7 @@ describe('RiskSummary', () => {
61
79
const { getByTestId } = render (
62
80
< TestProviders >
63
81
< RiskSummary
64
- riskScoreData = { mockRiskScoreState }
82
+ riskScoreData = { mockHostRiskScoreState }
65
83
queryId = { 'testQuery' }
66
84
openDetailsPanel = { ( ) => { } }
67
85
/>
@@ -70,4 +88,52 @@ describe('RiskSummary', () => {
70
88
71
89
expect ( getByTestId ( 'risk-summary-updatedAt' ) ) . toHaveTextContent ( 'Updated Nov 8, 1989' ) ;
72
90
} ) ;
91
+
92
+ it ( 'builds lens attributes for host risk score' , ( ) => {
93
+ render (
94
+ < TestProviders >
95
+ < RiskSummary
96
+ riskScoreData = { mockHostRiskScoreState }
97
+ queryId = { 'testQuery' }
98
+ openDetailsPanel = { ( ) => { } }
99
+ />
100
+ </ TestProviders >
101
+ ) ;
102
+
103
+ const lensAttributes : LensAttributes =
104
+ mockVisualizationEmbeddable . mock . calls [ 0 ] [ 0 ] . lensAttributes ;
105
+ const datasourceLayers = Object . values ( lensAttributes . state . datasourceStates . formBased . layers ) ;
106
+ const firstColumn = Object . values ( datasourceLayers [ 0 ] . columns ) [ 0 ] ;
107
+
108
+ expect ( lensAttributes . state . query . query ) . toEqual ( 'host.name: test' ) ;
109
+ expect ( firstColumn ) . toEqual (
110
+ expect . objectContaining ( {
111
+ sourceField : 'host.risk.calculated_score_norm' ,
112
+ } )
113
+ ) ;
114
+ } ) ;
115
+
116
+ it ( 'builds lens attributes for user risk score' , ( ) => {
117
+ render (
118
+ < TestProviders >
119
+ < RiskSummary
120
+ riskScoreData = { mockUserRiskScoreState }
121
+ queryId = { 'testQuery' }
122
+ openDetailsPanel = { ( ) => { } }
123
+ />
124
+ </ TestProviders >
125
+ ) ;
126
+
127
+ const lensAttributes : LensAttributes =
128
+ mockVisualizationEmbeddable . mock . calls [ 0 ] [ 0 ] . lensAttributes ;
129
+ const datasourceLayers = Object . values ( lensAttributes . state . datasourceStates . formBased . layers ) ;
130
+ const firstColumn = Object . values ( datasourceLayers [ 0 ] . columns ) [ 0 ] ;
131
+
132
+ expect ( lensAttributes . state . query . query ) . toEqual ( 'user.name: test' ) ;
133
+ expect ( firstColumn ) . toEqual (
134
+ expect . objectContaining ( {
135
+ sourceField : 'user.risk.calculated_score_norm' ,
136
+ } )
137
+ ) ;
138
+ } ) ;
73
139
} ) ;
0 commit comments