Skip to content

Commit 59b6e36

Browse files
committed
feat(TestMessageValue): implement TestMessageValue
1 parent 1fd4f8b commit 59b6e36

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

src/TestMessageValue.ts

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import * as Rx from 'rxjs';
2+
import { TestMessage } from 'rxjs/testing/TestMessage';
3+
import { SubscriptionLog } from 'rxjs/testing/SubscriptionLog';
4+
5+
/**
6+
* Represents single metadata value emitted by HotObservable<T> or ColdObservable<T>
7+
*
8+
*/
9+
export class TestMessageValue<T = string> implements TestMessage {
10+
11+
constructor(public readonly frame: number,
12+
public readonly notification: Rx.Notification<T>) { }
13+
}
14+
15+
/**
16+
* Utility function to generate TestMessage represents value for Observer::next()
17+
* @param frame virtual frame time when value will be emitted
18+
* @param value
19+
*/
20+
export function next<T = string>(frame: number, value: T): TestMessage {
21+
return new TestMessageValue(frame, Rx.Notification.createNext(value));
22+
}
23+
24+
/**
25+
* Utility function to generate TestMessage represents error for Observer::error()
26+
* @param frame virtual frame time when value will be emitted
27+
* @param value
28+
*/
29+
export function error(frame: number, error: any): TestMessage {
30+
return new TestMessageValue<any>(frame, Rx.Notification.createError(error));
31+
}
32+
33+
/**
34+
* Utility function to generate TestMessage represents completion for Observer::complete()
35+
* @param frame virtual frame time when value will be emitted
36+
*/
37+
export function complete(frame: number): TestMessage {
38+
return new TestMessageValue<void>(frame, Rx.Notification.createComplete());
39+
}
40+
41+
export function subscribe(subscribedFrame: number,
42+
unsubscribedFrame: number = Number.POSITIVE_INFINITY) {
43+
return new SubscriptionLog(subscribedFrame, unsubscribedFrame);
44+
}

0 commit comments

Comments
 (0)