diff --git a/test/api/v3/integration/challenges/GET-challenges_user.test.js b/test/api/v3/integration/challenges/GET-challenges_user.test.js index c295f9da02..bed6735273 100644 --- a/test/api/v3/integration/challenges/GET-challenges_user.test.js +++ b/test/api/v3/integration/challenges/GET-challenges_user.test.js @@ -218,10 +218,10 @@ describe('GET challenges/user', () => { context('official challenge is present', () => { let user; let officialChallenge; let unofficialChallenges; let - groupPlan; + group; before(async () => { - const { group, groupLeader } = await createAndPopulateGroup({ + ({ group, groupLeader: user } = await createAndPopulateGroup({ groupDetails: { name: 'TestGuild', summary: 'summary for TestGuild', @@ -229,10 +229,7 @@ describe('GET challenges/user', () => { privacy: 'private', }, upgradeToGroupPlan: true, - }); - - user = groupLeader; - groupPlan = group; + })); await user.update({ '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`); challenges = await user.get('/challenges/user?page=0'); diff --git a/test/api/v3/integration/chat/POST-chat.flag.test.js b/test/api/v3/integration/chat/POST-chat.flag.test.js index 909fbfa7a0..21dfabec92 100644 --- a/test/api/v3/integration/chat/POST-chat.flag.test.js +++ b/test/api/v3/integration/chat/POST-chat.flag.test.js @@ -1,32 +1,42 @@ -import { find } from 'lodash'; +import find from 'lodash/find'; import moment from 'moment'; -import nconf from 'nconf'; import { IncomingWebhook } from '@slack/webhook'; import { - generateUser, + createAndPopulateGroup, translate as t, } from '../../../../helpers/api-integration/v3'; -const BASE_URL = nconf.get('BASE_URL'); - describe('POST /chat/:chatId/flag', () => { let user; let admin; let anotherUser; let newUser; let - group; + group; let members; let userToDelete; const TEST_MESSAGE = 'Test Message'; const USER_AGE_FOR_FLAGGING = 3; beforeEach(async () => { - user = await generateUser({ balance: 1, 'auth.timestamps.created': moment().subtract(USER_AGE_FOR_FLAGGING + 1, 'days').toDate() }); - admin = await generateUser({ balance: 1, 'permissions.moderator': true }); - 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, groupLeader: user, members } = await createAndPopulateGroup({ + groupDetails: { + name: 'Test Guild', + type: 'guild', + privacy: 'private', + }, + leaderDetails: { + 'auth.timestamps.created': moment().subtract(USER_AGE_FOR_FLAGGING + 1, 'days').toDate(), + }, + members: 4, + upgradeToGroupPlan: true, + })); - group = await user.post('/groups', { - name: 'Test Guild', - type: 'guild', - privacy: 'public', + [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(() => { @@ -69,8 +79,8 @@ describe('POST /chat/:chatId/flag', () => { fallback: 'Flag Message', color: 'danger', author_name: `@${anotherUser.auth.local.username} ${anotherUser.profile.name} (${anotherUser.auth.local.email}; ${anotherUser._id})\n${timestamp}`, - title: 'Flag in Test Guild', - title_link: `${BASE_URL}/groups/guild/${group._id}`, + title: 'Flag in Test Guild - (private guild)', + title_link: undefined, text: TEST_MESSAGE, footer: ``, 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 () => { @@ -104,8 +114,8 @@ describe('POST /chat/:chatId/flag', () => { fallback: 'Flag Message', color: 'danger', author_name: `@${newUser.auth.local.username} ${newUser.profile.name} (${newUser.auth.local.email}; ${newUser._id})\n${timestamp}`, - title: 'Flag in Test Guild', - title_link: `${BASE_URL}/groups/guild/${group._id}`, + title: 'Flag in Test Guild - (private guild)', + title_link: undefined, text: TEST_MESSAGE, footer: ` ${automatedComment}`, 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 () => { - const deletedUser = await generateUser({ - 'auth.timestamps.created': new Date('2022-01-01'), - }); - const { message } = await deletedUser.post(`/groups/${group._id}/chat`, { message: TEST_MESSAGE }); - await deletedUser.del('/user', { + const { message } = await userToDelete.post(`/groups/${group._id}/chat`, { message: TEST_MESSAGE }); + await userToDelete.del('/user', { password: 'password', }); diff --git a/test/api/v3/integration/chat/POST-chat.like.test.js b/test/api/v3/integration/chat/POST-chat.like.test.js index beab851bb0..242d2d95f6 100644 --- a/test/api/v3/integration/chat/POST-chat.like.test.js +++ b/test/api/v3/integration/chat/POST-chat.like.test.js @@ -6,27 +6,27 @@ import { describe('POST /chat/:chatId/like', () => { let user; - let groupWithChat; - const testMessage = 'Test Message'; let anotherUser; + let groupWithChat; + let members; + const testMessage = 'Test Message'; before(async () => { - const { group, groupLeader, members } = await createAndPopulateGroup({ + ({ group: groupWithChat, groupLeader: user, members } = await createAndPopulateGroup({ groupDetails: { name: 'Test Guild', type: 'guild', - privacy: 'public', + privacy: 'private', }, members: 1, leaderDetails: { 'auth.timestamps.created': new Date('2022-01-01'), balance: 10, }, - }); + upgradeToGroupPlan: true, + })); - user = groupLeader; - groupWithChat = group; - anotherUser = members[0]; // eslint-disable-line prefer-destructuring + [anotherUser] = members; await anotherUser.update({ 'auth.timestamps.created': new Date('2022-01-01') }); }); diff --git a/test/helpers/api-integration/v4/object-generators.js b/test/helpers/api-integration/v4/object-generators.js index 59b0642b15..92a4c50748 100644 --- a/test/helpers/api-integration/v4/object-generators.js +++ b/test/helpers/api-integration/v4/object-generators.js @@ -120,6 +120,9 @@ export async function createAndPopulateGroup (settings = {}) { const upgradeToGroupPlan = settings.upgradeToGroupPlan || false; const { groupDetails } = settings; const leaderDetails = settings.leaderDetails || { balance: 10 }; + if (upgradeToGroupPlan) { + leaderDetails.permissions = { fullAccess: true }; + } const groupLeader = await generateUser(leaderDetails); const group = await generateGroup(groupLeader, groupDetails);