@grafana/alerting
Version:
Grafana Alerting Library – Build vertical integrations on top of the industry-leading alerting solution
82 lines (77 loc) • 2.79 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 common = require('./common.cjs');
;
const ListReceiverApiResponseFactory = fishery.Factory.define(() => ({
kind: "ReceiverList",
apiVersion: `${v0alpha1.API_GROUP}/${v0alpha1.API_VERSION}`,
metadata: {
resourceVersion: util.generateResourceVersion()
},
items: ContactPointFactory.buildList(5)
}));
const ContactPointFactory = fishery.Factory.define(() => {
const title = util.generateTitle();
return {
kind: "Receiver",
apiVersion: `${v0alpha1.API_GROUP}/${v0alpha1.API_VERSION}`,
metadata: {
name: btoa(title),
namespace: util.DEFAULT_NAMESPACE,
uid: util.generateUID(),
resourceVersion: util.generateResourceVersion(),
annotations: ContactPointMetadataAnnotationsFactory.build()
},
spec: ContactPointSpecFactory.build({ title }),
status: {}
};
});
const ContactPointSpecFactory = fishery.Factory.define(() => ({
title: util.generateTitle(),
// use two unique random integrations by default
integrations: faker.faker.helpers.uniqueArray(IntegrationUnion, 2).map((integration) => integration.build())
}));
const GenericIntegrationFactory = fishery.Factory.define(() => ({
type: "generic",
version: "1",
disableResolveMessage: false,
settings: {
foo: "bar"
}
}));
const EmailIntegrationFactory = fishery.Factory.define(() => ({
type: "email",
version: "1",
secureFields: {},
settings: {
addresses: faker.faker.internet.email()
}
}));
const SlackIntegrationFactory = fishery.Factory.define(() => ({
type: "slack",
version: "1",
secureFields: { token: true },
settings: {
mentionChannel: "#alerts"
}
}));
const IntegrationUnion = [EmailIntegrationFactory, SlackIntegrationFactory];
const ContactPointMetadataAnnotationsFactory = fishery.Factory.define(() => ({
"grafana.com/access/canReadSecrets": "true",
"grafana.com/inUse/routes": "1",
"grafana.com/inUse/rules": "1",
"grafana.com/canUse": "true",
...common.AlertingEntityMetadataAnnotationsFactory.build()
}));
exports.ContactPointFactory = ContactPointFactory;
exports.ContactPointMetadataAnnotationsFactory = ContactPointMetadataAnnotationsFactory;
exports.ContactPointSpecFactory = ContactPointSpecFactory;
exports.EmailIntegrationFactory = EmailIntegrationFactory;
exports.GenericIntegrationFactory = GenericIntegrationFactory;
exports.ListReceiverApiResponseFactory = ListReceiverApiResponseFactory;
exports.SlackIntegrationFactory = SlackIntegrationFactory;
//# sourceMappingURL=Receivers.cjs.map