mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
[Cases] Add cypress test for Cases KPIs (#127589)
This commit is contained in:
parent
f4524df1fa
commit
9691ad00d3
3 changed files with 23 additions and 4 deletions
|
@ -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 }] : []),
|
||||
],
|
||||
[]
|
||||
);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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}"]`;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue