/** * Test Utilities for Transport Testing * * This module provides common test utilities, mock implementations, * and test data generators for transport testing scenarios. */ import { Effect, Stream, Chunk, Scope } from 'effect'; import type { TransportMessage, ConnectedTransportTestInterface, ConnectionState } from './test-layer-interfaces'; /** * Generates unique message IDs for testing */ export declare const generateMessageId: () => string; /** * Make a test transport message */ export declare const makeTestTransportMessage: (type: string, payload: TPayload, options?: { id?: string; metadata?: Record; }) => TransportMessage; /** * Mock transport state for testing */ export interface MockTransportState { readonly messages: readonly TransportMessage[]; readonly subscriptions: readonly ((message: TransportMessage) => void)[]; readonly isConnected: boolean; readonly connectionStateSubscribers: readonly ((state: ConnectionState) => void)[]; } /** * Creates a mock transport for testing */ export declare const makeMockTransport: () => Effect.Effect; /** * Waits for a condition to become true within a timeout period */ export declare const waitForCondition: (condition: () => Effect.Effect, timeoutMs?: number, pollIntervalMs?: number) => Effect.Effect; /** * Expects an effect to fail with a specific error type */ export declare const expectError: (effect: Effect.Effect, errorPredicate: (error: E) => boolean) => Effect.Effect; /** * Collects all values from a stream within a timeout period */ export declare const collectStreamWithTimeout: (stream: Stream.Stream, timeoutMs?: number) => Effect.Effect, E | "timeout", never>; /** * Default implementation of waitForConnectionState for testing * Waits for a specific connection state to be emitted */ export declare const waitForConnectionState: (connectionStateStream: Stream.Stream, expectedState: ConnectionState, timeoutMs?: number) => Effect.Effect; /** * Default implementation of collectMessages for testing * Collects a specific number of messages from a stream */ export declare const collectMessages: (stream: Stream.Stream, count: number, timeoutMs?: number) => Effect.Effect; /** * Default implementation of makeTestMessage for testing * Creates a test message with unique ID */ export declare const makeTestMessage: (type: string, payload: unknown) => TransportMessage; //# sourceMappingURL=test-utilities.d.ts.map