Skip to content

Commit 870b7f3

Browse files
committed
views merging tests
1 parent d3f6eed commit 870b7f3

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed

plugins/views/tests.js

+35-4
Original file line numberDiff line numberDiff line change
@@ -592,9 +592,26 @@ describe('Testing views plugin', function() {
592592
verifyTotals("30days");
593593
});
594594

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+
595613
describe('Validating user merging', function() {
596614
it('getting Info about users', function(done) {
597-
598615
testUtils.db.collection("app_userviews" + APP_ID).aggregate([{$lookup: {from: "app_users" + APP_ID, localField: "_id", foreignField: "uid", as: "userinfo"}}], function(err, res) {
599616
for (var k = 0; k < res.length; k++) {
600617
if (res[k].userinfo && res[k].userinfo[0]) {
@@ -622,6 +639,9 @@ describe('Testing views plugin', function() {
622639
});
623640

624641
});
642+
it('making sure merge is finished', function(done) {
643+
check_if_merges_finished(0, done);
644+
});
625645

626646
it('validating result', function(done) {
627647
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() {
657677
});
658678

659679
});
680+
it('making sure merge is finished', function(done) {
681+
check_if_merges_finished(0, done);
682+
});
660683

661684
it('validating result', function(done) {
662685
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() {
693716
});
694717

695718
});
719+
it('making sure merge is finished', function(done) {
720+
check_if_merges_finished(0, done);
721+
});
696722

697723
it('validating result', function(done) {
698724
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() {
704730
}
705731
}
706732
if (Object.keys(userObject2).length === 0) {
707-
console.log('refetching');
733+
console.log('refetching...');
708734
//try refetching in few seconds
709735
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) {
711742
var userObject2 = {};
743+
console.log(JSON.stringify(res));
712744
for (var k = 0; k < res.length; k++) {
713745
if (res[k].userinfo && res[k].userinfo[0]) {
714746
userObject2[res[k].userinfo[0].did] = res[k];
@@ -720,7 +752,6 @@ describe('Testing views plugin', function() {
720752

721753
}
722754
else {
723-
console.log(JSON.stringify(res));
724755
console.log(JSON.stringify(userObject2));
725756
console.log(JSON.stringify(userObject));
726757
done("Invalid merging users ");

0 commit comments

Comments
 (0)