mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-14 05:07:22 +01:00
70 lines
2.3 KiB
JavaScript
70 lines
2.3 KiB
JavaScript
import range from 'lodash/range';
|
|
import {
|
|
generateUser,
|
|
} from '../../../../helpers/api-integration/v3';
|
|
import common from '../../../../../website/common';
|
|
|
|
describe('GET /user', () => {
|
|
let user;
|
|
|
|
before(async () => {
|
|
user = await generateUser();
|
|
});
|
|
|
|
it('returns the authenticated user with computed stats', async () => {
|
|
const 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 () => {
|
|
const 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;
|
|
expect(returnedUser.secret).to.not.exist;
|
|
});
|
|
|
|
it('returns only user properties requested', async () => {
|
|
const 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 requested private properties', async () => {
|
|
const returnedUser = await user.get('/user?userFields=apiToken,secret.text');
|
|
|
|
expect(returnedUser.apiToken).to.not.exist;
|
|
expect(returnedUser.secret).to.not.exist;
|
|
});
|
|
|
|
it('returns the full inbox', async () => {
|
|
const otherUser = await generateUser();
|
|
const amountOfMessages = 12;
|
|
|
|
const allMessagesPromise = range(amountOfMessages)
|
|
.map(i => otherUser.post('/members/send-private-message', {
|
|
toUserId: user.id,
|
|
message: `Message Num: ${i}`,
|
|
}));
|
|
|
|
await Promise.all(allMessagesPromise);
|
|
|
|
const returnedUser = await user.get('/user');
|
|
|
|
expect(returnedUser._id).to.equal(user._id);
|
|
expect(returnedUser.inbox).to.exist;
|
|
expect(Object.keys(returnedUser.inbox.messages)).to.have.a.lengthOf(amountOfMessages);
|
|
});
|
|
});
|