11/* globals describe, it, expect, expectObservable, hot */
22var Rx = require ( '../../dist/cjs/Rx' ) ;
3+ var Observable = Rx . Observable ;
34
45describe ( 'Observable.prototype.buffer' , function ( ) {
6+ it ( 'should work with empty and empty selector' , function ( ) {
7+ var a = Observable . empty ( ) ;
8+ var b = Observable . empty ( ) ;
9+ var expected = '|' ;
10+ expectObservable ( a . buffer ( b ) ) . toBe ( expected ) ;
11+ } ) ;
12+ it ( 'should work with empty and non-empty selector' , function ( ) {
13+ var a = Observable . empty ( ) ;
14+ var b = hot ( '-----a-----' ) ;
15+ var expected = '|' ;
16+ expectObservable ( a . buffer ( b ) ) . toBe ( expected ) ;
17+ } ) ;
18+ it ( 'should work with non-empty and empty selector' , function ( ) {
19+ var a = hot ( '--1--2--^--3--4--5---6----7--8--9---0---|' ) ;
20+ var b = Observable . empty ( ) ;
21+ var expected = '|' ;
22+ expectObservable ( a . buffer ( b ) ) . toBe ( expected ) ;
23+ } ) ;
24+ it ( 'should work with never and never selector' , function ( ) {
25+ var a = Observable . never ( ) ;
26+ var b = Observable . never ( ) ;
27+ var expected = '-' ;
28+ expectObservable ( a . buffer ( b ) ) . toBe ( expected ) ;
29+ } ) ;
30+ it ( 'should work with never and empty selector' , function ( ) {
31+ var a = Observable . never ( ) ;
32+ var b = Observable . empty ( ) ;
33+ var expected = '|' ;
34+ expectObservable ( a . buffer ( b ) ) . toBe ( expected ) ;
35+ } ) ;
36+ it ( 'should work with empty and never selector' , function ( ) {
37+ var a = Observable . empty ( ) ;
38+ var b = Observable . never ( ) ;
39+ var expected = '|' ;
40+ expectObservable ( a . buffer ( b ) ) . toBe ( expected ) ;
41+ } ) ;
542 it ( 'should emit buffers that close and reopen' , function ( ) {
6- var e1 = hot ( '-a-b-c-d-e-f-g-h-i-|' ) ;
7- var expected = '-----x-----y-----z-|' ;
8- var interval = hot ( '-----1-----2-----3-|' ) ;
9-
10- expectObservable ( e1 . buffer ( interval ) ) . toBe ( expected , { x : [ 'a' , 'b' , 'c' ] , y : [ 'd' , 'e' , 'f' ] , z : [ 'g' , 'h' , 'i' ] } ) ;
43+ var a = hot ( '-a-b-c-d-e-f-g-h-i-|' ) ;
44+ var b = hot ( '-----1-----2-----3-|' ) ;
45+ var expected = '-----x-----y-----z-|' ;
46+ expectObservable ( a . buffer ( b ) ) . toBe ( expected , { x : [ 'a' , 'b' , 'c' ] , y : [ 'd' , 'e' , 'f' ] , z : [ 'g' , 'h' , 'i' ] } ) ;
47+ } ) ;
48+ it ( 'should work with non-empty and throw selector' , function ( ) {
49+ var a = hot ( '---^--a--' ) ;
50+ var b = Observable . throw ( new Error ( 'too bad' ) ) ;
51+ var expected = '#' ;
52+ expectObservable ( a . buffer ( b ) ) . toBe ( expected , null , new Error ( 'too bad' ) ) ;
53+ } ) ;
54+ it ( 'should work with throw and non-empty selector' , function ( ) {
55+ var a = Observable . throw ( new Error ( 'too bad' ) ) ;
56+ var b = hot ( '---^--a--' ) ;
57+ var expected = '#' ;
58+ expectObservable ( a . buffer ( b ) ) . toBe ( expected , null , new Error ( 'too bad' ) ) ;
59+ } ) ;
60+ it ( 'should work with error' , function ( ) {
61+ var a = hot ( '---^-------#' , null , new Error ( 'too bad' ) ) ;
62+ var b = hot ( '---^--------' )
63+ var expected = '--------#' ;
64+ expectObservable ( a . buffer ( b ) ) . toBe ( expected , null , new Error ( 'too bad' ) ) ;
65+ } ) ;
66+ it ( 'should work with error and non-empty selector' , function ( ) {
67+ var a = hot ( '---^-------#' , null , new Error ( 'too bad' ) ) ;
68+ var b = hot ( '---^---a----' )
69+ var expected = '----a---#' ;
70+ expectObservable ( a . buffer ( b ) ) . toBe ( expected , { a : [ ] } , new Error ( 'too bad' ) ) ;
71+ } ) ;
72+ it ( 'should work with selector' , function ( ) {
73+ // Buffer Boundaries Simple (RxJS 4)
74+ var a = hot ( '--1--2--^--3--4--5---6----7--8--9---0---|' ) ;
75+ var b = hot ( '--------^--a-------b---cd---------e---f---|' )
76+ var expected = '---a-------b---cd---------e---f-|' ;
77+ expectObservable ( a . buffer ( b ) ) . toBe ( expected ,
78+ { a : [ '3' ] , b : [ '4' , '5' ] , c : [ '6' ] , d : [ ] , e : [ '7' , '8' , '9' ] , f : [ '0' ] } ) ;
79+ } ) ;
80+ it ( 'should work with selector completed' , function ( ) {
81+ // Buffer Boundaries onCompletedBoundaries (RxJS 4)
82+ var a = hot ( '--1--2--^--3--4--5---6----7--8--9---0---|' ) ;
83+ var b = hot ( '--------^--a-------b---cd|' )
84+ var expected = '---a-------b---cd|' ;
85+ expectObservable ( a . buffer ( b ) ) . toBe ( expected ,
86+ { a : [ '3' ] , b : [ '4' , '5' ] , c : [ '6' ] , d : [ ] } ) ;
87+ } ) ;
88+ it ( 'should work with non-empty and selector error' , function ( ) {
89+ // Buffer Boundaries onErrorSource (RxJS 4)
90+ var a = hot ( '--1--2--^--3-----#' , { '3' : 3 } , new Error ( 'too bad' ) ) ;
91+ var b = hot ( '--------^--a--b---' )
92+ var expected = '---a--b--#' ;
93+ expectObservable ( a . buffer ( b ) ) . toBe ( expected ,
94+ { a : [ 3 ] , b : [ ] } , new Error ( 'too bad' ) ) ;
95+ } ) ;
96+ it ( 'should work with non-empty and empty selector error' , function ( ) {
97+ var obj = { a : true , b : true , c : true } ;
98+ var a = hot ( '--1--2--^--3--4--5---6----7--8--9---0---|' ) ;
99+ var b = hot ( '--------^----------------#' , null , new Error ( 'too bad' ) )
100+ var expected = '-----------------#' ;
101+ expectObservable ( a . buffer ( b ) ) . toBe ( expected , null , new Error ( 'too bad' ) ) ;
102+ } ) ;
103+ it ( 'should work with non-empty and selector error' , function ( ) {
104+ // Buffer Boundaries onErrorBoundaries (RxJS 4)
105+ var obj = { a : true , b : true , c : true } ;
106+ var a = hot ( '--1--2--^--3--4--5---6----7--8--9---0---|' ) ;
107+ var b = hot ( '--------^--a-------b---c-#' , obj , new Error ( 'too bad' ) )
108+ var expected = '---a-------b---c-#' ;
109+ expectObservable ( a . buffer ( b ) ) . toBe ( expected ,
110+ { a : [ '3' ] , b : [ '4' , '5' ] , c : [ '6' ] } , new Error ( 'too bad' ) ) ;
11111 } ) ;
12- } ) ;
112+ } ) ;
0 commit comments