1
- /* globals describe, it, expect */
1
+ /* globals describe, it, expect, hot, cold, rxTestScheduler, expectObservable */
2
2
var Rx = require ( '../../dist/cjs/Rx' ) ;
3
3
var Observable = Rx . Observable ;
4
4
5
- describe ( 'Observable.prototype.bufferTime' , function ( ) {
6
- it ( 'should emit buffers at intervals' , function ( done ) {
7
- var expected = [
8
- [ 0 , 1 , 2 ] ,
9
- [ 3 , 4 , 5 ] ,
10
- [ 6 , 7 , 8 ]
11
- ] ;
12
- Observable . interval ( 100 )
13
- . bufferTime ( 320 )
14
- . take ( 3 )
15
- . subscribe ( function ( w ) {
16
- expect ( w ) . toEqual ( expected . shift ( ) )
17
- } , null , done ) ;
18
- } , 2000 ) ;
5
+ describe ( 'Observable.prototype.bufferTime' , function ( ) {
6
+ it ( 'should emit buffers at intervals' , function ( ) {
7
+ var values = {
8
+ w : [ 'a' , 'b' ] ,
9
+ x : [ 'c' , 'd' , 'e' ] ,
10
+ y : [ 'f' , 'g' ] ,
11
+ z : [ ]
12
+ } ;
13
+ var e1 = hot ( '---a---b---c---d---e---f---g---|' ) ;
14
+ var expected = '----------w---------x---------y(z|)' ;
15
+
16
+ expectObservable ( e1 . bufferTime ( 100 , null , rxTestScheduler ) ) . toBe ( expected , values ) ;
17
+ } ) ;
19
18
19
+ it ( 'should emit buffers at intervals test 2' , function ( ) {
20
+ var e1 = hot ( '---------a---------b---------c---------d---------e---------g--------|' )
21
+ var expected = '--------------------------------x-------------------------------y---(z|)' ;
22
+
23
+ expectObservable ( e1 . bufferTime ( 320 , null , rxTestScheduler ) ) . toBe ( expected , { x : [ 'a' , 'b' , 'c' ] , y : [ 'd' , 'e' , 'g' ] , z : [ ] } ) ;
24
+ } ) ;
20
25
21
- it ( 'should emit buffers that have been created at intervals and close after the specified delay' , function ( done ) {
22
- var expected = [
23
- [ 0 , 1 , 2 , 3 , 4 ] ,
24
- [ 2 , 3 , 4 , 5 , 6 ] ,
25
- [ 4 , 5 , 6 , 7 , 8 ]
26
- ] ;
27
- Observable . interval ( 100 )
28
- . bufferTime ( 520 , 220 )
29
- . take ( 3 )
30
- . subscribe ( function ( w ) {
31
- expect ( w ) . toEqual ( expected . shift ( ) )
32
- } , null , done ) ;
33
- } , 2000 ) ;
26
+ it ( 'should emit buffers that have been created at intervals and close after the specified delay' , function ( ) {
27
+ var e1 = hot ( '---a---b---c----d----e----f----g----h----i----(k|)' ) ;
28
+ // --------------------*--------------------*---- start interval
29
+ // ---------------------| timespans
30
+ // ---------------------|
31
+ // -----|
32
+ var expected = '---------------------x-------------------y----(z|)' ;
33
+ var values = {
34
+ x : [ 'a' , 'b' , 'c' , 'd' , 'e' ] ,
35
+ y : [ 'e' , 'f' , 'g' , 'h' , 'i' ] ,
36
+ z : [ 'i' , 'k' ]
37
+ } ;
38
+ expectObservable ( e1 . bufferTime ( 210 , 200 , rxTestScheduler ) ) . toBe ( expected , values ) ;
39
+ } ) ;
40
+
41
+ it ( 'should handle empty' , function ( ) {
42
+ var e1 = Observable . empty ( ) ;
43
+ expectObservable ( e1 . bufferTime ( 100 , null , rxTestScheduler ) ) . toBe ( '(a|)' , { a : [ ] } ) ;
44
+ } ) ;
45
+
46
+ it ( 'should handle never' , function ( ) {
47
+ var e1 = Observable . never ( ) ;
48
+ var expected = '----------a---------a---------a---------a---------a---------a---------a-----' ; // 750 frame limit
49
+ expectObservable ( e1 . bufferTime ( 100 , null , rxTestScheduler ) ) . toBe ( expected , { a : [ ] } ) ;
50
+ } ) ;
51
+
52
+ it ( 'should handle throw' , function ( ) {
53
+ var e1 = Observable . throw ( new Error ( 'haha' ) ) ;
54
+ var expected = '#' ;
55
+ expectObservable ( e1 . bufferTime ( 100 , null , rxTestScheduler ) ) . toBe ( expected , undefined , new Error ( 'haha' ) ) ;
56
+ } ) ;
57
+
58
+ it ( 'should handle errors' , function ( ) {
59
+ var values = {
60
+ w : [ 'a' , 'b' ]
61
+ } ;
62
+ var e1 = hot ( '---a---b---c---#---e---f---g---|' ) ;
63
+ var expected = '----------w----#' ;
64
+
65
+ expectObservable ( e1 . bufferTime ( 100 , null , rxTestScheduler ) ) . toBe ( expected , values ) ;
66
+ } ) ;
67
+
68
+ it ( 'should emit buffers that have been created at intervals and close after the specified delay with errors' , function ( ) {
69
+ var e1 = hot ( '---a---b---c----d----e----f----g----h----i--#' ) ;
70
+ // --------------------*--------------------*---- start interval
71
+ // ---------------------| timespans
72
+ // ---------------------|
73
+ // -----|
74
+ var expected = '---------------------x-------------------y--#' ;
75
+ var values = {
76
+ x : [ 'a' , 'b' , 'c' , 'd' , 'e' ] ,
77
+ y : [ 'e' , 'f' , 'g' , 'h' , 'i' ]
78
+ } ;
79
+ expectObservable ( e1 . bufferTime ( 210 , 200 , rxTestScheduler ) ) . toBe ( expected , values ) ;
80
+ } ) ;
34
81
} ) ;
0 commit comments