Files
habitica/test/api/groups/chat/POST-groups_id_chat_id_flag.test.js
T
2015-10-30 14:47:14 -05:00

103 lines
2.5 KiB
JavaScript

import {
createAndPopulateGroup,
generateUser,
requester,
translate as t,
} from '../../../helpers/api.helper';
describe('POST /groups/:id/chat/:id/flag', () => {
context('another member\'s message', () => {
let group, member, message, user;
beforeEach(() => {
return createAndPopulateGroup({
groupDetails: {
type: 'guild',
privacy: 'public',
},
members: 1,
}).then((res) => {
group = res.group;
user = res.leader;
member = res.members[0];
return requester(member)
.post(`/groups/${group._id}/chat`, null, { message: 'Group member message', });
}).then((res) => {
message = res.message;
});
});
it('flags message', () => {
let api = requester(user);
return api.post(`/groups/${group._id}/chat/${message.id}/flag`).then((messages) => {
return api.get(`/groups/${group._id}/chat`);
}).then((messages) => {
let message = messages[0];
expect(message.flags[user._id]).to.eql(true);
});
});
});
context('own message', () => {
let api, group, message, user;
beforeEach(() => {
return createAndPopulateGroup({
groupDetails: {
type: 'guild',
privacy: 'public',
members: 1,
},
}).then((res) => {
group = res.group;
user = res.leader;
api = requester(user);
return api.post(`/groups/${group._id}/chat`, null, { message: 'User\'s own message', });
}).then((res) => {
message = res.message;
});
});
it('cannot flag message', () => {
let api = requester(user);
return expect(api.post(`/groups/${group._id}/chat/${message.id}/flag`))
.to.eventually.be.rejected.and.eql({
code: 401,
text: t('messageGroupChatFlagOwnMessage'),
});
});
});
context('nonexistant message', () => {
let api, group, message, user;
beforeEach(() => {
return createAndPopulateGroup({
groupDetails: {
type: 'guild',
privacy: 'public',
},
}).then((res) => {
group = res.group;
user = res.leader;
api = requester(user);
});
});
it('returns error', () => {
let api = requester(user);
return expect(api.post(`/groups/${group._id}/chat/non-existant-message/flag`))
.to.eventually.be.rejected.and.eql({
code: 404,
text: t('messageGroupChatNotFound'),
});
});
});
});