[Cases] Add cypress test for Cases KPIs (#127589)

This commit is contained in:
Christos Nasikas 2022-03-15 13:45:19 +02:00 committed by GitHub
parent f4524df1fa
commit 9691ad00d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 4 deletions

View file

@ -24,8 +24,8 @@ export const CaseViewMetricItems: React.FC<Pick<CaseViewMetricsProps, 'metrics'
return (
<>
{metricItems.map(({ title, value }) => (
<EuiFlexItem key={title}>
{metricItems.map(({ id, title, value }) => (
<EuiFlexItem key={title} data-test-subj={`case-metrics-totals-${id}`}>
<EuiFlexGroup direction="column" gutterSize="s" responsive={false}>
<EuiFlexItem>{title}</EuiFlexItem>
<MetricValue>{value}</MetricValue>
@ -43,6 +43,7 @@ const MetricValue = euiStyled(EuiFlexItem)`
`;
interface MetricItem {
id: string;
title: string;
value: number;
}
@ -60,7 +61,7 @@ const useGetTitleValueMetricItems = (
const totalIsolatedHosts = calculateTotalIsolatedHosts(actions);
const metricItems = useMemo<MetricItems>(() => {
const items: Array<[CaseMetricsFeature, MetricItem]> = [
const items: Array<[CaseMetricsFeature, Omit<MetricItem, 'id'>]> = [
['alerts.count', { title: TOTAL_ALERTS_METRIC, value: alertsCount }],
['alerts.users', { title: ASSOCIATED_USERS_METRIC, value: totalAlertUsers }],
['alerts.hosts', { title: ASSOCIATED_HOSTS_METRIC, value: totalAlertHosts }],
@ -71,7 +72,7 @@ const useGetTitleValueMetricItems = (
return items.reduce(
(result: MetricItems, [feature, item]) => [
...result,
...(features.includes(feature) ? [item] : []),
...(features.includes(feature) ? [{ id: feature, ...item }] : []),
],
[]
);

View file

@ -32,6 +32,9 @@ import {
CASE_DETAILS_USERNAMES,
PARTICIPANTS,
REPORTER,
EXPECTED_METRICS,
CASES_METRIC,
UNEXPECTED_METRICS,
} from '../../screens/case_details';
import { TIMELINE_DESCRIPTION, TIMELINE_QUERY, TIMELINE_TITLE } from '../../screens/timeline';
@ -106,6 +109,14 @@ describe('Cases', () => {
cy.get(CASE_DETAILS_USERNAMES).eq(PARTICIPANTS).should('have.text', this.mycase.reporter);
cy.get(CASE_DETAILS_TAGS).should('have.text', expectedTags);
EXPECTED_METRICS.forEach((metric) => {
cy.get(CASES_METRIC(metric)).should('exist');
});
UNEXPECTED_METRICS.forEach((metric) => {
cy.get(CASES_METRIC(metric)).should('not.exist');
});
openCaseTimeline();
cy.get(TIMELINE_TITLE).contains(this.mycase.timeline.title);

View file

@ -52,3 +52,10 @@ export const DELETE_CASE_CONFIRM_BUTTON = '[data-test-subj="confirmModalConfirmB
export const PARTICIPANTS = 1;
export const REPORTER = 0;
export const EXPECTED_METRICS = ['alerts.count', 'alerts.users', 'alerts.hosts', 'connectors'];
export const UNEXPECTED_METRICS = ['actions.isolateHost'];
export const CASES_METRIC = (metric: string) => {
return `[data-test-subj="case-metrics-totals-${metric}"]`;
};