UNPKG

@grafana/alerting

Version:

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

72 lines (69 loc) 2.38 kB
import { faker } from '@faker-js/faker'; import { Factory } from 'fishery'; import { generateResourceVersion, generateTitle, generateUID, DEFAULT_NAMESPACE } from '../../../../../mocks/util.mjs'; import { GROUP, VERSION } from '../../const.mjs'; import { AlertingEntityMetadataAnnotationsFactory } from './common.mjs'; "use strict"; const ListReceiverApiResponseFactory = Factory.define(() => ({ kind: "ReceiverList", apiVersion: `${GROUP}/${VERSION}`, metadata: { resourceVersion: generateResourceVersion() }, items: ContactPointFactory.buildList(5) })); const ContactPointFactory = Factory.define(() => { const title = generateTitle(); return { kind: "Receiver", apiVersion: `${GROUP}/${VERSION}`, metadata: { name: btoa(title), namespace: DEFAULT_NAMESPACE, uid: generateUID(), resourceVersion: generateResourceVersion(), annotations: ContactPointMetadataAnnotationsFactory.build() }, spec: ContactPointSpecFactory.build({ title }), status: {} }; }); const ContactPointSpecFactory = Factory.define(() => ({ title: generateTitle(), // use two unique random integrations by default integrations: faker.helpers.uniqueArray(IntegrationUnion, 2).map((integration) => integration.build()) })); const GenericIntegrationFactory = Factory.define(() => ({ type: "generic", version: "1", disableResolveMessage: false, settings: { foo: "bar" } })); const EmailIntegrationFactory = Factory.define(() => ({ type: "email", version: "1", secureFields: {}, settings: { addresses: faker.internet.email() } })); const SlackIntegrationFactory = Factory.define(() => ({ type: "slack", version: "1", secureFields: { token: true }, settings: { mentionChannel: "#alerts" } })); const IntegrationUnion = [EmailIntegrationFactory, SlackIntegrationFactory]; const ContactPointMetadataAnnotationsFactory = Factory.define(() => ({ "grafana.com/access/canReadSecrets": "true", "grafana.com/inUse/routes": "1", "grafana.com/inUse/rules": "1", "grafana.com/canUse": "true", ...AlertingEntityMetadataAnnotationsFactory.build() })); export { ContactPointFactory, ContactPointMetadataAnnotationsFactory, ContactPointSpecFactory, EmailIntegrationFactory, GenericIntegrationFactory, ListReceiverApiResponseFactory, SlackIntegrationFactory }; //# sourceMappingURL=Receivers.mjs.map