update snapshots and test

This commit is contained in:
laurenashleigh
2026-01-12 11:46:49 +00:00
parent 1f6d3c4301
commit 0e1cce1326
4 changed files with 47 additions and 29 deletions
@@ -79,9 +79,7 @@ exports[`Can create a new grafana managed alert using simplified routing can cre
"type": "and",
},
"query": {
"params": [
"B",
],
"params": [],
},
"reducer": {
"params": [],
@@ -249,9 +247,7 @@ exports[`Can create a new grafana managed alert using simplified routing switch
"type": "and",
},
"query": {
"params": [
"B",
],
"params": [],
},
"reducer": {
"params": [],
@@ -422,9 +418,7 @@ exports[`Can create a new grafana managed alert using simplified routing switch
"type": "and",
},
"query": {
"params": [
"B",
],
"params": [],
},
"reducer": {
"params": [],
@@ -598,9 +592,7 @@ exports[`Can create a new grafana managed alert using simplified routing switch
"type": "and",
},
"query": {
"params": [
"B",
],
"params": [],
},
"reducer": {
"params": [],
@@ -771,9 +763,7 @@ exports[`Can create a new grafana managed alert using simplified routing switch
"type": "and",
},
"query": {
"params": [
"B",
],
"params": [],
},
"reducer": {
"params": [],
@@ -81,9 +81,7 @@ exports[`RuleEditor grafana managed rules can create new grafana managed alert 1
"type": "and",
},
"query": {
"params": [
"B",
],
"params": [],
},
"reducer": {
"params": [],
@@ -1,5 +1,5 @@
import { PromQuery } from '@grafana/prometheus';
import { ExpressionDatasourceUID, ExpressionQueryType } from 'app/features/expressions/types';
import { ExpressionDatasourceUID, ExpressionQuery, ExpressionQueryType } from 'app/features/expressions/types';
import { RuleWithLocation } from 'app/types/unified-alerting';
import {
AlertDataQuery,
@@ -452,15 +452,24 @@ describe('getInstantFromDataQuery', () => {
});
});
function isExpressionQuery(model: unknown): model is ExpressionQuery {
return typeof model === 'object' && model !== null && 'type' in model;
}
describe('getDefaultExpressions', () => {
it('should create a reduce expression as the first query', () => {
const result = getDefaultExpressions('B', 'C');
const reduceQuery = result[0];
const model = reduceQuery.model;
const { model } = reduceQuery;
expect(reduceQuery.refId).toBe('B');
expect(reduceQuery.datasourceUid).toBe(ExpressionDatasourceUID);
expect(reduceQuery.queryType).toBe('');
expect(reduceQuery.queryType).toBe('expression');
if (!isExpressionQuery(model)) {
throw new Error('Expected ExpressionQuery');
}
expect(model.type).toBe(ExpressionQueryType.reduce);
expect(model.datasource?.uid).toBe(ExpressionDatasourceUID);
expect(model.reducer).toBe('last');
@@ -469,7 +478,11 @@ describe('getDefaultExpressions', () => {
it('should create reduce expression with proper conditions structure', () => {
const result = getDefaultExpressions('B', 'C');
const reduceQuery = result[0];
const model = reduceQuery.model;
const { model } = reduceQuery;
if (!isExpressionQuery(model)) {
throw new Error('Expected ExpressionQuery');
}
expect(model.conditions).toHaveLength(1);
expect(model.expression).toBe('A');
@@ -495,11 +508,16 @@ describe('getDefaultExpressions', () => {
it('should create a threshold expression as the second query', () => {
const result = getDefaultExpressions('B', 'C');
const thresholdQuery = result[1];
const model = thresholdQuery.model;
const { model } = thresholdQuery;
expect(thresholdQuery.refId).toBe('C');
expect(thresholdQuery.datasourceUid).toBe(ExpressionDatasourceUID);
expect(thresholdQuery.queryType).toBe('');
expect(thresholdQuery.queryType).toBe('expression');
if (!isExpressionQuery(model)) {
throw new Error('Expected ExpressionQuery');
}
expect(model.type).toBe(ExpressionQueryType.threshold);
expect(model.datasource?.uid).toBe(ExpressionDatasourceUID);
});
@@ -507,7 +525,11 @@ describe('getDefaultExpressions', () => {
it('should create threshold expression with proper conditions structure', () => {
const result = getDefaultExpressions('B', 'C');
const thresholdQuery = result[1];
const model = thresholdQuery.model;
const { model } = thresholdQuery;
if (!isExpressionQuery(model)) {
throw new Error('Expected ExpressionQuery');
}
expect(model.conditions).toHaveLength(1);
expect(model.conditions?.[0]).toEqual({
@@ -520,7 +542,7 @@ describe('getDefaultExpressions', () => {
type: 'and',
},
query: {
params: [],
params: ['C'],
},
reducer: {
params: [],
@@ -532,7 +554,11 @@ describe('getDefaultExpressions', () => {
it('should reference the reduce expression in the threshold expression', () => {
const result = getDefaultExpressions('B', 'C');
const thresholdQuery = result[1];
const model = thresholdQuery.model;
const { model } = thresholdQuery;
if (!isExpressionQuery(model)) {
throw new Error('Expected ExpressionQuery');
}
expect(model.expression).toBe('B');
});
@@ -542,6 +568,10 @@ describe('getDefaultExpressions', () => {
const reduceModel = result[0].model;
const thresholdModel = result[1].model;
if (!isExpressionQuery(reduceModel) || !isExpressionQuery(thresholdModel)) {
throw new Error('Expected ExpressionQuery');
}
expect(result[0].refId).toBe('X');
expect(reduceModel.refId).toBe('X');
expect(reduceModel.conditions?.[0].query.params).toEqual([]);
@@ -559,7 +559,7 @@ export const getDefaultRecordingRulesQueries = (
];
};
const getDefaultExpressions = (...refIds: [string, string] | [string, string, string]): AlertQuery[] => {
export const getDefaultExpressions = (...refIds: [string, string] | [string, string, string]): AlertQuery[] => {
const refOne = refIds[0];
const refTwo = refIds[1];
// If a third parameter is provided, use it as the source query refId, otherwise default to 'A'
@@ -583,7 +583,7 @@ const getDefaultExpressions = (...refIds: [string, string] | [string, string, st
type: 'and',
},
query: {
params: [refOne],
params: [],
},
reducer: {
params: [],