2025-04-01 10:38:02 +09:00

81 lines
2.2 KiB
TypeScript

import { VAR_GROUP_BY_EXP, VAR_METRIC_EXPR } from '../../shared';
import { CommonQueryInfoParams, generateCommonAutoQueryInfo } from './common';
describe('generateCommonAutoQueryInfo', () => {
const params: CommonQueryInfoParams = {
description: 'Test Description',
mainQueryExpr: 'rate(test_metric[5m])',
breakdownQueryExpr: 'sum by (label) (test_metric)',
unit: 'short',
};
it('should generate a valid AutoQueryInfo object with main, preview, and breakdown variants', () => {
const result = generateCommonAutoQueryInfo(params);
expect(result).toHaveProperty('main');
expect(result).toHaveProperty('preview');
expect(result).toHaveProperty('breakdown');
expect(result).toHaveProperty('variants');
});
it('should configure the main variant correctly', () => {
const result = generateCommonAutoQueryInfo(params);
const { main } = result;
expect(main).toMatchObject({
title: params.description,
unit: params.unit,
queries: [
{
refId: 'A',
expr: params.mainQueryExpr,
legendFormat: params.description,
},
],
variant: 'main',
});
});
it('should configure the preview variant correctly', () => {
const result = generateCommonAutoQueryInfo(params);
const { preview } = result;
expect(preview).toMatchObject({
title: VAR_METRIC_EXPR,
unit: params.unit,
queries: [
{
refId: 'A',
expr: params.mainQueryExpr,
legendFormat: params.description,
},
],
variant: 'preview',
});
});
it('should configure the breakdown variant correctly', () => {
const result = generateCommonAutoQueryInfo(params);
const { breakdown } = result;
expect(breakdown).toMatchObject({
title: VAR_METRIC_EXPR,
unit: params.unit,
queries: [
{
refId: 'A',
expr: params.breakdownQueryExpr,
legendFormat: `{{${VAR_GROUP_BY_EXP}}}`,
},
],
variant: 'breakdown',
});
});
it('should return an empty variants array', () => {
const result = generateCommonAutoQueryInfo(params);
expect(result.variants).toEqual([]);
});
});