@grafana/alerting
Version:
Grafana Alerting Library – Build vertical integrations on top of the industry-leading alerting solution
68 lines (63 loc) • 2.88 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var faker = require('@faker-js/faker');
var fishery = require('fishery');
var v0alpha1 = require('@grafana/api-clients/rtkq/notifications.alerting/v0alpha1');
var util = require('../../../../../mocks/util.cjs');
var consts = require('../../../../../notificationPolicies/consts.cjs');
;
const LabelMatcherFactory = fishery.Factory.define(() => {
const operators = ["=", "!=", "=~", "!~"];
return {
label: faker.faker.helpers.arrayElement(["service", "env", "team", "severity", "region", "instance"]),
type: faker.faker.helpers.arrayElement(operators),
value: faker.faker.helpers.arrayElement(["web", "api", "prod", "staging", "critical", "warning", "us-east", "us-west"])
};
});
const RouteFactory = fishery.Factory.define(() => ({
continue: faker.faker.datatype.boolean(),
receiver: faker.faker.helpers.arrayElement(["web-team", "api-team", "critical-alerts", "dev-team"]),
matchers: LabelMatcherFactory.buildList(faker.faker.number.int({ min: 1, max: 3 })),
group_by: faker.faker.helpers.arrayElements(["alertname", "service", "severity"], { min: 1, max: 2 }),
group_wait: faker.faker.helpers.arrayElement(["10s", "30s", "1m"]),
group_interval: faker.faker.helpers.arrayElement(["5m", "10m", "15m"]),
repeat_interval: faker.faker.helpers.arrayElement(["1h", "4h", "12h"]),
active_time_intervals: faker.faker.helpers.arrayElements(["business-hours", "weekends", "maintenance"], { min: 1, max: 2 }),
mute_time_intervals: faker.faker.helpers.arrayElements(["lunch-break", "night-hours"], { min: 1, max: 2 }),
routes: []
}));
const RoutingTreeFactory = fishery.Factory.define(({ sequence }) => {
const name = sequence === 1 ? consts.USER_DEFINED_TREE_NAME : `policy-tree-${sequence}`;
return {
kind: "RoutingTree",
apiVersion: `${v0alpha1.API_GROUP}/${v0alpha1.API_VERSION}`,
metadata: {
name,
namespace: util.DEFAULT_NAMESPACE,
resourceVersion: util.generateResourceVersion()
},
spec: {
defaults: {
receiver: faker.faker.helpers.arrayElement(["web-team", "api-team", "critical-alerts", "dev-team"]),
group_by: ["alertname"],
group_wait: "30s",
group_interval: "5m",
repeat_interval: "4h"
},
routes: []
}
};
});
const ListRoutingTreeApiResponseFactory = fishery.Factory.define(() => ({
kind: "RoutingTreeList",
apiVersion: `${v0alpha1.API_GROUP}/${v0alpha1.API_VERSION}`,
metadata: {
resourceVersion: util.generateResourceVersion()
},
items: RoutingTreeFactory.buildList(3)
}));
exports.LabelMatcherFactory = LabelMatcherFactory;
exports.ListRoutingTreeApiResponseFactory = ListRoutingTreeApiResponseFactory;
exports.RouteFactory = RouteFactory;
exports.RoutingTreeFactory = RoutingTreeFactory;
//# sourceMappingURL=Routes.cjs.map