UNPKG

@grafana/alerting

Version:

Grafana Alerting Library – Build vertical integrations on top of the industry-leading alerting solution

68 lines (63 loc) 2.88 kB
'use strict'; 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'); "use strict"; 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