@@ -399,7 +399,7 @@ describe('AngularFirestoreCollection', () => {
399399 const ITEMS = 10 ;
400400 const { ref, stocks, names } = await collectionHarness ( afs , ITEMS ) ;
401401
402- const sub = stocks . stateChanges ( [ 'modified' ] ) . subscribe ( data => {
402+ const sub = stocks . stateChanges ( [ 'modified' ] ) . pipe ( skip ( 1 ) , take ( 1 ) ) . subscribe ( data => {
403403 sub . unsubscribe ( ) ;
404404 expect ( data . length ) . toEqual ( 1 ) ;
405405 expect ( data [ 0 ] . payload . doc . data ( ) . price ) . toEqual ( 2 ) ;
@@ -436,7 +436,7 @@ describe('AngularFirestoreCollection', () => {
436436 const ITEMS = 10 ;
437437 const { ref, stocks, names } = await collectionHarness ( afs , ITEMS ) ;
438438
439- const sub = stocks . stateChanges ( [ 'removed' ] ) . subscribe ( data => {
439+ const sub = stocks . stateChanges ( [ 'removed' ] ) . pipe ( skip ( 1 ) , take ( 1 ) ) . subscribe ( data => {
440440 sub . unsubscribe ( ) ;
441441 expect ( data . length ) . toEqual ( 1 ) ;
442442 expect ( data [ 0 ] . type ) . toEqual ( 'removed' ) ;
@@ -446,6 +446,21 @@ describe('AngularFirestoreCollection', () => {
446446
447447 delayDelete ( stocks , names [ 0 ] , 400 ) ;
448448 } ) ;
449+
450+ it ( 'stateChanges() should emit on empty collection' , async ( done ) => {
451+ afs . collection ( 'EMPTY_COLLECTION' ) . stateChanges ( ) . pipe ( take ( 1 ) ) . subscribe ( data => {
452+ expect ( data . length ) . toEqual ( 0 ) ;
453+ done ( ) ;
454+ } ) ;
455+ } ) ;
456+
457+ it ( 'stateChanges() w/filter should emit on empty collection' , async ( done ) => {
458+ afs . collection ( 'EMPTY_COLLECTION' ) . stateChanges ( [ 'added' ] ) . pipe ( take ( 1 ) ) . subscribe ( data => {
459+ expect ( data . length ) . toEqual ( 0 ) ;
460+ done ( ) ;
461+ } ) ;
462+ } ) ;
463+
449464 } ) ;
450465
451466 describe ( 'auditTrail()' , ( ) => {
@@ -471,7 +486,7 @@ describe('AngularFirestoreCollection', () => {
471486 const ITEMS = 10 ;
472487 const { ref, stocks, names } = await collectionHarness ( afs , ITEMS ) ;
473488
474- const sub = stocks . auditTrail ( [ 'removed' ] ) . subscribe ( data => {
489+ const sub = stocks . auditTrail ( [ 'removed' ] ) . pipe ( skip ( 1 ) , take ( 1 ) ) . subscribe ( data => {
475490 sub . unsubscribe ( ) ;
476491 expect ( data . length ) . toEqual ( 1 ) ;
477492 expect ( data [ 0 ] . type ) . toEqual ( 'removed' ) ;
0 commit comments