mirror of
https://github.com/grafana/grafana.git
synced 2025-02-13 00:55:47 -06:00
3c6e0e8ef8
* Add and configure eslint-plugin-import * Fix the lint:ts npm command * Autofix + prettier all the files * Manually fix remaining files * Move jquery code in jest-setup to external file to safely reorder imports * Resolve issue caused by circular dependencies within Prometheus * Update .betterer.results * Fix missing // @ts-ignore * ignore iconBundle.ts * Fix missing // @ts-ignore
59 lines
1.6 KiB
TypeScript
59 lines
1.6 KiB
TypeScript
import { CombinedRuleGroup, CombinedRuleNamespace } from 'app/types/unified-alerting';
|
|
|
|
import { sortRulesByName, flattenGrafanaManagedRules } from './useCombinedRuleNamespaces';
|
|
|
|
describe('flattenGrafanaManagedRules', () => {
|
|
it('should properly transform grafana managed namespaces', () => {
|
|
// the rules from both ungrouped groups should go in the default group
|
|
const ungroupedGroup1 = {
|
|
name: 'my-rule',
|
|
rules: [{ name: 'my-rule' }],
|
|
} as CombinedRuleGroup;
|
|
|
|
const ungroupedGroup2 = {
|
|
name: 'another-rule',
|
|
rules: [{ name: 'another-rule' }],
|
|
} as CombinedRuleGroup;
|
|
|
|
// the rules from both these groups should go in their own group name
|
|
const group1 = {
|
|
name: 'group1',
|
|
rules: [{ name: 'rule-1' }, { name: 'rule-2' }],
|
|
} as CombinedRuleGroup;
|
|
|
|
const group2 = {
|
|
name: 'group2',
|
|
rules: [{ name: 'rule-1' }, { name: 'rule-2' }],
|
|
} as CombinedRuleGroup;
|
|
|
|
const namespace1 = {
|
|
rulesSource: 'grafana',
|
|
name: 'ns1',
|
|
groups: [ungroupedGroup1, ungroupedGroup2, group1, group2],
|
|
};
|
|
|
|
const namespace2 = {
|
|
rulesSource: 'grafana',
|
|
name: 'ns2',
|
|
groups: [ungroupedGroup1],
|
|
};
|
|
|
|
const input = [namespace1, namespace2] as CombinedRuleNamespace[];
|
|
const [ns1, ns2] = flattenGrafanaManagedRules(input);
|
|
|
|
expect(ns1.groups).toEqual([
|
|
{
|
|
name: 'default',
|
|
rules: sortRulesByName([...ungroupedGroup1.rules, ...ungroupedGroup2.rules, ...group1.rules, ...group2.rules]),
|
|
},
|
|
]);
|
|
|
|
expect(ns2.groups).toEqual([
|
|
{
|
|
name: 'default',
|
|
rules: ungroupedGroup1.rules,
|
|
},
|
|
]);
|
|
});
|
|
});
|