mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 14:17:22 +01:00
fix(tests): cleanup continues
This commit is contained in:
@@ -53,6 +53,7 @@ describe('POST /groups/:groupId/quests/reject', () => {
|
|||||||
it('returns an error when group is a guild', async () => {
|
it('returns an error when group is a guild', async () => {
|
||||||
const { group: guild, groupLeader: guildLeader } = await createAndPopulateGroup({
|
const { group: guild, groupLeader: guildLeader } = await createAndPopulateGroup({
|
||||||
groupDetails: { type: 'guild', privacy: 'private' },
|
groupDetails: { type: 'guild', privacy: 'private' },
|
||||||
|
upgradeToGroupPlan: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
await expect(guildLeader.post(`/groups/${guild._id}/quests/reject`))
|
await expect(guildLeader.post(`/groups/${guild._id}/quests/reject`))
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import {
|
import {
|
||||||
generateUser,
|
createAndPopulateGroup,
|
||||||
generateGroup,
|
|
||||||
} from '../../../../../helpers/api-integration/v3';
|
} from '../../../../../helpers/api-integration/v3';
|
||||||
|
|
||||||
describe('POST group-tasks/:taskId/move/to/:position', () => {
|
describe('POST group-tasks/:taskId/move/to/:position', () => {
|
||||||
@@ -8,8 +7,12 @@ describe('POST group-tasks/:taskId/move/to/:position', () => {
|
|||||||
guild;
|
guild;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
user = await generateUser({ balance: 1 });
|
const { group, groupLeader } = await createAndPopulateGroup({
|
||||||
guild = await generateGroup(user, { type: 'guild' }, { 'purchased.plan.customerId': 'group-unlimited' });
|
groupDetails: { type: 'guild', privacy: 'private' },
|
||||||
|
upgradeToGroupPlan: true,
|
||||||
|
});
|
||||||
|
guild = group;
|
||||||
|
user = groupLeader;
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can move task to new position', async () => {
|
it('can move task to new position', async () => {
|
||||||
|
|||||||
@@ -198,95 +198,6 @@ describe('DELETE /user', () => {
|
|||||||
await expect(checkExistence('party', party._id)).to.eventually.eql(false);
|
await expect(checkExistence('party', party._id)).to.eventually.eql(false);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
context('last member of a private guild', () => {
|
|
||||||
let privateGuild;
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
privateGuild = await generateGroup(user, {
|
|
||||||
type: 'guild',
|
|
||||||
privacy: 'private',
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('deletes guild when user is the only member', async () => {
|
|
||||||
await user.del('/user', {
|
|
||||||
password,
|
|
||||||
});
|
|
||||||
await expect(checkExistence('groups', privateGuild._id)).to.eventually.eql(false);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
context('groups user is leader of', () => {
|
|
||||||
let guild; let oldLeader; let
|
|
||||||
newLeader;
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
const { group, groupLeader, members } = await createAndPopulateGroup({
|
|
||||||
groupDetails: {
|
|
||||||
type: 'guild',
|
|
||||||
privacy: 'public',
|
|
||||||
},
|
|
||||||
members: 1,
|
|
||||||
});
|
|
||||||
|
|
||||||
guild = group;
|
|
||||||
newLeader = members[0]; // eslint-disable-line prefer-destructuring
|
|
||||||
oldLeader = groupLeader;
|
|
||||||
});
|
|
||||||
|
|
||||||
it('chooses new group leader for any group user was the leader of', async () => {
|
|
||||||
await oldLeader.del('/user', {
|
|
||||||
password,
|
|
||||||
});
|
|
||||||
|
|
||||||
const updatedGuild = await newLeader.get(`/groups/${guild._id}`);
|
|
||||||
|
|
||||||
expect(updatedGuild.leader).to.exist;
|
|
||||||
expect(updatedGuild.leader._id).to.not.eql(oldLeader._id);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
context('groups user is a part of', () => {
|
|
||||||
let group1; let group2; let userToDelete; let
|
|
||||||
otherUser;
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
userToDelete = await generateUser({ balance: 10 });
|
|
||||||
|
|
||||||
group1 = await generateGroup(userToDelete, {
|
|
||||||
type: 'guild',
|
|
||||||
privacy: 'public',
|
|
||||||
});
|
|
||||||
|
|
||||||
const { group, members } = await createAndPopulateGroup({
|
|
||||||
groupDetails: {
|
|
||||||
type: 'guild',
|
|
||||||
privacy: 'public',
|
|
||||||
},
|
|
||||||
members: 3,
|
|
||||||
});
|
|
||||||
|
|
||||||
group2 = group;
|
|
||||||
otherUser = members[0]; // eslint-disable-line prefer-destructuring
|
|
||||||
|
|
||||||
await userToDelete.post(`/groups/${group2._id}/join`);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('removes user from all groups user was a part of', async () => {
|
|
||||||
await userToDelete.del('/user', {
|
|
||||||
password,
|
|
||||||
});
|
|
||||||
|
|
||||||
const updatedGroup1Members = await otherUser.get(`/groups/${group1._id}/members`);
|
|
||||||
const updatedGroup2Members = await otherUser.get(`/groups/${group2._id}/members`);
|
|
||||||
const userInGroup = find(updatedGroup2Members, member => member._id === userToDelete._id);
|
|
||||||
|
|
||||||
expect(updatedGroup1Members).to.be.empty;
|
|
||||||
expect(updatedGroup2Members).to.not.be.empty;
|
|
||||||
expect(userInGroup).to.not.exist;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
context('user with Google auth', async () => {
|
context('user with Google auth', async () => {
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ describe('POST /user/purchase/:type/:key', () => {
|
|||||||
type: 'guild',
|
type: 'guild',
|
||||||
privacy: 'private',
|
privacy: 'private',
|
||||||
},
|
},
|
||||||
|
upgradeToGroupPlan: true,
|
||||||
});
|
});
|
||||||
await group.update({
|
await group.update({
|
||||||
'leaderOnly.getGems': true,
|
'leaderOnly.getGems': true,
|
||||||
@@ -77,6 +78,7 @@ describe('POST /user/purchase/:type/:key', () => {
|
|||||||
privacy: 'private',
|
privacy: 'private',
|
||||||
},
|
},
|
||||||
members: 1,
|
members: 1,
|
||||||
|
upgradeToGroupPlan: true,
|
||||||
});
|
});
|
||||||
await group.update({
|
await group.update({
|
||||||
'leaderOnly.getGems': true,
|
'leaderOnly.getGems': true,
|
||||||
|
|||||||
@@ -714,31 +714,6 @@ describe('POST /user/auth/local/register', () => {
|
|||||||
|
|
||||||
expect(user.invitations.party).to.eql({});
|
expect(user.invitations.party).to.eql({});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('adds a user to a guild on an invite of type other than party', async () => {
|
|
||||||
const { group, groupLeader } = await createAndPopulateGroup({
|
|
||||||
groupDetails: { type: 'guild', privacy: 'private' },
|
|
||||||
});
|
|
||||||
|
|
||||||
const invite = encrypt(JSON.stringify({
|
|
||||||
id: group._id,
|
|
||||||
inviter: groupLeader._id,
|
|
||||||
sentAt: Date.now(),
|
|
||||||
}));
|
|
||||||
|
|
||||||
const user = await api.post(`/user/auth/local/register?groupInvite=${invite}`, {
|
|
||||||
username,
|
|
||||||
email,
|
|
||||||
password,
|
|
||||||
confirmPassword: password,
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(user.invitations.guilds[0]).to.eql({
|
|
||||||
id: group._id,
|
|
||||||
name: group.name,
|
|
||||||
inviter: groupLeader._id,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
context('successful login via api', () => {
|
context('successful login via api', () => {
|
||||||
|
|||||||
@@ -46,6 +46,7 @@
|
|||||||
"startQuest": "Start Quest",
|
"startQuest": "Start Quest",
|
||||||
"questInvitationDoesNotExist": "No quest invitation has been sent out yet.",
|
"questInvitationDoesNotExist": "No quest invitation has been sent out yet.",
|
||||||
"questInviteNotFound": "No quest invitation found.",
|
"questInviteNotFound": "No quest invitation found.",
|
||||||
|
"guildQuestsNotSupported": "Guilds cannot be invited on quests.",
|
||||||
"questNotOwned": "You don't own that quest scroll.",
|
"questNotOwned": "You don't own that quest scroll.",
|
||||||
"questNotGoldPurchasable": "Quest \"<%= key %>\" is not a Gold-purchasable quest.",
|
"questNotGoldPurchasable": "Quest \"<%= key %>\" is not a Gold-purchasable quest.",
|
||||||
"questNotGemPurchasable": "Quest \"<%= key %>\" is not a Gem-purchasable quest.",
|
"questNotGemPurchasable": "Quest \"<%= key %>\" is not a Gem-purchasable quest.",
|
||||||
|
|||||||
Reference in New Issue
Block a user