Move chat tests to new infrastructure
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import {
|
||||
createAndPopulateGroup,
|
||||
generateUser,
|
||||
requester,
|
||||
translate as t,
|
||||
} from '../../../helpers/api.helper';
|
||||
|
||||
describe('DELETE /groups/:id/chat', () => {
|
||||
let api, group, message, user;
|
||||
|
||||
beforeEach(() => {
|
||||
return createAndPopulateGroup({
|
||||
groupDetails: {
|
||||
type: 'guild',
|
||||
privacy: 'public',
|
||||
},
|
||||
}).then((res) => {
|
||||
group = res.group;
|
||||
user = res.leader;
|
||||
api = requester(user);
|
||||
|
||||
return api.post(`/groups/${group._id}/chat`, null, { message: 'Some message', });
|
||||
}).then((res) => {
|
||||
message = res.message;
|
||||
});
|
||||
});
|
||||
|
||||
it('deletes a message', () => {
|
||||
return api.del(`/groups/${group._id}/chat/${message.id}`).then((res) => {
|
||||
return api.get(`/groups/${group._id}/chat/`);
|
||||
}).then((messages) => {
|
||||
expect(messages).to.have.length(0);
|
||||
});
|
||||
});
|
||||
|
||||
it('returns an error is message does not exist', () => {
|
||||
return expect(api.del(`/groups/${group._id}/chat/some-fake-id`)).to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
text: t('messageGroupChatNotFound'),
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,48 @@
|
||||
import {
|
||||
createAndPopulateGroup,
|
||||
generateUser,
|
||||
requester,
|
||||
translate as t,
|
||||
} from '../../../helpers/api.helper';
|
||||
|
||||
describe('GET /groups/:id/chat', () => {
|
||||
|
||||
context('group with multiple messages', () => {
|
||||
let group, member, message1, message2, 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) => {
|
||||
message1 = res.message;
|
||||
|
||||
return requester(user).post(`/groups/${group._id}/chat`, null, { message: 'User message' });
|
||||
}).then((res) => {
|
||||
message2 = res.message;
|
||||
});
|
||||
});
|
||||
|
||||
it('gets messages', () => {
|
||||
let api = requester(user);
|
||||
|
||||
return api.get(`/groups/${group._id}/chat`).then((messages) => {
|
||||
expect(messages).to.have.length(2);
|
||||
|
||||
let message = messages[0];
|
||||
expect(message.id).to.exist;
|
||||
expect(message.text).to.exist;
|
||||
expect(message.uuid).to.exist;
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,46 @@
|
||||
import {
|
||||
createAndPopulateGroup,
|
||||
generateUser,
|
||||
requester,
|
||||
translate as t,
|
||||
} from '../../../helpers/api.helper';
|
||||
|
||||
describe('POST /groups/:id/chat', () => {
|
||||
|
||||
let api, group, user;
|
||||
|
||||
beforeEach(() => {
|
||||
return createAndPopulateGroup({
|
||||
groupDetails: {
|
||||
type: 'guild',
|
||||
privacy: 'public',
|
||||
},
|
||||
}).then((res) => {
|
||||
group = res.group;
|
||||
user = res.leader;
|
||||
api = requester(user);
|
||||
});
|
||||
});
|
||||
|
||||
it('creates a chat message', () => {
|
||||
return api.post(`/groups/${group._id}/chat`, null, {
|
||||
message: 'Test Message',
|
||||
}).then((res) => {
|
||||
let message = res.message;
|
||||
|
||||
expect(message.id).to.exist;
|
||||
expect(message.timestamp).to.exist;
|
||||
expect(message.text).to.eql('Test Message');
|
||||
expect(message.uuid).to.eql(user._id);
|
||||
});
|
||||
});
|
||||
|
||||
it('does not post an empty message', () => {
|
||||
return expect(api.post(`/groups/${group._id}/chat`, null, {
|
||||
message: '',
|
||||
})).to.eventually.be.rejected.and.eql({
|
||||
code: 400,
|
||||
text: t('messageGroupChatBlankMessage'),
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,102 @@
|
||||
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'),
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,111 @@
|
||||
import {
|
||||
createAndPopulateGroup,
|
||||
generateUser,
|
||||
requester,
|
||||
translate as t,
|
||||
} from '../../../helpers/api.helper';
|
||||
|
||||
describe('POST /groups/:id/chat/:id/like', () => {
|
||||
|
||||
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('likes message', () => {
|
||||
let api = requester(user);
|
||||
|
||||
return api.post(`/groups/${group._id}/chat/${message.id}/like`).then((messages) => {
|
||||
let message = messages[0];
|
||||
expect(message.likes[user._id]).to.eql(true);
|
||||
});
|
||||
});
|
||||
|
||||
it('returns the message object', () => {
|
||||
let api = requester(user);
|
||||
|
||||
return api.post(`/groups/${group._id}/chat/${message.id}/like`).then((messages) => {
|
||||
let message = messages[0];
|
||||
expect(message.text).to.eql('Group member message');
|
||||
expect(message.uuid).to.eql(member._id);
|
||||
expect(message.user).to.eql(member.profile.name);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
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 like message', () => {
|
||||
let api = requester(user);
|
||||
|
||||
return expect(api.post(`/groups/${group._id}/chat/${message.id}/like`))
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 401,
|
||||
text: t('messageGroupChatLikeOwnMessage'),
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
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/like`))
|
||||
.to.eventually.be.rejected.and.eql({
|
||||
code: 404,
|
||||
text: t('messageGroupChatNotFound'),
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user