From 9969aa667a172a4e77aaa784ede0510c8e88da49 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 14 May 2016 07:05:59 -0500 Subject: [PATCH] fix: Remove requirement on message paramter in transfer-gems --- .../members/POST-transfer_gems.test.js | 43 ++++++++++++++----- website/server/controllers/api-v3/members.js | 6 ++- 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/test/api/v3/integration/members/POST-transfer_gems.test.js b/test/api/v3/integration/members/POST-transfer_gems.test.js index 5feee7ddd2..96644a3e88 100644 --- a/test/api/v3/integration/members/POST-transfer_gems.test.js +++ b/test/api/v3/integration/members/POST-transfer_gems.test.js @@ -24,17 +24,6 @@ describe('POST /members/transfer-gems', () => { }); }); - it('returns error when message is not provided', async () => { - await expect(userToSendMessage.post('/members/transfer-gems', { - gemAmount, - toUserId: receiver._id, - })).to.eventually.be.rejected.and.eql({ - code: 400, - error: 'BadRequest', - message: 'Invalid request parameters.', - }); - }); - it('returns error when toUserId is not provided', async () => { await expect(userToSendMessage.post('/members/transfer-gems', { message, @@ -150,4 +139,36 @@ describe('POST /members/transfer-gems', () => { expect(sendersMessageInSendersInbox.text).to.equal(messageSentContent); expect(updatedSender.balance).to.equal(0); }); + + it('does not requrie a message', async () => { + await userToSendMessage.post('/members/transfer-gems', { + gemAmount, + toUserId: receiver._id, + }); + + let updatedReceiver = await receiver.get('/user'); + let updatedSender = await userToSendMessage.get('/user'); + + let sendersMessageInReceiversInbox = _.find(updatedReceiver.inbox.messages, (inboxMessage) => { + return inboxMessage.uuid === userToSendMessage._id; + }); + + let sendersMessageInSendersInbox = _.find(updatedSender.inbox.messages, (inboxMessage) => { + return inboxMessage.uuid === receiver._id; + }); + + let messageSentContent = t('privateMessageGiftIntro', { + receiverName: receiver.profile.name, + senderName: userToSendMessage.profile.name, + }); + messageSentContent += t('privateMessageGiftGemsMessage', {gemAmount}); + + expect(sendersMessageInReceiversInbox).to.exist; + expect(sendersMessageInReceiversInbox.text).to.equal(messageSentContent); + expect(updatedReceiver.balance).to.equal(gemAmount / 4); + + expect(sendersMessageInSendersInbox).to.exist; + expect(sendersMessageInSendersInbox.text).to.equal(messageSentContent); + expect(updatedSender.balance).to.equal(0); + }); }); diff --git a/website/server/controllers/api-v3/members.js b/website/server/controllers/api-v3/members.js index 6078233161..3d6334967d 100644 --- a/website/server/controllers/api-v3/members.js +++ b/website/server/controllers/api-v3/members.js @@ -306,7 +306,6 @@ api.transferGems = { url: '/members/transfer-gems', middlewares: [authWithHeaders()], async handler (req, res) { - req.checkBody('message', res.t('messageRequired')).notEmpty(); req.checkBody('toUserId', res.t('toUserIDRequired')).notEmpty().isUUID(); req.checkBody('gemAmount', res.t('gemAmountRequired')).notEmpty().isInt(); @@ -339,7 +338,10 @@ api.transferGems = { senderName: sender.profile.name, }); message += res.t('privateMessageGiftGemsMessage', {gemAmount}); - message += req.body.message; + + if (req.body.message) { + message += req.body.message; + } await sender.sendMessage(receiver, message);