55 * 2.0.
66 */
77
8- import { upperFirst } from 'lodash' ;
98import {
109 DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_MITRE_ATTACK_DETAILS ,
1110 DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_MITRE_ATTACK_TITLE ,
@@ -16,15 +15,18 @@ import {
1615 DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS ,
1716 DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON ,
1817 DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_TITLE ,
19- DOCUMENT_DETAILS_OVERVIEW_TAB_HEADER_RISK_SCORE ,
20- DOCUMENT_DETAILS_OVERVIEW_TAB_HEADER_RISK_SCORE_VALUE ,
21- DOCUMENT_DETAILS_OVERVIEW_TAB_HEADER_SEVERITY ,
22- DOCUMENT_DETAILS_OVERVIEW_TAB_HEADER_SEVERITY_VALUE ,
23- DOCUMENT_DETAILS_OVERVIEW_TAB_HEADER_TITLE ,
18+ DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_SECTION_HEADER ,
19+ DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_SECTION_CONTENT ,
20+ DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_REASON_TITLE ,
21+ DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_TITLE ,
22+ DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_DETAILS ,
23+ DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_EXPAND_BUTTON ,
24+ DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_REASON_DETAILS ,
2425} from '../../../screens/document_expandable_flyout' ;
2526import {
2627 expandFirstAlertExpandableFlyout ,
2728 openOverviewTab ,
29+ toggleOverviewTabDescriptionSection ,
2830} from '../../../tasks/document_expandable_flyout' ;
2931import { cleanKibana } from '../../../tasks/common' ;
3032import { login , visit } from '../../../tasks/login' ;
@@ -51,74 +53,105 @@ describe.skip(
5153 openOverviewTab ( ) ;
5254 } ) ;
5355
54- it ( 'should display correct title in header' , ( ) => {
55- cy . get ( DOCUMENT_DETAILS_OVERVIEW_TAB_HEADER_TITLE )
56- . should ( 'be.visible' )
57- . and ( 'have.text' , rule . name ) ;
58- } ) ;
59-
60- it ( 'should display risk score in header' , ( ) => {
61- cy . get ( DOCUMENT_DETAILS_OVERVIEW_TAB_HEADER_RISK_SCORE ) . should ( 'be.visible' ) ;
62- cy . get ( DOCUMENT_DETAILS_OVERVIEW_TAB_HEADER_RISK_SCORE_VALUE )
63- . should ( 'be.visible' )
64- . and ( 'have.text' , rule . risk_score ) ;
65- } ) ;
66-
67- it ( 'should display severity in header' , ( ) => {
68- cy . get ( DOCUMENT_DETAILS_OVERVIEW_TAB_HEADER_SEVERITY ) . should ( 'be.visible' ) ;
69- cy . get ( DOCUMENT_DETAILS_OVERVIEW_TAB_HEADER_SEVERITY_VALUE )
70- . should ( 'be.visible' )
71- . and ( 'have.text' , upperFirst ( rule . severity ) ) ;
72- } ) ;
73-
74- it ( 'should display mitre attack' , ( ) => {
75- cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_MITRE_ATTACK_TITLE )
76- . should ( 'be.visible' )
77- // @ts -ignore
78- . and ( 'contain.text' , rule . threat [ 0 ] . framework ) ;
79-
80- cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_MITRE_ATTACK_DETAILS )
81- . should ( 'be.visible' )
82- // @ts -ignore
83- . and ( 'contain.text' , rule . threat [ 0 ] . technique [ 0 ] . name )
84- // @ts -ignore
85- . and ( 'contain.text' , rule . threat [ 0 ] . tactic . name ) ;
86- } ) ;
56+ describe ( 'description section' , ( ) => {
57+ it ( 'should display description section header and content' , ( ) => {
58+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_SECTION_HEADER )
59+ . should ( 'be.visible' )
60+ . and ( 'have.text' , 'Description' ) ;
61+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_SECTION_CONTENT ) . should (
62+ 'be.visible'
63+ ) ;
64+ } ) ;
8765
88- it ( 'should display highlighted fields' , ( ) => {
89- cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS ) . within ( ( ) => {
90- cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON )
66+ it ( 'should display document description and expand button' , ( ) => {
67+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_TITLE )
9168 . should ( 'be.visible' )
92- . click ( ) ;
93- cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_TITLE )
69+ . and ( 'have.text' , 'Rule description' ) ;
70+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_DETAILS )
9471 . should ( 'be.visible' )
95- . and ( 'have.text' , 'Highlighted fields' ) ;
96- cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_DETAILS ) . should (
97- 'be.visible'
72+ . and ( 'have.text' , rule . description ) ;
73+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_EXPAND_BUTTON )
74+ . should ( 'be.visible' )
75+ . and ( 'have.text' , 'Expand' ) ;
76+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_EXPAND_BUTTON ) . click ( ) ;
77+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_DESCRIPTION_EXPAND_BUTTON ) . should (
78+ 'have.text' ,
79+ 'Collapse'
9880 ) ;
81+ } ) ;
9982
100- // close highlighted fields to reset the view for next test
101- cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON )
83+ it ( 'should display reason' , ( ) => {
84+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_REASON_TITLE )
85+ . should ( 'be.visible' )
86+ . and ( 'have.text' , 'Alert reason' ) ;
87+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_REASON_DETAILS )
10288 . should ( 'be.visible' )
103- . click ( ) ;
89+ . and ( 'contain.text' , rule . name ) ;
10490 } ) ;
105- } ) ;
10691
107- it ( 'should navigate to table tab when clicking on highlighted fields view button' , ( ) => {
108- cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS ) . within ( ( ) => {
109- cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON )
92+ it ( 'should display mitre attack' , ( ) => {
93+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_MITRE_ATTACK_TITLE ) . should ( 'be.visible' ) ;
94+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_MITRE_ATTACK_DETAILS ) . should ( 'be.visible' ) ;
95+ } ) ;
96+
97+ it ( 'should display mitre attack' , ( ) => {
98+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_MITRE_ATTACK_TITLE )
11099 . should ( 'be.visible' )
111- . click ( ) ;
112- cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_GO_TO_TABLE_LINK )
100+ // @ts -ignore
101+ . and ( 'contain.text' , rule . threat [ 0 ] . framework ) ;
102+
103+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_MITRE_ATTACK_DETAILS )
113104 . should ( 'be.visible' )
114- . click ( ) ;
105+ // @ts -ignore
106+ . and ( 'contain.text' , rule . threat [ 0 ] . technique [ 0 ] . name )
107+ // @ts -ignore
108+ . and ( 'contain.text' , rule . threat [ 0 ] . tactic . name ) ;
115109 } ) ;
110+ } ) ;
116111
117- // the table component is rendered within a dom element with overflow, so Cypress isn't finding it
118- // this next line is a hack that scrolls to a specific element in the table
119- // (in the middle of it vertically) to ensure Cypress finds it
120- cy . get ( DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_EVENT_TYPE_ROW ) . scrollIntoView ( ) ;
121- cy . get ( DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_CONTENT ) . should ( 'be.visible' ) ;
112+ describe ( 'investigation section' , ( ) => {
113+ before ( ( ) => {
114+ toggleOverviewTabDescriptionSection ( ) ;
115+ } ) ;
116+
117+ it ( 'should display highlighted fields' , ( ) => {
118+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS )
119+ . scrollIntoView ( )
120+ . within ( ( ) => {
121+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON )
122+ . should ( 'be.visible' )
123+ . click ( ) ;
124+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_TITLE )
125+ . should ( 'be.visible' )
126+ . and ( 'have.text' , 'Highlighted fields' ) ;
127+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_DETAILS ) . should (
128+ 'be.visible'
129+ ) ;
130+
131+ // close highlighted fields to reset the view for next test
132+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON )
133+ . should ( 'be.visible' )
134+ . click ( ) ;
135+ } ) ;
136+ } ) ;
137+ it ( 'should navigate to table tab when clicking on highlighted fields view button' , ( ) => {
138+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS )
139+ . scrollIntoView ( )
140+ . within ( ( ) => {
141+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_HEADER_EXPAND_ICON )
142+ . should ( 'be.visible' )
143+ . click ( ) ;
144+ cy . get ( DOCUMENT_DETAILS_FLYOUT_OVERVIEW_TAB_HIGHLIGHTED_FIELDS_GO_TO_TABLE_LINK )
145+ . should ( 'be.visible' )
146+ . click ( ) ;
147+ } ) ;
148+
149+ // the table component is rendered within a dom element with overflow, so Cypress isn't finding it
150+ // this next line is a hack that scrolls to a specific element in the table
151+ // (in the middle of it vertically) to ensure Cypress finds it
152+ cy . get ( DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_EVENT_TYPE_ROW ) . scrollIntoView ( ) ;
153+ cy . get ( DOCUMENT_DETAILS_FLYOUT_TABLE_TAB_CONTENT ) . should ( 'be.visible' ) ;
154+ } ) ;
122155 } ) ;
123156 }
124157) ;
0 commit comments