@@ -466,9 +466,16 @@ describe('MockFirestoreDocument', function () {
466466
467467 describe ( '#onSnapshot' , function ( ) {
468468 it ( 'returns value after document is updated' , function ( done ) {
469+ // onSnapshot calls immediately with the current state;
470+ // we only care about the updated..
471+ var first = true ;
469472 doc . onSnapshot ( function ( snap ) {
470- expect ( snap . get ( 'newTitle' ) ) . to . equal ( 'A new title' ) ;
471- done ( ) ;
473+ if ( ! first ) {
474+ expect ( snap . get ( 'newTitle' ) ) . to . equal ( 'A new title' ) ;
475+ done ( ) ;
476+ }
477+
478+ first = false ;
472479 } ) ;
473480 doc . update ( { newTitle : 'A new title' } , { setMerge : true } ) ;
474481 db . flush ( ) ;
@@ -483,8 +490,6 @@ describe('MockFirestoreDocument', function () {
483490 expect ( err ) . to . equal ( error ) ;
484491 done ( ) ;
485492 } ) ;
486- doc . update ( { name : 'A' } , { setMerge : true } ) ;
487- doc . flush ( ) ;
488493 } ) ;
489494
490495 it ( 'does not returns value when not updated' , function ( done ) {
@@ -494,10 +499,10 @@ describe('MockFirestoreDocument', function () {
494499 } ) ;
495500 doc . update ( { newTitle : 'A new title' } , { setMerge : true } ) ;
496501 doc . flush ( ) ;
497- expect ( callCount ) . to . equal ( 1 ) ;
502+ expect ( callCount ) . to . equal ( 2 ) ;
498503 doc . get ( ) ;
499504 doc . flush ( ) ;
500- expect ( callCount ) . to . equal ( 1 ) ;
505+ expect ( callCount ) . to . equal ( 2 ) ;
501506 done ( ) ;
502507 } ) ;
503508
@@ -508,21 +513,19 @@ describe('MockFirestoreDocument', function () {
508513 } ) ;
509514 doc . update ( { newTitle : 'A new title' } , { setMerge : true } ) ;
510515 doc . flush ( ) ;
511- expect ( callCount ) . to . equal ( 1 ) ;
516+ expect ( callCount ) . to . equal ( 2 ) ;
512517 doc . update ( { newTitle : 'A newer title' } , { setMerge : true } ) ;
513518 unsubscribe ( ) ;
514519 doc . flush ( ) ;
515- expect ( callCount ) . to . equal ( 1 ) ;
520+ expect ( callCount ) . to . equal ( 2 ) ;
516521 done ( ) ;
517522 } ) ;
518523
519524 it ( 'accepts option includeMetadataChanges' , function ( done ) {
520525 doc . onSnapshot ( { includeMetadataChanges : true } , function ( snap ) {
521- expect ( snap . get ( 'newTitle ' ) ) . to . equal ( 'A new title' ) ;
526+ expect ( snap . get ( 'title ' ) ) . to . equal ( 'title' ) ;
522527 done ( ) ;
523528 } ) ;
524- doc . update ( { newTitle : 'A new title' } , { setMerge : true } ) ;
525- doc . flush ( ) ;
526529 } ) ;
527530 } ) ;
528531} ) ;
0 commit comments