From 1272be9318160a75156dd0792fb8e2af80432ba0 Mon Sep 17 00:00:00 2001 From: christianpiske Date: Thu, 14 Nov 2024 11:20:06 +0100 Subject: [PATCH 1/2] Add: A lot of Test-IDs These will be used in test automation to make tests more stable and resilient to code changes. --- src/web/components/bar/compliancebar.jsx | 2 +- .../components/bar/compliancestatusbar.jsx | 1 + src/web/components/bar/menubar.jsx | 95 ++++++++++--------- src/web/components/bar/severitybar.jsx | 2 +- src/web/components/bar/statusbar.jsx | 2 +- src/web/components/bar/toolbar.jsx | 1 + src/web/components/certinfo/certinfo.jsx | 24 ++--- src/web/components/comment/comment.jsx | 2 +- src/web/components/dashboard/controls.jsx | 4 + src/web/components/dialog/button.jsx | 2 +- src/web/components/dialog/closebutton.jsx | 1 + src/web/components/dialog/composercontent.jsx | 4 +- .../components/dialog/confirmationdialog.jsx | 6 +- src/web/components/dialog/container.jsx | 1 + src/web/components/dialog/dialog.jsx | 1 + src/web/components/dialog/error.jsx | 4 +- src/web/components/dialog/errordialog.jsx | 5 +- src/web/components/dialog/savedialog.jsx | 5 +- src/web/components/form/datepicker.jsx | 1 + src/web/components/form/passwordfield.jsx | 2 +- src/web/components/form/textfield.jsx | 1 + src/web/components/form/timezoneselect.jsx | 1 + src/web/components/form/yesnoradio.jsx | 2 + src/web/components/icon/arrowicon.jsx | 2 +- src/web/components/icon/cpeicon.jsx | 2 +- src/web/components/icon/deleteicon.jsx | 2 +- src/web/components/icon/detailsicon.jsx | 2 +- src/web/components/icon/exporticon.jsx | 2 +- src/web/components/icon/foldstateicon.jsx | 4 +- src/web/components/icon/manualicon.jsx | 2 +- src/web/components/icon/trashicon.jsx | 2 +- src/web/components/img/greenbone.jsx | 2 +- src/web/components/img/greenboneloginlogo.jsx | 2 +- src/web/components/label/severityclass.jsx | 10 +- src/web/components/link/certlink.jsx | 2 +- src/web/components/link/cvelink.jsx | 2 +- src/web/components/link/externallink.jsx | 3 +- src/web/components/link/innerlink.jsx | 2 +- src/web/components/link/link.jsx | 2 +- src/web/components/link/manuallink.jsx | 2 +- src/web/components/link/protocoldoclink.jsx | 2 +- .../powerfilter/applyoverridesgroup.jsx | 1 + .../powerfilter/booleanfiltergroup.jsx | 1 + .../powerfilter/compliancelevelsgroup.jsx | 4 + .../powerfilter/filtersearchgroup.jsx | 2 +- .../powerfilter/filterstringgroup.jsx | 1 + .../powerfilter/firstresultgroup.jsx | 1 + .../components/powerfilter/minqodgroup.jsx | 1 + .../components/powerfilter/powerfilter.jsx | 5 + .../powerfilter/relationselector.jsx | 8 +- .../powerfilter/resultsperpagegroup.jsx | 1 + .../powerfilter/severitylevelsgroup.jsx | 5 + .../powerfilter/severityvaluesgroup.jsx | 1 + .../powerfilter/solutiontypegroup.jsx | 6 ++ .../components/powerfilter/sortbygroup.jsx | 3 + .../components/powerfilter/tasktrendgroup.jsx | 10 +- .../powerfilter/ticketstatusgroup.jsx | 8 +- src/web/components/qod/qod.jsx | 2 +- src/web/components/section/header.jsx | 2 +- src/web/components/table/detailstable.jsx | 2 +- src/web/entity/note.jsx | 4 +- src/web/entity/override.jsx | 3 +- 62 files changed, 172 insertions(+), 115 deletions(-) diff --git a/src/web/components/bar/compliancebar.jsx b/src/web/components/bar/compliancebar.jsx index 9f17e89fc9..158a101e74 100644 --- a/src/web/components/bar/compliancebar.jsx +++ b/src/web/components/bar/compliancebar.jsx @@ -30,7 +30,7 @@ const ComplianceBar = ({compliance, toolTip}) => { const toolTipText = isDefined(toolTip) ? toolTip : title; return ( - + {title} ); diff --git a/src/web/components/bar/compliancestatusbar.jsx b/src/web/components/bar/compliancestatusbar.jsx index 16917b57f2..0de33f3000 100644 --- a/src/web/components/bar/compliancestatusbar.jsx +++ b/src/web/components/bar/compliancestatusbar.jsx @@ -30,6 +30,7 @@ const ComplianceStatusBar = ({complianceStatus}) => { progress={complianceStatus} background={Theme.statusRunGreen} boxBackground={boxBackground} + data-testid="progress-bar" > {text} diff --git a/src/web/components/bar/menubar.jsx b/src/web/components/bar/menubar.jsx index 388586c6b0..e3cd63f36a 100644 --- a/src/web/components/bar/menubar.jsx +++ b/src/web/components/bar/menubar.jsx @@ -114,137 +114,140 @@ const MenuBar = ({isLoggedIn}) => {
    - + {may_op_scans && ( - + {caps.mayAccess('tasks') && ( - + )} {caps.mayAccess('reports') && ( - + )} {caps.mayAccess('results') && ( - + )} {caps.mayAccess('vulns') && ( - + )} {mayOpNotesOverrides && ( {caps.mayAccess('notes') && ( - + )} {caps.mayAccess('overrides') && ( - + )} )} )} {mayOpAssets && ( - + {caps.mayAccess('assets') && ( - + )} {caps.mayAccess('assets') && ( )} {caps.mayAccess('tls_certificates') && ( - + )} )} {mayOpResilience && ( - + {caps.mayAccess('tickets') && ( - + )} {caps.mayAccess('policies') && ( - + )} {caps.mayAccess('audits') && ( - + )} {caps.featureEnabled('COMPLIANCE_REPORTS') && caps.mayAccess('audits') && ( )} )} {caps.mayAccess('info') && ( - - - - - - + + + + + + + )} {may_op_configuration && ( - + {caps.mayAccess('targets') && ( - + )} {caps.mayAccess('port_lists') && ( - + )} {caps.mayAccess('credentials') && ( - + )} {caps.mayAccess('configs') && ( - + )} {mayOpAlertsSchedulesReportFormats && ( {caps.mayAccess('alerts') && ( - + )} {caps.mayAccess('schedules') && ( - + )} {caps.mayAccess('report_configs') && ( - + )} {caps.mayAccess('report_formats') && ( - + )} )} {mayOpScannersFiltersTags && ( {caps.mayAccess('scanners') && ( - + )} {caps.mayAccess('filters') && ( - + )} {caps.mayAccess('tags') && ( - + )} )} )} - + {caps.mayAccess('users') && ( - + )} {caps.mayAccess('groups') && ( - + )} {caps.mayAccess('roles') && ( - + )} {caps.mayAccess('permissions') && ( - + )} {caps.mayAccess('system_reports') && ( @@ -252,32 +255,34 @@ const MenuBar = ({isLoggedIn}) => { title={_('Performance')} caps="get_system_reports" to="performance" + data-testid="menu_performance" /> )} - + {caps.mayAccess('feeds') && ( )} {caps.mayOp('describe_auth') && ( {caps.mayOp('modify_auth') && ( - + )} {caps.mayOp('modify_auth') && ( - + )} )} - - - - + + + +
diff --git a/src/web/components/bar/severitybar.jsx b/src/web/components/bar/severitybar.jsx index 3fa6dca090..676e593242 100644 --- a/src/web/components/bar/severitybar.jsx +++ b/src/web/components/bar/severitybar.jsx @@ -60,7 +60,7 @@ const SeverityBar = ({severity, toolTip}) => { const toolTipText = isDefined(toolTip) ? toolTip : title; return ( - + {text} ); diff --git a/src/web/components/bar/statusbar.jsx b/src/web/components/bar/statusbar.jsx index fe8371e8bc..bc35ddb1e1 100644 --- a/src/web/components/bar/statusbar.jsx +++ b/src/web/components/bar/statusbar.jsx @@ -79,7 +79,7 @@ const StatusBar = ({status = 'Unknown', progress = '0'}) => { : getTranslatableTaskStatus(status); return ( - + {text} ); diff --git a/src/web/components/bar/toolbar.jsx b/src/web/components/bar/toolbar.jsx index eb439147eb..564f3257ef 100644 --- a/src/web/components/bar/toolbar.jsx +++ b/src/web/components/bar/toolbar.jsx @@ -18,6 +18,7 @@ const Toolbar = props => { align={['space-between', 'start']} {...props} className="toolbar" + data-testid="toolbar" /> ); diff --git a/src/web/components/certinfo/certinfo.jsx b/src/web/components/certinfo/certinfo.jsx index 926d691d2c..f7e7c923d6 100644 --- a/src/web/components/certinfo/certinfo.jsx +++ b/src/web/components/certinfo/certinfo.jsx @@ -29,9 +29,9 @@ const CertInfo = ({info}) => { - - {_('Activation')} - + + {_('Activation')} + {isDefined(activationTime) ? ( ) : ( @@ -40,9 +40,9 @@ const CertInfo = ({info}) => { - - {_('Expiration')} - + + {_('Expiration')} + {isDefined(expirationTime) ? ( ) : ( @@ -51,14 +51,14 @@ const CertInfo = ({info}) => { - - {_('MD5 Fingerprint')} - {md5_fingerprint} + + {_('MD5 Fingerprint')} + {md5_fingerprint} - - {_('Issuer')} - {issuer} + + {_('Issuer')} + {issuer} diff --git a/src/web/components/comment/comment.jsx b/src/web/components/comment/comment.jsx index 45b69547d9..d56c6d5319 100644 --- a/src/web/components/comment/comment.jsx +++ b/src/web/components/comment/comment.jsx @@ -17,7 +17,7 @@ const Comment = ({text, children}) => { if (!isDefined(text)) { return null; } - return
{text}
; + return
{text}
; }; Comment.propTypes = { diff --git a/src/web/components/dashboard/controls.jsx b/src/web/components/dashboard/controls.jsx index 72ff0f9eb5..8d0f4b1a30 100644 --- a/src/web/components/dashboard/controls.jsx +++ b/src/web/components/dashboard/controls.jsx @@ -119,10 +119,12 @@ export class DashboardControls extends React.Component { : _('Dashboard limit reached') } onClick={canAdd ? this.handleNewClick : undefined} + data-testid="add_new_dashboard" /> {showNewDialog && ( @@ -136,6 +138,7 @@ export class DashboardControls extends React.Component { }} onClose={this.handleNewDialogClose} onSave={this.handleNewDisplay} + data-testid="save_dialog_add" > {({values, onValueChange}) => ( @@ -145,6 +148,7 @@ export class DashboardControls extends React.Component { value={values.displayId} width="auto" onChange={onValueChange} + data-testid="display_id" /> )} diff --git a/src/web/components/dialog/button.jsx b/src/web/components/dialog/button.jsx index 35aa3ab355..d0109bce47 100644 --- a/src/web/components/dialog/button.jsx +++ b/src/web/components/dialog/button.jsx @@ -11,7 +11,7 @@ import Button from 'web/components/form/button'; import Theme from 'web/utils/theme'; -const DialogButton = styled(({loading, ...props}) =>