mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 15:48:04 +01:00
fix tests for /members/transfer-gems
This commit is contained in:
@@ -9,14 +9,13 @@ describe('POST /members/transfer-gems', () => {
|
|||||||
let receiver;
|
let receiver;
|
||||||
let message = 'Test Private Message';
|
let message = 'Test Private Message';
|
||||||
let gemAmount = 20;
|
let gemAmount = 20;
|
||||||
let giftType = 'gems';
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
userToSendMessage = await generateUser({balance: 5});
|
userToSendMessage = await generateUser({balance: 5});
|
||||||
receiver = await generateUser();
|
receiver = await generateUser();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('returns error when giftType is not provided', async () => {
|
it('returns error when no parameters are provided', async () => {
|
||||||
await expect(userToSendMessage.post('/members/transfer-gems'))
|
await expect(userToSendMessage.post('/members/transfer-gems'))
|
||||||
.to.eventually.be.rejected.and.eql({
|
.to.eventually.be.rejected.and.eql({
|
||||||
code: 400,
|
code: 400,
|
||||||
@@ -26,10 +25,10 @@ describe('POST /members/transfer-gems', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('returns error when message is not provided', async () => {
|
it('returns error when message is not provided', async () => {
|
||||||
await expect(userToSendMessage.post('/members/transfer-gems'), {
|
await expect(userToSendMessage.post('/members/transfer-gems', {
|
||||||
giftType,
|
gemAmount,
|
||||||
message,
|
toUserId: receiver._id,
|
||||||
}).to.eventually.be.rejected.and.eql({
|
})).to.eventually.be.rejected.and.eql({
|
||||||
code: 400,
|
code: 400,
|
||||||
error: 'BadRequest',
|
error: 'BadRequest',
|
||||||
message: 'Invalid request parameters.',
|
message: 'Invalid request parameters.',
|
||||||
@@ -38,8 +37,8 @@ describe('POST /members/transfer-gems', () => {
|
|||||||
|
|
||||||
it('returns error when toUserId is not provided', async () => {
|
it('returns error when toUserId is not provided', async () => {
|
||||||
await expect(userToSendMessage.post('/members/transfer-gems', {
|
await expect(userToSendMessage.post('/members/transfer-gems', {
|
||||||
giftType,
|
|
||||||
message,
|
message,
|
||||||
|
gemAmount,
|
||||||
})).to.eventually.be.rejected.and.eql({
|
})).to.eventually.be.rejected.and.eql({
|
||||||
code: 400,
|
code: 400,
|
||||||
error: 'BadRequest',
|
error: 'BadRequest',
|
||||||
@@ -49,8 +48,8 @@ describe('POST /members/transfer-gems', () => {
|
|||||||
|
|
||||||
it('returns error when to user is not found', async () => {
|
it('returns error when to user is not found', async () => {
|
||||||
await expect(userToSendMessage.post('/members/transfer-gems', {
|
await expect(userToSendMessage.post('/members/transfer-gems', {
|
||||||
giftType,
|
|
||||||
message,
|
message,
|
||||||
|
gemAmount,
|
||||||
toUserId: generateUUID(),
|
toUserId: generateUUID(),
|
||||||
})).to.eventually.be.rejected.and.eql({
|
})).to.eventually.be.rejected.and.eql({
|
||||||
code: 404,
|
code: 404,
|
||||||
@@ -61,8 +60,8 @@ describe('POST /members/transfer-gems', () => {
|
|||||||
|
|
||||||
it('returns error when to user attempts to send gems to themselves', async () => {
|
it('returns error when to user attempts to send gems to themselves', async () => {
|
||||||
await expect(userToSendMessage.post('/members/transfer-gems', {
|
await expect(userToSendMessage.post('/members/transfer-gems', {
|
||||||
giftType,
|
|
||||||
message,
|
message,
|
||||||
|
gemAmount,
|
||||||
toUserId: userToSendMessage._id,
|
toUserId: userToSendMessage._id,
|
||||||
})).to.eventually.be.rejected.and.eql({
|
})).to.eventually.be.rejected.and.eql({
|
||||||
code: 401,
|
code: 401,
|
||||||
@@ -71,21 +70,31 @@ describe('POST /members/transfer-gems', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('returns error when there is no amount', async () => {
|
it('returns error when there is no gemAmount', async () => {
|
||||||
await expect(userToSendMessage.post('/members/transfer-gems', {
|
await expect(userToSendMessage.post('/members/transfer-gems', {
|
||||||
giftType,
|
|
||||||
message,
|
message,
|
||||||
toUserId: receiver._id,
|
toUserId: receiver._id,
|
||||||
})).to.eventually.be.rejected.and.eql({
|
})).to.eventually.be.rejected.and.eql({
|
||||||
code: 401,
|
code: 400,
|
||||||
error: 'NotAuthorized',
|
error: 'BadRequest',
|
||||||
message: t('badAmountOfGemsToSend'),
|
message: 'Invalid request parameters.',
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns error when gemAmount is not an integer', async () => {
|
||||||
|
await expect(userToSendMessage.post('/members/transfer-gems', {
|
||||||
|
message,
|
||||||
|
gemAmount: 1.5,
|
||||||
|
toUserId: receiver._id,
|
||||||
|
})).to.eventually.be.rejected.and.eql({
|
||||||
|
code: 400,
|
||||||
|
error: 'BadRequest',
|
||||||
|
message: 'Invalid request parameters.',
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('returns error when gemAmount is negative', async () => {
|
it('returns error when gemAmount is negative', async () => {
|
||||||
await expect(userToSendMessage.post('/members/transfer-gems', {
|
await expect(userToSendMessage.post('/members/transfer-gems', {
|
||||||
giftType,
|
|
||||||
message,
|
message,
|
||||||
gemAmount: -5,
|
gemAmount: -5,
|
||||||
toUserId: receiver._id,
|
toUserId: receiver._id,
|
||||||
@@ -98,7 +107,6 @@ describe('POST /members/transfer-gems', () => {
|
|||||||
|
|
||||||
it('returns error when gemAmount is more than the sender\'s balance', async () => {
|
it('returns error when gemAmount is more than the sender\'s balance', async () => {
|
||||||
await expect(userToSendMessage.post('/members/transfer-gems', {
|
await expect(userToSendMessage.post('/members/transfer-gems', {
|
||||||
giftType,
|
|
||||||
message,
|
message,
|
||||||
gemAmount: gemAmount + 4,
|
gemAmount: gemAmount + 4,
|
||||||
toUserId: receiver._id,
|
toUserId: receiver._id,
|
||||||
@@ -111,7 +119,6 @@ describe('POST /members/transfer-gems', () => {
|
|||||||
|
|
||||||
it('sends a private message about gems to a user', async () => {
|
it('sends a private message about gems to a user', async () => {
|
||||||
await userToSendMessage.post('/members/transfer-gems', {
|
await userToSendMessage.post('/members/transfer-gems', {
|
||||||
giftType,
|
|
||||||
message,
|
message,
|
||||||
gemAmount,
|
gemAmount,
|
||||||
toUserId: receiver._id,
|
toUserId: receiver._id,
|
||||||
|
|||||||
@@ -325,7 +325,7 @@ api.transferGems = {
|
|||||||
let gemAmount = req.body.gemAmount;
|
let gemAmount = req.body.gemAmount;
|
||||||
let amount = gemAmount / 4;
|
let amount = gemAmount / 4;
|
||||||
|
|
||||||
if (!amount || amount <= 0 || sender.balance < amount) {
|
if (amount <= 0 || sender.balance < amount) {
|
||||||
throw new NotAuthorized(res.t('badAmountOfGemsToSend'));
|
throw new NotAuthorized(res.t('badAmountOfGemsToSend'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user