mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 15:48:04 +01:00
65 lines
2.2 KiB
JavaScript
65 lines
2.2 KiB
JavaScript
import { v4 as generateUUID } from 'uuid';
|
|
import {
|
|
generateUser,
|
|
translate as t,
|
|
} from '../../../../helpers/api-integration/v3';
|
|
|
|
describe('POST /members/:memberId/clear-flags', () => {
|
|
let reporter;
|
|
let admin;
|
|
let moderator;
|
|
|
|
beforeEach(async () => {
|
|
reporter = await generateUser();
|
|
admin = await generateUser({ permissions: { userSupport: true } });
|
|
moderator = await generateUser({ permissions: { moderator: true } });
|
|
await reporter.post(`/members/${admin._id}/flag`);
|
|
});
|
|
|
|
context('error cases', () => {
|
|
it('returns error when memberId is not a UUID', async () => {
|
|
await expect(moderator.post('/members/gribbly/clear-flags'))
|
|
.to.eventually.be.rejected.and.eql({
|
|
code: 400,
|
|
error: 'BadRequest',
|
|
message: t('invalidReqParams'),
|
|
});
|
|
});
|
|
|
|
it('returns error when member with UUID is not found', async () => {
|
|
const randomId = generateUUID();
|
|
|
|
await expect(moderator.post(`/members/${randomId}/clear-flags`))
|
|
.to.eventually.be.rejected.and.eql({
|
|
code: 404,
|
|
error: 'NotFound',
|
|
message: t('userWithIDNotFound', { userId: randomId }),
|
|
});
|
|
});
|
|
|
|
it('returns error when requesting user is not a moderator', async () => {
|
|
await expect(reporter.post(`/members/${admin._id}/clear-flags`))
|
|
.to.eventually.be.rejected.and.eql({
|
|
code: 400,
|
|
error: 'BadRequest',
|
|
message: 'Only a moderator may clear reports from a profile.',
|
|
});
|
|
});
|
|
});
|
|
|
|
context('valid request', () => {
|
|
it('removes a single flag from user', async () => {
|
|
await expect(moderator.post(`/members/${admin._id}/clear-flags`)).to.eventually.be.ok;
|
|
const updatedTarget = await admin.get(`/hall/heroes/${admin._id}`);
|
|
expect(updatedTarget.profile.flags).to.eql({});
|
|
});
|
|
|
|
it('removes multiple flags from user', async () => {
|
|
await moderator.post(`/members/${admin._id}/flag`);
|
|
await expect(moderator.post(`/members/${admin._id}/clear-flags`)).to.eventually.be.ok;
|
|
const updatedTarget = await admin.get(`/hall/heroes/${admin._id}`);
|
|
expect(updatedTarget.profile.flags).to.eql({});
|
|
});
|
|
});
|
|
});
|