mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-07-28 22:05:38 +00:00
50 lines
1.4 KiB
JavaScript
50 lines
1.4 KiB
JavaScript
|
|
import { v4 } from 'uuid';
|
||
|
|
import {
|
||
|
|
generateUser,
|
||
|
|
translate as t,
|
||
|
|
} from '../../../helpers/api-integration/v4';
|
||
|
|
|
||
|
|
describe('DELETE /news/:newsID', () => {
|
||
|
|
let user;
|
||
|
|
const newsPost = {
|
||
|
|
title: 'New Post',
|
||
|
|
publishDate: new Date(),
|
||
|
|
published: true,
|
||
|
|
credits: 'credits',
|
||
|
|
text: 'news body',
|
||
|
|
};
|
||
|
|
beforeEach(async () => {
|
||
|
|
user = await generateUser({
|
||
|
|
'contributor.newsPoster': true,
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
it('disallows access to non-newsPosters', async () => {
|
||
|
|
const nonAdminUser = await generateUser({ 'contributor.newsPoster': false });
|
||
|
|
await expect(nonAdminUser.del(`/news/${v4()}`)).to.eventually.be.rejected.and.eql({
|
||
|
|
code: 401,
|
||
|
|
error: 'NotAuthorized',
|
||
|
|
message: 'You don\'t have news poster access.',
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
it('returns an error if the post does not exist', async () => {
|
||
|
|
await expect(user.del(`/news/${v4()}`)).to.eventually.be.rejected.and.eql({
|
||
|
|
code: 404,
|
||
|
|
error: 'NotFound',
|
||
|
|
message: t('newsPostNotFound'),
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
it('deletes news posts', async () => {
|
||
|
|
const existingPost = await user.post('/news', newsPost);
|
||
|
|
await user.del(`/news/${existingPost._id}`);
|
||
|
|
|
||
|
|
const returnedPosts = await user.get('/news');
|
||
|
|
const deletedPost = returnedPosts.find(returnedPost => returnedPost._id === existingPost._id);
|
||
|
|
|
||
|
|
expect(returnedPosts).is.an('array');
|
||
|
|
expect(deletedPost).to.not.exist;
|
||
|
|
});
|
||
|
|
});
|