mocha-multiple-sessions-detailed-runner
Version:
High-level API for multi-session Mocha tests with detailed reporting
35 lines (27 loc) • 1.29 kB
text/typescript
import type { RunnerEvent, RunnerEventType } from './runner-events';
import type { SessionEvent, SessionEventType } from './session-events';
export interface IUnifiedEventBus {
// Runner-level events
emitRunnerEvent(event: RunnerEvent): void;
onRunnerEvent(eventType: RunnerEventType, callback: (event: RunnerEvent) => void): () => void;
// Session-level events (integration with existing mocha-multiple-sessions)
emitSessionEvent(event: SessionEvent): void;
onSessionEvent(eventType: SessionEventType, callback: (event: SessionEvent) => void): () => void;
// Universal listener
onAnyEvent(callback: (event: RunnerEvent | SessionEvent) => void): () => void;
// Event filtering and querying
getEventHistory(filter?: EventFilter): (RunnerEvent | SessionEvent)[];
clearEventHistory(): void;
// Event utilities
hasListeners(eventType?: RunnerEventType | SessionEventType): boolean;
getListenerCount(eventType?: RunnerEventType | SessionEventType): number;
// Lifecycle
destroy(): void;
}
export interface EventFilter {
eventTypes?: (RunnerEventType | SessionEventType)[];
sessionLabel?: string;
timeRange?: { start: Date; end: Date };
maxEvents?: number;
severity?: 'info' | 'warning' | 'error';
}