mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
fix(tests): release candidate
This commit is contained in:
@@ -218,10 +218,10 @@ describe('GET challenges/user', () => {
|
|||||||
|
|
||||||
context('official challenge is present', () => {
|
context('official challenge is present', () => {
|
||||||
let user; let officialChallenge; let unofficialChallenges; let
|
let user; let officialChallenge; let unofficialChallenges; let
|
||||||
groupPlan;
|
group;
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
const { group, groupLeader } = await createAndPopulateGroup({
|
({ group, groupLeader: user } = await createAndPopulateGroup({
|
||||||
groupDetails: {
|
groupDetails: {
|
||||||
name: 'TestGuild',
|
name: 'TestGuild',
|
||||||
summary: 'summary for TestGuild',
|
summary: 'summary for TestGuild',
|
||||||
@@ -229,10 +229,7 @@ describe('GET challenges/user', () => {
|
|||||||
privacy: 'private',
|
privacy: 'private',
|
||||||
},
|
},
|
||||||
upgradeToGroupPlan: true,
|
upgradeToGroupPlan: true,
|
||||||
});
|
}));
|
||||||
|
|
||||||
user = groupLeader;
|
|
||||||
groupPlan = group;
|
|
||||||
|
|
||||||
await user.update({
|
await user.update({
|
||||||
'permissions.challengeAdmin': true,
|
'permissions.challengeAdmin': true,
|
||||||
@@ -275,7 +272,7 @@ describe('GET challenges/user', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const newChallenge = await generateChallenge(user, groupPlan);
|
const newChallenge = await generateChallenge(user, group);
|
||||||
await user.post(`/challenges/${newChallenge._id}/join`);
|
await user.post(`/challenges/${newChallenge._id}/join`);
|
||||||
|
|
||||||
challenges = await user.get('/challenges/user?page=0');
|
challenges = await user.get('/challenges/user?page=0');
|
||||||
|
|||||||
@@ -1,32 +1,42 @@
|
|||||||
import { find } from 'lodash';
|
import find from 'lodash/find';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import nconf from 'nconf';
|
|
||||||
import { IncomingWebhook } from '@slack/webhook';
|
import { IncomingWebhook } from '@slack/webhook';
|
||||||
import {
|
import {
|
||||||
generateUser,
|
createAndPopulateGroup,
|
||||||
translate as t,
|
translate as t,
|
||||||
} from '../../../../helpers/api-integration/v3';
|
} from '../../../../helpers/api-integration/v3';
|
||||||
|
|
||||||
const BASE_URL = nconf.get('BASE_URL');
|
|
||||||
|
|
||||||
describe('POST /chat/:chatId/flag', () => {
|
describe('POST /chat/:chatId/flag', () => {
|
||||||
let user; let admin; let anotherUser; let newUser; let
|
let user; let admin; let anotherUser; let newUser; let
|
||||||
group;
|
group; let members; let userToDelete;
|
||||||
const TEST_MESSAGE = 'Test Message';
|
const TEST_MESSAGE = 'Test Message';
|
||||||
const USER_AGE_FOR_FLAGGING = 3;
|
const USER_AGE_FOR_FLAGGING = 3;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
user = await generateUser({ balance: 1, 'auth.timestamps.created': moment().subtract(USER_AGE_FOR_FLAGGING + 1, 'days').toDate() });
|
({ group, groupLeader: user, members } = await createAndPopulateGroup({
|
||||||
admin = await generateUser({ balance: 1, 'permissions.moderator': true });
|
groupDetails: {
|
||||||
anotherUser = await generateUser({ 'auth.timestamps.created': moment().subtract(USER_AGE_FOR_FLAGGING + 1, 'days').toDate() });
|
|
||||||
newUser = await generateUser({ 'auth.timestamps.created': moment().subtract(1, 'days').toDate() });
|
|
||||||
sandbox.stub(IncomingWebhook.prototype, 'send').returns(Promise.resolve());
|
|
||||||
|
|
||||||
group = await user.post('/groups', {
|
|
||||||
name: 'Test Guild',
|
name: 'Test Guild',
|
||||||
type: 'guild',
|
type: 'guild',
|
||||||
privacy: 'public',
|
privacy: 'private',
|
||||||
|
},
|
||||||
|
leaderDetails: {
|
||||||
|
'auth.timestamps.created': moment().subtract(USER_AGE_FOR_FLAGGING + 1, 'days').toDate(),
|
||||||
|
},
|
||||||
|
members: 4,
|
||||||
|
upgradeToGroupPlan: true,
|
||||||
|
}));
|
||||||
|
|
||||||
|
[admin, anotherUser, newUser, userToDelete] = members;
|
||||||
|
await user.update({ permissions: {} });
|
||||||
|
await admin.update({ permissions: { moderator: true } });
|
||||||
|
await anotherUser.update({ 'auth.timestamps.created': moment().subtract(USER_AGE_FOR_FLAGGING + 1, 'days').toDate() });
|
||||||
|
await newUser.update({ 'auth.timestamps.created': moment().subtract(1, 'days').toDate() });
|
||||||
|
await userToDelete.update({
|
||||||
|
'auth.timestamps.created': moment().subtract(1, 'days').toDate(),
|
||||||
|
'purchased.plan.dateTerminated': moment().subtract(1, 'minutes').toDate(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
sandbox.stub(IncomingWebhook.prototype, 'send').returns(Promise.resolve());
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
@@ -69,8 +79,8 @@ describe('POST /chat/:chatId/flag', () => {
|
|||||||
fallback: 'Flag Message',
|
fallback: 'Flag Message',
|
||||||
color: 'danger',
|
color: 'danger',
|
||||||
author_name: `@${anotherUser.auth.local.username} ${anotherUser.profile.name} (${anotherUser.auth.local.email}; ${anotherUser._id})\n${timestamp}`,
|
author_name: `@${anotherUser.auth.local.username} ${anotherUser.profile.name} (${anotherUser.auth.local.email}; ${anotherUser._id})\n${timestamp}`,
|
||||||
title: 'Flag in Test Guild',
|
title: 'Flag in Test Guild - (private guild)',
|
||||||
title_link: `${BASE_URL}/groups/guild/${group._id}`,
|
title_link: undefined,
|
||||||
text: TEST_MESSAGE,
|
text: TEST_MESSAGE,
|
||||||
footer: `<https://habitrpg.github.io/flag-o-rama/?groupId=${group._id}&chatId=${message.id}|Flag this message.>`,
|
footer: `<https://habitrpg.github.io/flag-o-rama/?groupId=${group._id}&chatId=${message.id}|Flag this message.>`,
|
||||||
mrkdwn_in: [
|
mrkdwn_in: [
|
||||||
@@ -78,7 +88,7 @@ describe('POST /chat/:chatId/flag', () => {
|
|||||||
],
|
],
|
||||||
}],
|
}],
|
||||||
});
|
});
|
||||||
/* eslint-ensable camelcase */
|
/* eslint-enable camelcase */
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Does not increment message flag count and sends different message to moderator Slack when user is new', async () => {
|
it('Does not increment message flag count and sends different message to moderator Slack when user is new', async () => {
|
||||||
@@ -104,8 +114,8 @@ describe('POST /chat/:chatId/flag', () => {
|
|||||||
fallback: 'Flag Message',
|
fallback: 'Flag Message',
|
||||||
color: 'danger',
|
color: 'danger',
|
||||||
author_name: `@${newUser.auth.local.username} ${newUser.profile.name} (${newUser.auth.local.email}; ${newUser._id})\n${timestamp}`,
|
author_name: `@${newUser.auth.local.username} ${newUser.profile.name} (${newUser.auth.local.email}; ${newUser._id})\n${timestamp}`,
|
||||||
title: 'Flag in Test Guild',
|
title: 'Flag in Test Guild - (private guild)',
|
||||||
title_link: `${BASE_URL}/groups/guild/${group._id}`,
|
title_link: undefined,
|
||||||
text: TEST_MESSAGE,
|
text: TEST_MESSAGE,
|
||||||
footer: `<https://habitrpg.github.io/flag-o-rama/?groupId=${group._id}&chatId=${message.id}|Flag this message.> ${automatedComment}`,
|
footer: `<https://habitrpg.github.io/flag-o-rama/?groupId=${group._id}&chatId=${message.id}|Flag this message.> ${automatedComment}`,
|
||||||
mrkdwn_in: [
|
mrkdwn_in: [
|
||||||
@@ -113,15 +123,12 @@ describe('POST /chat/:chatId/flag', () => {
|
|||||||
],
|
],
|
||||||
}],
|
}],
|
||||||
});
|
});
|
||||||
/* eslint-ensable camelcase */
|
/* eslint-enable camelcase */
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Flags a chat when the author\'s account was deleted', async () => {
|
it('Flags a chat when the author\'s account was deleted', async () => {
|
||||||
const deletedUser = await generateUser({
|
const { message } = await userToDelete.post(`/groups/${group._id}/chat`, { message: TEST_MESSAGE });
|
||||||
'auth.timestamps.created': new Date('2022-01-01'),
|
await userToDelete.del('/user', {
|
||||||
});
|
|
||||||
const { message } = await deletedUser.post(`/groups/${group._id}/chat`, { message: TEST_MESSAGE });
|
|
||||||
await deletedUser.del('/user', {
|
|
||||||
password: 'password',
|
password: 'password',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -6,27 +6,27 @@ import {
|
|||||||
|
|
||||||
describe('POST /chat/:chatId/like', () => {
|
describe('POST /chat/:chatId/like', () => {
|
||||||
let user;
|
let user;
|
||||||
let groupWithChat;
|
|
||||||
const testMessage = 'Test Message';
|
|
||||||
let anotherUser;
|
let anotherUser;
|
||||||
|
let groupWithChat;
|
||||||
|
let members;
|
||||||
|
const testMessage = 'Test Message';
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
const { group, groupLeader, members } = await createAndPopulateGroup({
|
({ group: groupWithChat, groupLeader: user, members } = await createAndPopulateGroup({
|
||||||
groupDetails: {
|
groupDetails: {
|
||||||
name: 'Test Guild',
|
name: 'Test Guild',
|
||||||
type: 'guild',
|
type: 'guild',
|
||||||
privacy: 'public',
|
privacy: 'private',
|
||||||
},
|
},
|
||||||
members: 1,
|
members: 1,
|
||||||
leaderDetails: {
|
leaderDetails: {
|
||||||
'auth.timestamps.created': new Date('2022-01-01'),
|
'auth.timestamps.created': new Date('2022-01-01'),
|
||||||
balance: 10,
|
balance: 10,
|
||||||
},
|
},
|
||||||
});
|
upgradeToGroupPlan: true,
|
||||||
|
}));
|
||||||
|
|
||||||
user = groupLeader;
|
[anotherUser] = members;
|
||||||
groupWithChat = group;
|
|
||||||
anotherUser = members[0]; // eslint-disable-line prefer-destructuring
|
|
||||||
await anotherUser.update({ 'auth.timestamps.created': new Date('2022-01-01') });
|
await anotherUser.update({ 'auth.timestamps.created': new Date('2022-01-01') });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -120,6 +120,9 @@ export async function createAndPopulateGroup (settings = {}) {
|
|||||||
const upgradeToGroupPlan = settings.upgradeToGroupPlan || false;
|
const upgradeToGroupPlan = settings.upgradeToGroupPlan || false;
|
||||||
const { groupDetails } = settings;
|
const { groupDetails } = settings;
|
||||||
const leaderDetails = settings.leaderDetails || { balance: 10 };
|
const leaderDetails = settings.leaderDetails || { balance: 10 };
|
||||||
|
if (upgradeToGroupPlan) {
|
||||||
|
leaderDetails.permissions = { fullAccess: true };
|
||||||
|
}
|
||||||
|
|
||||||
const groupLeader = await generateUser(leaderDetails);
|
const groupLeader = await generateUser(leaderDetails);
|
||||||
const group = await generateGroup(groupLeader, groupDetails);
|
const group = await generateGroup(groupLeader, groupDetails);
|
||||||
|
|||||||
Reference in New Issue
Block a user