fix: Chart crashing if timeseries_limit_metric is an empty array (#23480)

This commit is contained in:
Kamil Gabryjelski 2023-03-24 12:02:58 +01:00 committed by GitHub
parent 8c374f391d
commit 4530542ac4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 3 deletions

View File

@ -17,6 +17,7 @@
* under the License. * under the License.
*/ */
import { import {
ensureIsArray,
getMetricLabel, getMetricLabel,
QueryFormData, QueryFormData,
QueryFormMetric, QueryFormMetric,
@ -27,13 +28,14 @@ export function extractExtraMetrics(
): QueryFormMetric[] { ): QueryFormMetric[] {
const { groupby, timeseries_limit_metric, x_axis_sort, metrics } = formData; const { groupby, timeseries_limit_metric, x_axis_sort, metrics } = formData;
const extra_metrics: QueryFormMetric[] = []; const extra_metrics: QueryFormMetric[] = [];
const limitMetric = ensureIsArray(timeseries_limit_metric)[0];
if ( if (
!(groupby || []).length && !(groupby || []).length &&
timeseries_limit_metric && limitMetric &&
getMetricLabel(timeseries_limit_metric) === x_axis_sort && getMetricLabel(limitMetric) === x_axis_sort &&
!metrics?.some(metric => getMetricLabel(metric) === x_axis_sort) !metrics?.some(metric => getMetricLabel(metric) === x_axis_sort)
) { ) {
extra_metrics.push(timeseries_limit_metric); extra_metrics.push(limitMetric);
} }
return extra_metrics; return extra_metrics;
} }

View File

@ -124,3 +124,13 @@ test('returns empty array if timeseries_limit_metric and x_axis_sort are include
}), }),
).toEqual([]); ).toEqual([]);
}); });
test('returns emoty array if timeseries_limit_metric is an empty array', () => {
expect(
extractExtraMetrics({
...baseFormData,
// @ts-ignore
timeseries_limit_metric: [],
}),
).toEqual([]);
});