1
1
/* globals describe, it, expect, expectObservable, hot */
2
2
var Rx = require ( '../../dist/cjs/Rx' ) ;
3
+ var Observable = Rx . Observable ;
3
4
4
5
describe ( '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
+ } ) ;
5
42
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' ) ) ;
11
111
} ) ;
12
- } ) ;
112
+ } ) ;
0 commit comments