mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-25 05:34:05 -08:00
Fix handling of scalar and string in isHeatmapData
Signed-off-by: Kevin Mingtarja <kevin.mingtarja@gmail.com>
This commit is contained in:
parent
c126c21baa
commit
40941d450b
|
@ -1,8 +1,23 @@
|
|||
import { DataTableProps } from './DataTable';
|
||||
import { isHeatmapData } from './GraphHeatmapHelpers';
|
||||
|
||||
describe('GraphHeatmapHelpers', () => {
|
||||
it('isHeatmapData should return false for a vector', () => {
|
||||
const data = {
|
||||
it('isHeatmapData should return false for scalar and string resultType', () => {
|
||||
let data = {
|
||||
resultType: 'scalar',
|
||||
result: [1703091180.125, '1703091180.125'],
|
||||
} as DataTableProps['data'];
|
||||
expect(isHeatmapData(data)).toBe(false);
|
||||
|
||||
data = {
|
||||
resultType: 'string',
|
||||
result: [1704305680.332, '2504'],
|
||||
} as DataTableProps['data'];
|
||||
expect(isHeatmapData(data)).toBe(false);
|
||||
});
|
||||
|
||||
it('isHeatmapData should return false for a vector and matrix if length < 2', () => {
|
||||
let data = {
|
||||
resultType: 'vector',
|
||||
result: [
|
||||
{
|
||||
|
@ -13,15 +28,39 @@ describe('GraphHeatmapHelpers', () => {
|
|||
value: [1703091180.683, '6'],
|
||||
},
|
||||
],
|
||||
};
|
||||
} as DataTableProps['data'];
|
||||
expect(isHeatmapData(data)).toBe(false);
|
||||
|
||||
data = {
|
||||
resultType: 'matrix',
|
||||
result: [
|
||||
{
|
||||
metric: {},
|
||||
values: [[1703091180.683, '6']],
|
||||
},
|
||||
],
|
||||
} as DataTableProps['data'];
|
||||
expect(isHeatmapData(data)).toBe(false);
|
||||
});
|
||||
|
||||
it('isHeatmapData should return false for scalar resultType', () => {
|
||||
it('isHeatmapData should return true for valid heatmap data', () => {
|
||||
const data = {
|
||||
resultType: 'scalar',
|
||||
result: [1703091180.125, '1703091180.125'],
|
||||
};
|
||||
expect(isHeatmapData(data)).toBe(false);
|
||||
resultType: 'matrix',
|
||||
result: [
|
||||
{
|
||||
metric: {
|
||||
le: '100',
|
||||
},
|
||||
values: [[1703091180.683, '6']],
|
||||
},
|
||||
{
|
||||
metric: {
|
||||
le: '1000',
|
||||
},
|
||||
values: [[1703091190.683, '6.1']],
|
||||
},
|
||||
],
|
||||
} as DataTableProps['data'];
|
||||
expect(isHeatmapData(data)).toBe(true);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
import { DataTableProps } from './DataTable';
|
||||
import { GraphProps, GraphSeries } from './Graph';
|
||||
|
||||
export function isHeatmapData(data: GraphProps['data']) {
|
||||
if (!data?.result?.length || data?.result?.length < 2) {
|
||||
export function isHeatmapData(data: DataTableProps['data']) {
|
||||
if (data?.resultType === 'scalar' || data?.resultType === 'string' || !data?.result?.length || data?.result?.length < 2) {
|
||||
return false;
|
||||
}
|
||||
const result = data.result;
|
||||
// Type assertion to prevent TS2349 error.
|
||||
const result = data.result as GraphProps['data']['result'];
|
||||
const firstLabels = Object.keys(result[0].metric).filter((label) => label !== 'le');
|
||||
return result.every(({ metric }) => {
|
||||
const labels = Object.keys(metric).filter((label) => label !== 'le');
|
||||
|
|
Loading…
Reference in a new issue