mirror of
https://github.com/grafana/grafana.git
synced 2025-09-22 01:46:39 +08:00
92 lines
2.5 KiB
TypeScript
92 lines
2.5 KiB
TypeScript
import { Route } from 'app/plugins/datasource/alertmanager/types';
|
|
|
|
import { FormAmRoute } from '../types/amroutes';
|
|
|
|
import { amRouteToFormAmRoute, emptyRoute, formAmRouteToAmRoute } from './amroutes';
|
|
|
|
const emptyAmRoute: Route = {
|
|
receiver: '',
|
|
group_by: [],
|
|
continue: false,
|
|
object_matchers: [],
|
|
matchers: [],
|
|
match: {},
|
|
match_re: {},
|
|
group_wait: '',
|
|
group_interval: '',
|
|
repeat_interval: '',
|
|
routes: [],
|
|
mute_time_intervals: [],
|
|
};
|
|
|
|
const buildAmRoute = (override: Partial<Route> = {}): Route => {
|
|
return { ...emptyAmRoute, ...override };
|
|
};
|
|
|
|
const buildFormAmRoute = (override: Partial<FormAmRoute> = {}): FormAmRoute => {
|
|
return { ...emptyRoute, ...override };
|
|
};
|
|
|
|
describe('formAmRouteToAmRoute', () => {
|
|
describe('when called with overrideGrouping=false', () => {
|
|
it('Should not set groupBy', () => {
|
|
// Arrange
|
|
const route: FormAmRoute = buildFormAmRoute({ id: '1', overrideGrouping: false, groupBy: ['SHOULD NOT BE SET'] });
|
|
|
|
// Act
|
|
const amRoute = formAmRouteToAmRoute('test', route, {});
|
|
|
|
// Assert
|
|
expect(amRoute.group_by).toStrictEqual([]);
|
|
});
|
|
});
|
|
|
|
describe('when called with overrideGrouping=true', () => {
|
|
it('Should set groupBy', () => {
|
|
// Arrange
|
|
const route: FormAmRoute = buildFormAmRoute({ id: '1', overrideGrouping: true, groupBy: ['SHOULD BE SET'] });
|
|
|
|
// Act
|
|
const amRoute = formAmRouteToAmRoute('test', route, {});
|
|
|
|
// Assert
|
|
expect(amRoute.group_by).toStrictEqual(['SHOULD BE SET']);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('amRouteToFormAmRoute', () => {
|
|
describe('when called with empty group_by', () => {
|
|
it.each`
|
|
group_by
|
|
${[]}
|
|
${null}
|
|
${undefined}
|
|
`("when group_by is '$group_by', should set overrideGrouping false", ({ group_by }) => {
|
|
// Arrange
|
|
const amRoute: Route = buildAmRoute({ group_by: group_by });
|
|
|
|
// Act
|
|
const [formRoute] = amRouteToFormAmRoute(amRoute);
|
|
|
|
// Assert
|
|
expect(formRoute.groupBy).toStrictEqual([]);
|
|
expect(formRoute.overrideGrouping).toBe(false);
|
|
});
|
|
});
|
|
|
|
describe('when called with non-empty group_by', () => {
|
|
it('Should set overrideGrouping true and groupBy', () => {
|
|
// Arrange
|
|
const amRoute: Route = buildAmRoute({ group_by: ['SHOULD BE SET'] });
|
|
|
|
// Act
|
|
const [formRoute] = amRouteToFormAmRoute(amRoute);
|
|
|
|
// Assert
|
|
expect(formRoute.groupBy).toStrictEqual(['SHOULD BE SET']);
|
|
expect(formRoute.overrideGrouping).toBe(true);
|
|
});
|
|
});
|
|
});
|