fix(tests): release candidate

This commit is contained in:
SabreCat
2023-08-02 20:04:09 -05:00
parent bfa6d24e47
commit 3ad31c7cd0
4 changed files with 48 additions and 41 deletions

View File

@@ -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');

View File

@@ -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() }); name: 'Test Guild',
newUser = await generateUser({ 'auth.timestamps.created': moment().subtract(1, 'days').toDate() }); type: 'guild',
sandbox.stub(IncomingWebhook.prototype, 'send').returns(Promise.resolve()); privacy: 'private',
},
leaderDetails: {
'auth.timestamps.created': moment().subtract(USER_AGE_FOR_FLAGGING + 1, 'days').toDate(),
},
members: 4,
upgradeToGroupPlan: true,
}));
group = await user.post('/groups', { [admin, anotherUser, newUser, userToDelete] = members;
name: 'Test Guild', await user.update({ permissions: {} });
type: 'guild', await admin.update({ permissions: { moderator: true } });
privacy: 'public', 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',
}); });

View File

@@ -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') });
}); });

View File

@@ -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);