Port groups /leave tests to new integration tests.

This commit is contained in:
Blade Barringer
2015-10-22 12:28:26 -05:00
parent c3aa70ecc3
commit d28450d52a
3 changed files with 234 additions and 128 deletions

View File

@@ -1,6 +1,8 @@
import {
assign,
each,
isEmpty,
times,
} from 'lodash';
import {MongoClient as mongo} from 'mongodb';
import {v4 as generateUUID} from 'uuid';
@@ -50,6 +52,69 @@ export function generateGroup(leader, update={}) {
});
};
export function createAndPopulateGroup(settings={}) {
let request, leader, members, invitees, group;
let numberOfMembers = settings.members || 0;
let numberOfInvites = settings.invites || 0;
let groupDetails = settings.groupDetails;
let leaderDetails = settings.leaderDetails || { balance: 10 };
let leaderPromise = generateUser(leaderDetails);
let memberPromises = Promise.all(
times(numberOfMembers, () => {
return generateUser();
})
);
let invitePromises = Promise.all(
times(numberOfInvites, () => {
return generateUser();
})
);
return new Promise((resolve, reject) => {
return leaderPromise.then((user) => {
leader = user;
request = _requestMaker(leader, 'post');
return memberPromises;
}).then((users) => {
members = users;
groupDetails.members = groupDetails.members || [];
each(members, (member) => {
groupDetails.members.push(member._id);
});
return generateGroup(leader, groupDetails);
}).then((createdGroup) => {
group = createdGroup;
return invitePromises;
}).then((users) => {
invitees = users;
let invitePromises = [];
each(invitees, (invitee) => {
let invitePromise = request(`/groups/${group._id}/invite`, {
uuids: [invitee._id]
});
invitePromises.push(invitePromise);
});
return Promise.all(invitePromises);
}).then((inviteResults) => {
resolve({
leader: leader,
group: group,
members: members,
invitees: invitees,
});
}).catch(reject);
});
};
export function resetHabiticaDB() {
return new Promise((resolve, reject) => {
mongo.connect('mongodb://localhost/habitrpg_test', (err, db) => {