rx-sandbox
Version:
Marble diagram DSL based test suite for RxJS 6/7
48 lines • 1.84 kB
TypeScript
import { ObservableNotification } from 'rxjs';
import { SubscriptionLog } from '../utils/coreInternalImport';
/**
* Expanded structured type of `ObservableNotification<T>` since we can't narrow down
* TestMessage<T> to specific notification types, instead provide wide support
*/
interface NotificationType<T> {
kind: 'N' | 'E' | 'C';
value?: T;
error?: any;
}
/**
* Represents interface for single metadata value emitted by HotObservable<T> or ColdObservable<T>
*
*/
interface TestMessage<T = string> {
frame: number;
notification: NotificationType<T>;
}
/**
* Represents single metadata value emitted by HotObservable<T> or ColdObservable<T>
*
*/
declare class TestMessageValue<T = string> implements TestMessage<T> {
readonly frame: number;
readonly notification: ObservableNotification<T>;
constructor(frame: number, notification: ObservableNotification<T>);
}
/**
* Utility function to generate TestMessage represents value for Observer::next()
* @param frame virtual frame time when value will be emitted
* @param value
*/
declare const next: <T = string>(frame: number, value: T) => TestMessage<T>;
/**
* Utility function to generate TestMessage represents error for Observer::error()
* @param frame virtual frame time when value will be emitted
* @param value
*/
declare const error: (frame: number, error?: any) => TestMessage<any>;
/**
* Utility function to generate TestMessage represents completion for Observer::complete()
* @param frame virtual frame time when value will be emitted
*/
declare const complete: <T = void>(frame: number) => TestMessage<T>;
declare const subscribe: (subscribedFrame?: number, unsubscribedFrame?: number) => SubscriptionLog;
export { TestMessage, TestMessageValue, next, error, complete, subscribe };
//# sourceMappingURL=TestMessage.d.ts.map