mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-15 21:57:22 +01:00
* shared model for chat and inbox * disable inbox schema * inbox: use separate model * remove old code that used group.chat * add back chat field (not used) and remove old tests * remove inbox exclusions when loading user * add GET /api/v3/inbox/messages * add comment * implement DELETE /inbox/messages/:messageid in v4 * implement GET /inbox/messages in v4 and update tests * implement DELETE /api/v4/inbox/clear * fix url * fix doc * update /export/inbox.html * update other data exports * add back messages in user schema * add user.toJSONWithInbox * add compativility until migration is done * more compatibility * fix tojson called twice * add compatibility methods * fix common tests * fix v4 integration tests * v3 get user -> with inbox * start to fix tests * fix v3 integration tests * wip * wip, client use new route * update tests for members/send-private-message * tests for get user in v4 * add tests for DELETE /inbox/messages/:messageId * add tests for DELETE /inbox/clear in v4 * update docs * fix tests * initial migration * fix migration * fix migration * migration fixes * migrate api.enterCouponCode * migrate api.castSpell * migrate reset, reroll, rebirth * add routes to v4 version * fix tests * fixes * api.updateUser * remove .only * get user -> userLib * refactor inbox.vue to work with new data model * fix return message when messaging yourself * wip fix bug with new conversation * wip * fix remaining ui issues * move api.registerLocal, fixes * keep only v3 version of GET /inbox/messages
59 lines
1.9 KiB
JavaScript
59 lines
1.9 KiB
JavaScript
import {
|
|
generateUser,
|
|
} from '../../../helpers/api-integration/v4';
|
|
import common from '../../../../website/common';
|
|
|
|
describe('GET /user', () => {
|
|
let user;
|
|
|
|
before(async () => {
|
|
user = await generateUser();
|
|
});
|
|
|
|
it('returns the authenticated user with computed stats', async () => {
|
|
let returnedUser = await user.get('/user');
|
|
expect(returnedUser._id).to.equal(user._id);
|
|
|
|
expect(returnedUser.stats.maxMP).to.exist;
|
|
expect(returnedUser.stats.maxHealth).to.equal(common.maxHealth);
|
|
expect(returnedUser.stats.toNextLevel).to.equal(common.tnl(returnedUser.stats.lvl));
|
|
});
|
|
|
|
it('does not return private paths (and apiToken)', async () => {
|
|
let returnedUser = await user.get('/user');
|
|
|
|
expect(returnedUser.auth.local.hashed_password).to.not.exist;
|
|
expect(returnedUser.auth.local.passwordHashMethod).to.not.exist;
|
|
expect(returnedUser.auth.local.salt).to.not.exist;
|
|
expect(returnedUser.apiToken).to.not.exist;
|
|
});
|
|
|
|
it('returns only user properties requested', async () => {
|
|
let returnedUser = await user.get('/user?userFields=achievements,items.mounts');
|
|
|
|
expect(returnedUser._id).to.equal(user._id);
|
|
expect(returnedUser.achievements).to.exist;
|
|
expect(returnedUser.items.mounts).to.exist;
|
|
// Notifications are always returned
|
|
expect(returnedUser.notifications).to.exist;
|
|
expect(returnedUser.stats).to.not.exist;
|
|
});
|
|
|
|
it('does not return new inbox messages', async () => {
|
|
const otherUser = await generateUser();
|
|
|
|
await otherUser.post('/members/send-private-message', {
|
|
toUserId: user.id,
|
|
message: 'first',
|
|
});
|
|
await otherUser.post('/members/send-private-message', {
|
|
toUserId: user.id,
|
|
message: 'second',
|
|
});
|
|
let returnedUser = await user.get('/user');
|
|
|
|
expect(returnedUser._id).to.equal(user._id);
|
|
expect(returnedUser.inbox.messages).to.be.empty;
|
|
});
|
|
});
|