diff --git a/spec/subject-spec.js b/spec/subject-spec.js index 61bcc58383..de6adbf86b 100644 --- a/spec/subject-spec.js +++ b/spec/subject-spec.js @@ -471,4 +471,20 @@ describe('Subject', function () { expect(output).toEqual([1,2,3,4,5]); expect(outputComplete).toBe(true); }); + + it('should be an Observer which can be given to Observable.subscribe', function (done) { + var source = Observable.of(1, 2, 3, 4, 5); + var subject = new Subject(); + var expected = [1, 2, 3, 4, 5]; + + subject.subscribe( + function (x) { + expect(x).toBe(expected.shift()); + }, + done.fail, + done + ); + + source.subscribe(subject); + }); }); \ No newline at end of file diff --git a/spec/subjects/behavior-subject-spec.js b/spec/subjects/behavior-subject-spec.js index a9b71c67eb..4ba9da772f 100644 --- a/spec/subjects/behavior-subject-spec.js +++ b/spec/subjects/behavior-subject-spec.js @@ -3,6 +3,7 @@ var Rx = require('../../dist/cjs/Rx'); var BehaviorSubject = Rx.BehaviorSubject; var nextTick = Rx.Scheduler.nextTick; +var Observable = Rx.Observable; describe('BehaviorSubject', function () { it('should extend Subject', function (done) { @@ -115,4 +116,20 @@ describe('BehaviorSubject', function () { )).toBe(sourceTemplate); expectObservable(subscriber1).toBe(expected1); }); + + it('should be an Observer which can be given to Observable.subscribe', function (done) { + var source = Observable.of(1, 2, 3, 4, 5); + var subject = new BehaviorSubject(0); + var expected = [0, 1, 2, 3, 4, 5]; + + subject.subscribe( + function (x) { + expect(x).toBe(expected.shift()); + }, + done.fail, + done + ); + + source.subscribe(subject); + }); }); \ No newline at end of file diff --git a/spec/subjects/replay-subject-spec.js b/spec/subjects/replay-subject-spec.js index 8e1ac28ee4..b82e793eb9 100644 --- a/spec/subjects/replay-subject-spec.js +++ b/spec/subjects/replay-subject-spec.js @@ -3,6 +3,7 @@ var Rx = require('../../dist/cjs/Rx'); var ReplaySubject = Rx.ReplaySubject; var nextTick = Rx.Scheduler.nextTick; +var Observable = Rx.Observable; describe('ReplaySubject', function () { it('should extend Subject', function (done) { @@ -206,4 +207,20 @@ describe('ReplaySubject', function () { expectObservable(subscriber1).toBe(expected1); }); }); + + it('should be an Observer which can be given to Observable.subscribe', function (done) { + var source = Observable.of(1, 2, 3, 4, 5); + var subject = new ReplaySubject(3); + var expected = [3, 4, 5]; + + source.subscribe(subject); + + subject.subscribe( + function (x) { + expect(x).toBe(expected.shift()); + }, + done.fail, + done + ); + }); }); \ No newline at end of file