@@ -23,6 +23,35 @@ describe('AsyncSubject', function () {
23
23
expect ( results ) . toEqual ( [ 2 , 'done' ] ) ;
24
24
} ) ;
25
25
26
+ it ( 'should emit the last value to subsequent subscriptions after complete' , function ( ) {
27
+ var subject = new AsyncSubject ( ) ;
28
+ var results = [ ] ;
29
+
30
+ var observer = {
31
+ next : function ( x ) {
32
+ results . push ( x ) ;
33
+ } ,
34
+ error : null ,
35
+ complete : function ( ) {
36
+ results . push ( 'done' ) ;
37
+ }
38
+ } ;
39
+ var subscription = subject . subscribe ( observer ) ;
40
+
41
+ subject . next ( 1 ) ;
42
+ expect ( results ) . toEqual ( [ ] ) ;
43
+ subject . next ( 2 ) ;
44
+ expect ( results ) . toEqual ( [ ] ) ;
45
+ subject . complete ( ) ;
46
+ expect ( results ) . toEqual ( [ 2 , 'done' ] ) ;
47
+
48
+ subscription . unsubscribe ( ) ;
49
+
50
+ results = [ ] ;
51
+ subject . subscribe ( observer ) ;
52
+ expect ( results ) . toEqual ( [ 2 , 'done' ] ) ;
53
+ } ) ;
54
+
26
55
it ( 'should just complete if no value has been nexted into it' , function ( ) {
27
56
var subject = new AsyncSubject ( ) ;
28
57
var results = [ ] ;
@@ -38,6 +67,31 @@ describe('AsyncSubject', function () {
38
67
expect ( results ) . toEqual ( [ 'done' ] ) ;
39
68
} ) ;
40
69
70
+ it ( 'should just complete to any subscription if no value has been nexted into it' , function ( ) {
71
+ var subject = new AsyncSubject ( ) ;
72
+ var results = [ ] ;
73
+
74
+ var observer = {
75
+ next : function ( x ) {
76
+ results . push ( x ) ;
77
+ } ,
78
+ error : null ,
79
+ complete : function ( ) {
80
+ results . push ( 'done' ) ;
81
+ }
82
+ } ;
83
+ var subscription = subject . subscribe ( observer ) ;
84
+
85
+ expect ( results ) . toEqual ( [ ] ) ;
86
+ subject . complete ( ) ;
87
+ expect ( results ) . toEqual ( [ 'done' ] ) ;
88
+
89
+ subscription . unsubscribe ( ) ;
90
+ results = [ ] ;
91
+ subject . subscribe ( observer ) ;
92
+ expect ( results ) . toEqual ( [ 'done' ] ) ;
93
+ } ) ;
94
+
41
95
it ( 'should only error if an error is passed into it' , function ( ) {
42
96
var subject = new AsyncSubject ( ) ;
43
97
var results = [ ] ;
0 commit comments