@@ -592,9 +592,26 @@ describe('Testing views plugin', function() {
592
592
verifyTotals ( "30days" ) ;
593
593
} ) ;
594
594
595
+ var check_if_merges_finished = function ( tries , done ) {
596
+ if ( tries == 5 ) {
597
+ done ( ) ;
598
+ }
599
+ else {
600
+ testUtils . db . collection ( "app_user_merges" ) . findOne ( { "_id" : { "$regex" : "^" + APP_ID } } , function ( err , res ) {
601
+ if ( res ) {
602
+ setTimeout ( function ( ) {
603
+ check_if_merges_finished ( tries + 1 , done ) ;
604
+ } , 10000 ) ;
605
+ }
606
+ else {
607
+ done ( ) ;
608
+ }
609
+ } ) ;
610
+ }
611
+ } ;
612
+
595
613
describe ( 'Validating user merging' , function ( ) {
596
614
it ( 'getting Info about users' , function ( done ) {
597
-
598
615
testUtils . db . collection ( "app_userviews" + APP_ID ) . aggregate ( [ { $lookup : { from : "app_users" + APP_ID , localField : "_id" , foreignField : "uid" , as : "userinfo" } } ] , function ( err , res ) {
599
616
for ( var k = 0 ; k < res . length ; k ++ ) {
600
617
if ( res [ k ] . userinfo && res [ k ] . userinfo [ 0 ] ) {
@@ -622,6 +639,9 @@ describe('Testing views plugin', function() {
622
639
} ) ;
623
640
624
641
} ) ;
642
+ it ( 'making sure merge is finished' , function ( done ) {
643
+ check_if_merges_finished ( 0 , done ) ;
644
+ } ) ;
625
645
626
646
it ( 'validating result' , function ( done ) {
627
647
testUtils . db . collection ( "app_userviews" + APP_ID ) . aggregate ( [ { $lookup : { from : "app_users" + APP_ID , localField : "_id" , foreignField : "uid" , as : "userinfo" } } ] , function ( err , res ) {
@@ -657,6 +677,9 @@ describe('Testing views plugin', function() {
657
677
} ) ;
658
678
659
679
} ) ;
680
+ it ( 'making sure merge is finished' , function ( done ) {
681
+ check_if_merges_finished ( 0 , done ) ;
682
+ } ) ;
660
683
661
684
it ( 'validating result' , function ( done ) {
662
685
testUtils . db . collection ( "app_userviews" + APP_ID ) . aggregate ( [ { $lookup : { from : "app_users" + APP_ID , localField : "_id" , foreignField : "uid" , as : "userinfo" } } ] , function ( err , res ) {
@@ -693,6 +716,9 @@ describe('Testing views plugin', function() {
693
716
} ) ;
694
717
695
718
} ) ;
719
+ it ( 'making sure merge is finished' , function ( done ) {
720
+ check_if_merges_finished ( 0 , done ) ;
721
+ } ) ;
696
722
697
723
it ( 'validating result' , function ( done ) {
698
724
testUtils . db . collection ( "app_userviews" + APP_ID ) . aggregate ( [ { $lookup : { from : "app_users" + APP_ID , localField : "_id" , foreignField : "uid" , as : "userinfo" } } ] , function ( err , res ) {
@@ -704,11 +730,17 @@ describe('Testing views plugin', function() {
704
730
}
705
731
}
706
732
if ( Object . keys ( userObject2 ) . length === 0 ) {
707
- console . log ( 'refetching' ) ;
733
+ console . log ( 'refetching... ' ) ;
708
734
//try refetching in few seconds
709
735
setTimeout ( function ( ) {
710
- testUtils . db . collection ( "app_userviews" + APP_ID ) . aggregate ( [ { $lookup : { from : "app_users" + APP_ID , localField : "_id" , foreignField : "uid" , as : "userinfo" } } ] , function ( err , res ) {
736
+ testUtils . db . collection ( "app_userviews" + APP_ID ) . aggregate ( [
737
+ { $replaceRoot : { newRoot : { _id : "$_id" , "data" : "$$ROOT" } } } ,
738
+ { "$unionWith" : { "coll" : "app_userviews" + APP_ID , "pipeline" : [ { "$project" : { "_id" : "$uid" , "userinfo" : "$$ROOT" } } ] } } ,
739
+ { "$group" : { "_id" : "$_id" , "userinfo" : { "$addToSet" : "$userinfo" } , "data" : { "$addToSet" : "$data" } } } ,
740
+ { "$project" : { "_id" : 1 , "userinfo" : { "$first" : "$userinfo" } , "data" : { "$first" : "$data" } } }
741
+ ] , function ( err , res ) {
711
742
var userObject2 = { } ;
743
+ console . log ( JSON . stringify ( res ) ) ;
712
744
for ( var k = 0 ; k < res . length ; k ++ ) {
713
745
if ( res [ k ] . userinfo && res [ k ] . userinfo [ 0 ] ) {
714
746
userObject2 [ res [ k ] . userinfo [ 0 ] . did ] = res [ k ] ;
@@ -720,7 +752,6 @@ describe('Testing views plugin', function() {
720
752
721
753
}
722
754
else {
723
- console . log ( JSON . stringify ( res ) ) ;
724
755
console . log ( JSON . stringify ( userObject2 ) ) ;
725
756
console . log ( JSON . stringify ( userObject ) ) ;
726
757
done ( "Invalid merging users " ) ;
0 commit comments