UNPKG

autotel

Version:
106 lines (105 loc) 2.88 kB
import { c as OutcomeStatus, n as EventAttributes, s as FunnelStatus } from "./event-subscriber-D1XLkPzi.js"; //#region src/metric-testing.d.ts interface MetricsEvent { event: string; attributes?: EventAttributes; service: string; timestamp: number; } interface MetricsFunnelStep { funnel: string; status: FunnelStatus; attributes?: EventAttributes; service: string; timestamp: number; } interface MetricsOutcome { operation: string; status: OutcomeStatus; attributes?: EventAttributes; service: string; timestamp: number; } interface MetricsValue { metric: string; value: number; attributes?: EventAttributes; service: string; timestamp: number; } /** * In-memory metrics collector for testing */ interface MetricsCollector { /** Get all collected events */ getEvents(): MetricsEvent[]; /** Get all collected funnel steps */ getFunnelSteps(): MetricsFunnelStep[]; /** Get all collected outcomes */ getOutcomes(): MetricsOutcome[]; /** Get all collected values */ getValues(): MetricsValue[]; /** Clear all collected metrics */ clear(): void; /** Record an event (internal use) */ recordEvent(event: MetricsEvent): void; /** Record a funnel step (internal use) */ recordFunnelStep(step: MetricsFunnelStep): void; /** Record an outcome (internal use) */ recordOutcome(outcome: MetricsOutcome): void; /** Record a value (internal use) */ recordValue(value: MetricsValue): void; } /** * Create an in-memory metrics collector for testing * * @example * ```typescript * const collector = createMetricsCollector() * * const metrics = new Metric('test-service', { collector }) * metrics.trackEvent('order.completed', { orderId: '123' }) * * const event =collector.getEvents() * expect(events).toHaveLength(1) * expect(events[0].event).toBe('order.completed') * ``` */ declare function createMetricsCollector(): MetricsCollector; /** * Assert that a metric event was tracked * * @example * ```typescript * assertEventTracked({ * collector, * eventName: 'order.completed', * attributes: { orderId: '123' } * }) * ``` */ declare function assertEventTracked(options: { collector: MetricsCollector; eventName: string; attributes?: Record<string, unknown>; }): void; /** * Assert that an outcome was tracked * * @example * ```typescript * assertOutcomeTracked({ * collector, * operation: 'payment.process', * status: 'success' * }) * ``` */ declare function assertOutcomeTracked(options: { collector: MetricsCollector; operation: string; status: 'success' | 'failure' | 'partial'; }): void; //#endregion export { MetricsValue as a, createMetricsCollector as c, MetricsOutcome as i, MetricsEvent as n, assertEventTracked as o, MetricsFunnelStep as r, assertOutcomeTracked as s, MetricsCollector as t }; //# sourceMappingURL=metric-testing-DXdK3-Q3.d.ts.map