fix(tests): create test teams properly, adjust expectations

This commit is contained in:
SabreCat
2022-06-09 15:06:51 -05:00
parent 0b1907fe07
commit 85c7c7ea57
19 changed files with 71 additions and 53 deletions

View File

@@ -7,7 +7,7 @@ import {
describe('POST /group/:groupId/remove-manager', () => { describe('POST /group/:groupId/remove-manager', () => {
let leader; let nonLeader; let let leader; let nonLeader; let
groupToUpdate; groupToUpdate;
const groupName = 'Test Public Guild'; const groupName = 'Test Private Guild';
const groupType = 'guild'; const groupType = 'guild';
let nonManager; let nonManager;
@@ -20,9 +20,10 @@ describe('POST /group/:groupId/remove-manager', () => {
groupDetails: { groupDetails: {
name: groupName, name: groupName,
type: groupType, type: groupType,
privacy: 'public', privacy: 'private',
}, },
members: 2, members: 2,
upgradeToGroupPlan: true,
}); });
groupToUpdate = group; groupToUpdate = group;
@@ -83,7 +84,7 @@ describe('POST /group/:groupId/remove-manager', () => {
await nonLeader.sync(); await nonLeader.sync();
expect(nonLeader.notifications.length).to.equal(0); expect(nonLeader.notifications.length).to.equal(1); // user gets mystery items
expect(updatedGroup.managers[nonLeader._id]).to.not.exist; expect(updatedGroup.managers[nonLeader._id]).to.not.exist;
}); });
}); });

View File

@@ -134,6 +134,7 @@ describe('GET /tasks/:id', () => {
type: 'guild', type: 'guild',
}, },
members: 1, members: 1,
upgradeToGroupPlan: true,
}); });
group = groupData.group; group = groupData.group;

View File

@@ -7,7 +7,11 @@ import {
describe('POST /tasks/clearCompletedTodos', () => { describe('POST /tasks/clearCompletedTodos', () => {
it('deletes all completed todos except the ones from a challenge and group', async () => { it('deletes all completed todos except the ones from a challenge and group', async () => {
const user = await generateUser({ balance: 1 }); const user = await generateUser({ balance: 1 });
const guild = await generateGroup(user); const guild = await generateGroup(
user,
{},
{ 'purchased.plan.customerId': 'group-unlimited' },
);
const challenge = await generateChallenge(user, guild); const challenge = await generateChallenge(user, guild);
await user.post(`/challenges/${challenge._id}/join`); await user.post(`/challenges/${challenge._id}/join`);

View File

@@ -19,6 +19,7 @@ describe('Groups DELETE /tasks/:id', () => {
type: 'guild', type: 'guild',
}, },
members: 2, members: 2,
upgradeToGroupPlan: true,
}); });
guild = group; guild = group;
@@ -77,18 +78,18 @@ describe('Groups DELETE /tasks/:id', () => {
await user.sync(); await user.sync();
await member2.sync(); await member2.sync();
expect(user.notifications.length).to.equal(2); expect(user.notifications.length).to.equal(3); // mystery items
expect(user.notifications[1].type).to.equal('GROUP_TASK_APPROVAL'); expect(user.notifications[2].type).to.equal('GROUP_TASK_APPROVAL');
expect(member2.notifications.length).to.equal(2); expect(member2.notifications.length).to.equal(3);
expect(member2.notifications[1].type).to.equal('GROUP_TASK_APPROVAL'); expect(member2.notifications[2].type).to.equal('GROUP_TASK_APPROVAL');
await member2.del(`/tasks/${task._id}`); await member2.del(`/tasks/${task._id}`);
await user.sync(); await user.sync();
await member2.sync(); await member2.sync();
expect(user.notifications.length).to.equal(1); expect(user.notifications.length).to.equal(2);
expect(member2.notifications.length).to.equal(1); expect(member2.notifications.length).to.equal(2);
}); });
it('deletes task from assigned user', async () => { it('deletes task from assigned user', async () => {

View File

@@ -18,6 +18,7 @@ describe('GET /approvals/group/:groupId', () => {
type: 'guild', type: 'guild',
}, },
members: 2, members: 2,
upgradeToGroupPlan: true,
}); });
guild = group; guild = group;

View File

@@ -36,7 +36,7 @@ describe('GET /tasks/group/:groupId', () => {
before(async () => { before(async () => {
user = await generateUser(); user = await generateUser();
group = await generateGroup(user); group = await generateGroup(user, {}, { 'purchased.plan.customerId': 'group-unlimited' });
}); });
it('returns error when group is not found', async () => { it('returns error when group is not found', async () => {

View File

@@ -19,6 +19,7 @@ describe('POST /tasks/:id/approve/:userId', () => {
type: 'guild', type: 'guild',
}, },
members: 2, members: 2,
upgradeToGroupPlan: true,
}); });
guild = group; guild = group;
@@ -63,9 +64,9 @@ describe('POST /tasks/:id/approve/:userId', () => {
await member.sync(); await member.sync();
expect(member.notifications.length).to.equal(2); expect(member.notifications.length).to.equal(3);
expect(member.notifications[1].type).to.equal('GROUP_TASK_APPROVED'); expect(member.notifications[2].type).to.equal('GROUP_TASK_APPROVED');
expect(member.notifications[1].data.message).to.equal(t('yourTaskHasBeenApproved', { taskText: task.text })); expect(member.notifications[2].data.message).to.equal(t('yourTaskHasBeenApproved', { taskText: task.text }));
memberTasks = await member.get('/tasks/user'); memberTasks = await member.get('/tasks/user');
syncedTask = find(memberTasks, findAssignedTask); syncedTask = find(memberTasks, findAssignedTask);
@@ -89,9 +90,9 @@ describe('POST /tasks/:id/approve/:userId', () => {
await member2.post(`/tasks/${task._id}/approve/${member._id}`); await member2.post(`/tasks/${task._id}/approve/${member._id}`);
await member.sync(); await member.sync();
expect(member.notifications.length).to.equal(2); expect(member.notifications.length).to.equal(3);
expect(member.notifications[1].type).to.equal('GROUP_TASK_APPROVED'); expect(member.notifications[2].type).to.equal('GROUP_TASK_APPROVED');
expect(member.notifications[1].data.message).to.equal(t('yourTaskHasBeenApproved', { taskText: task.text })); expect(member.notifications[2].data.message).to.equal(t('yourTaskHasBeenApproved', { taskText: task.text }));
memberTasks = await member.get('/tasks/user'); memberTasks = await member.get('/tasks/user');
syncedTask = find(memberTasks, findAssignedTask); syncedTask = find(memberTasks, findAssignedTask);
@@ -113,18 +114,18 @@ describe('POST /tasks/:id/approve/:userId', () => {
await user.sync(); await user.sync();
await member2.sync(); await member2.sync();
expect(user.notifications.length).to.equal(2); expect(user.notifications.length).to.equal(3);
expect(user.notifications[1].type).to.equal('GROUP_TASK_APPROVAL'); expect(user.notifications[2].type).to.equal('GROUP_TASK_APPROVAL');
expect(member2.notifications.length).to.equal(1); expect(member2.notifications.length).to.equal(2);
expect(member2.notifications[0].type).to.equal('GROUP_TASK_APPROVAL'); expect(member2.notifications[1].type).to.equal('GROUP_TASK_APPROVAL');
await member2.post(`/tasks/${task._id}/approve/${member._id}`); await member2.post(`/tasks/${task._id}/approve/${member._id}`);
await user.sync(); await user.sync();
await member2.sync(); await member2.sync();
expect(user.notifications.length).to.equal(1); expect(user.notifications.length).to.equal(2);
expect(member2.notifications.length).to.equal(0); expect(member2.notifications.length).to.equal(1);
}); });
it('prevents double approval on a task', async () => { it('prevents double approval on a task', async () => {

View File

@@ -19,6 +19,7 @@ describe('POST /tasks/:id/needs-work/:userId', () => {
type: 'guild', type: 'guild',
}, },
members: 2, members: 2,
upgradeToGroupPlan: true,
}); });
guild = group; guild = group;
@@ -72,7 +73,7 @@ describe('POST /tasks/:id/needs-work/:userId', () => {
expect(syncedTask.group.approval.requestedDate).to.equal(undefined); expect(syncedTask.group.approval.requestedDate).to.equal(undefined);
// Check that the notification is correct // Check that the notification is correct
expect(member.notifications.length).to.equal(initialNotifications + 2); expect(member.notifications.length).to.equal(initialNotifications + 3);
const notification = member.notifications[member.notifications.length - 1]; const notification = member.notifications[member.notifications.length - 1];
expect(notification.type).to.equal('GROUP_TASK_NEEDS_WORK'); expect(notification.type).to.equal('GROUP_TASK_NEEDS_WORK');
@@ -121,7 +122,7 @@ describe('POST /tasks/:id/needs-work/:userId', () => {
expect(syncedTask.group.approval.requested).to.equal(false); expect(syncedTask.group.approval.requested).to.equal(false);
expect(syncedTask.group.approval.requestedDate).to.equal(undefined); expect(syncedTask.group.approval.requestedDate).to.equal(undefined);
expect(member.notifications.length).to.equal(initialNotifications + 2); expect(member.notifications.length).to.equal(initialNotifications + 3);
const notification = member.notifications[member.notifications.length - 1]; const notification = member.notifications[member.notifications.length - 1];
expect(notification.type).to.equal('GROUP_TASK_NEEDS_WORK'); expect(notification.type).to.equal('GROUP_TASK_NEEDS_WORK');

View File

@@ -19,6 +19,7 @@ describe('POST /tasks/:id/score/:direction', () => {
type: 'guild', type: 'guild',
}, },
members: 2, members: 2,
upgradeToGroupPlan: true,
}); });
guild = group; guild = group;
@@ -53,15 +54,15 @@ describe('POST /tasks/:id/score/:direction', () => {
await user.sync(); await user.sync();
expect(user.notifications.length).to.equal(2); expect(user.notifications.length).to.equal(3);
expect(user.notifications[1].type).to.equal('GROUP_TASK_APPROVAL'); expect(user.notifications[2].type).to.equal('GROUP_TASK_APPROVAL');
expect(user.notifications[1].data.message).to.equal(t('userHasRequestedTaskApproval', { expect(user.notifications[2].data.message).to.equal(t('userHasRequestedTaskApproval', {
user: member.auth.local.username, user: member.auth.local.username,
taskName: updatedTask.text, taskName: updatedTask.text,
taskId: updatedTask._id, taskId: updatedTask._id,
direction, direction,
}, 'cs')); // This test only works if we have the notification translated }, 'cs')); // This test only works if we have the notification translated
expect(user.notifications[1].data.groupId).to.equal(guild._id); expect(user.notifications[2].data.groupId).to.equal(guild._id);
expect(updatedTask.group.approval.requested).to.equal(true); expect(updatedTask.group.approval.requested).to.equal(true);
expect(updatedTask.group.approval.requestedDate).to.be.a('string'); // date gets converted to a string as json doesn't have a Date type expect(updatedTask.group.approval.requestedDate).to.be.a('string'); // date gets converted to a string as json doesn't have a Date type
@@ -80,25 +81,25 @@ describe('POST /tasks/:id/score/:direction', () => {
await user.sync(); await user.sync();
await member2.sync(); await member2.sync();
expect(user.notifications.length).to.equal(2); expect(user.notifications.length).to.equal(3);
expect(user.notifications[1].type).to.equal('GROUP_TASK_APPROVAL'); expect(user.notifications[2].type).to.equal('GROUP_TASK_APPROVAL');
expect(user.notifications[1].data.message).to.equal(t('userHasRequestedTaskApproval', { expect(user.notifications[2].data.message).to.equal(t('userHasRequestedTaskApproval', {
user: member.auth.local.username, user: member.auth.local.username,
taskName: updatedTask.text, taskName: updatedTask.text,
taskId: updatedTask._id, taskId: updatedTask._id,
direction, direction,
})); }));
expect(user.notifications[1].data.groupId).to.equal(guild._id); expect(user.notifications[2].data.groupId).to.equal(guild._id);
expect(member2.notifications.length).to.equal(1); expect(member2.notifications.length).to.equal(2);
expect(member2.notifications[0].type).to.equal('GROUP_TASK_APPROVAL'); expect(member2.notifications[1].type).to.equal('GROUP_TASK_APPROVAL');
expect(member2.notifications[0].data.message).to.equal(t('userHasRequestedTaskApproval', { expect(member2.notifications[1].data.message).to.equal(t('userHasRequestedTaskApproval', {
user: member.auth.local.username, user: member.auth.local.username,
taskName: updatedTask.text, taskName: updatedTask.text,
taskId: updatedTask._id, taskId: updatedTask._id,
direction, direction,
})); }));
expect(member2.notifications[0].data.groupId).to.equal(guild._id); expect(member2.notifications[1].data.groupId).to.equal(guild._id);
}); });
it('errors when approval has already been requested', async () => { it('errors when approval has already been requested', async () => {

View File

@@ -26,6 +26,7 @@ describe('POST /tasks/group/:groupid', () => {
privacy: 'private', privacy: 'private',
}, },
members: 1, members: 1,
upgradeToGroupPlan: true,
}); });
guild = group; guild = group;

View File

@@ -21,6 +21,7 @@ describe('POST /tasks/:taskId/assign/:memberId', () => {
type: 'guild', type: 'guild',
}, },
members: 2, members: 2,
upgradeToGroupPlan: true,
}); });
guild = group; guild = group;
@@ -103,14 +104,14 @@ describe('POST /tasks/:taskId/assign/:memberId', () => {
await member2.sync(); await member2.sync();
const groupTask = await user.get(`/tasks/group/${guild._id}`); const groupTask = await user.get(`/tasks/group/${guild._id}`);
expect(user.notifications.length).to.equal(2); // includes Guild Joined achievement expect(user.notifications.length).to.equal(3); // includes Guild Joined achievement
expect(user.notifications[1].type).to.equal('GROUP_TASK_CLAIMED'); expect(user.notifications[2].type).to.equal('GROUP_TASK_CLAIMED');
expect(user.notifications[1].data.taskId).to.equal(groupTask[0]._id); expect(user.notifications[2].data.taskId).to.equal(groupTask[0]._id);
expect(user.notifications[1].data.groupId).to.equal(guild._id); expect(user.notifications[2].data.groupId).to.equal(guild._id);
expect(member2.notifications.length).to.equal(1); expect(member2.notifications.length).to.equal(2);
expect(member2.notifications[0].type).to.equal('GROUP_TASK_CLAIMED'); expect(member2.notifications[1].type).to.equal('GROUP_TASK_CLAIMED');
expect(member2.notifications[0].data.taskId).to.equal(groupTask[0]._id); expect(member2.notifications[1].data.taskId).to.equal(groupTask[0]._id);
expect(member2.notifications[0].data.groupId).to.equal(guild._id); expect(member2.notifications[1].data.groupId).to.equal(guild._id);
}); });
it('assigns a task to a user', async () => { it('assigns a task to a user', async () => {
@@ -130,9 +131,9 @@ describe('POST /tasks/:taskId/assign/:memberId', () => {
const groupTask = await user.get(`/tasks/group/${guild._id}`); const groupTask = await user.get(`/tasks/group/${guild._id}`);
expect(member.notifications.length).to.equal(1); expect(member.notifications.length).to.equal(2);
expect(member.notifications[0].type).to.equal('GROUP_TASK_ASSIGNED'); expect(member.notifications[1].type).to.equal('GROUP_TASK_ASSIGNED');
expect(member.notifications[0].taskId).to.equal(groupTask._id); expect(member.notifications[1].taskId).to.equal(groupTask._id);
}); });
it('assigns a task to multiple users', async () => { it('assigns a task to multiple users', async () => {

View File

@@ -9,7 +9,7 @@ describe('POST group-tasks/:taskId/move/to/:position', () => {
beforeEach(async () => { beforeEach(async () => {
user = await generateUser({ balance: 1 }); user = await generateUser({ balance: 1 });
guild = await generateGroup(user, { type: 'guild' }); guild = await generateGroup(user, { type: 'guild' }, { 'purchased.plan.customerId': 'group-unlimited' });
}); });
it('can move task to new position', async () => { it('can move task to new position', async () => {

View File

@@ -21,6 +21,7 @@ describe('POST /tasks/:taskId/unassign/:memberId', () => {
type: 'guild', type: 'guild',
}, },
members: 2, members: 2,
upgradeToGroupPlan: true,
}); });
guild = group; guild = group;
@@ -91,7 +92,7 @@ describe('POST /tasks/:taskId/unassign/:memberId', () => {
await user.post(`/tasks/${task._id}/unassign/${member._id}`); await user.post(`/tasks/${task._id}/unassign/${member._id}`);
await member.sync(); await member.sync();
expect(member.notifications.length).to.equal(0); expect(member.notifications.length).to.equal(1); // mystery items
}); });
it('unassigns a user and only that user from a task', async () => { it('unassigns a user and only that user from a task', async () => {

View File

@@ -22,6 +22,7 @@ describe('PUT /tasks/:id', () => {
type: 'guild', type: 'guild',
}, },
members: 2, members: 2,
upgradeToGroupPlan: true,
}); });
guild = group; guild = group;

View File

@@ -15,6 +15,7 @@ describe('DELETE group /tasks/:taskId/checklist/:itemId', () => {
type: 'guild', type: 'guild',
}, },
members: 2, members: 2,
upgradeToGroupPlan: true,
}); });
guild = group; guild = group;

View File

@@ -15,6 +15,7 @@ describe('POST group /tasks/:taskId/checklist/', () => {
type: 'guild', type: 'guild',
}, },
members: 2, members: 2,
upgradeToGroupPlan: true,
}); });
guild = group; guild = group;

View File

@@ -15,6 +15,7 @@ describe('PUT group /tasks/:taskId/checklist/:itemId', () => {
type: 'guild', type: 'guild',
}, },
members: 2, members: 2,
upgradeToGroupPlan: true,
}); });
guild = group; guild = group;

View File

@@ -139,7 +139,7 @@ describe('POST /user/class/cast/:spellId', () => {
}); });
it('returns an error if a group task was targeted', async () => { it('returns an error if a group task was targeted', async () => {
const { group, groupLeader } = await createAndPopulateGroup(); const { group, groupLeader } = await createAndPopulateGroup({ upgradeToGroupPlan: true });
const groupTask = await groupLeader.post(`/tasks/group/${group._id}`, { const groupTask = await groupLeader.post(`/tasks/group/${group._id}`, {
text: 'todo group', text: 'todo group',
@@ -266,7 +266,7 @@ describe('POST /user/class/cast/:spellId', () => {
}); });
it('searing brightness does not affect challenge or group tasks', async () => { it('searing brightness does not affect challenge or group tasks', async () => {
const guild = await generateGroup(user); const guild = await generateGroup(user, {}, { 'purchased.plan.customerId': 'group-unlimited' });
const challenge = await generateChallenge(user, guild); const challenge = await generateChallenge(user, guild);
await user.post(`/challenges/${challenge._id}/join`); await user.post(`/challenges/${challenge._id}/join`);
await user.post(`/tasks/challenge/${challenge._id}`, { await user.post(`/tasks/challenge/${challenge._id}`, {

View File

@@ -88,7 +88,7 @@ describe('POST /user/reset', () => {
}); });
it('does not delete challenge or group tasks', async () => { it('does not delete challenge or group tasks', async () => {
const guild = await generateGroup(user); const guild = await generateGroup(user, {}, { 'purchased.plan.customerId': 'group-unlimited' });
const challenge = await generateChallenge(user, guild); const challenge = await generateChallenge(user, guild);
await user.post(`/challenges/${challenge._id}/join`); await user.post(`/challenges/${challenge._id}/join`);
await user.post(`/tasks/challenge/${challenge._id}`, { await user.post(`/tasks/challenge/${challenge._id}`, {