mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 06:37:23 +01:00
add tests for req.query.groupInvite
This commit is contained in:
@@ -2,9 +2,11 @@ import {
|
|||||||
generateUser,
|
generateUser,
|
||||||
requester,
|
requester,
|
||||||
translate as t,
|
translate as t,
|
||||||
|
createAndPopulateGroup,
|
||||||
} from '../../../../../helpers/api-integration/v3';
|
} from '../../../../../helpers/api-integration/v3';
|
||||||
import { v4 as generateRandomUserName } from 'uuid';
|
import { v4 as generateRandomUserName } from 'uuid';
|
||||||
import { each } from 'lodash';
|
import { each } from 'lodash';
|
||||||
|
import { encrypt } from '../../../../../../website/src/libs/api-v3/encryption';
|
||||||
|
|
||||||
describe('POST /user/auth/local/register', () => {
|
describe('POST /user/auth/local/register', () => {
|
||||||
context('username and email are free', () => {
|
context('username and email are free', () => {
|
||||||
@@ -162,6 +164,53 @@ describe('POST /user/auth/local/register', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
context('req.query.groupInvite', () => {
|
||||||
|
let api, username, email, password;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
api = requester();
|
||||||
|
username = generateRandomUserName();
|
||||||
|
email = `${username}@example.com`;
|
||||||
|
password = 'password';
|
||||||
|
});
|
||||||
|
|
||||||
|
it('does not crash the signup process when it\'s invalid', async () => {
|
||||||
|
let user = await api.post('/user/auth/local/register?groupInvite=aaaaInvalid', {
|
||||||
|
username,
|
||||||
|
email,
|
||||||
|
password,
|
||||||
|
confirmPassword: password,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(user._id).to.be.a('string');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('supports invite using req.query.groupInvite', async () => {
|
||||||
|
let { group, groupLeader } = await createAndPopulateGroup({
|
||||||
|
groupDetails: { type: 'party', privacy: 'private' },
|
||||||
|
});
|
||||||
|
|
||||||
|
let invite = encrypt(JSON.stringify({
|
||||||
|
id: group._id,
|
||||||
|
inviter: groupLeader._id,
|
||||||
|
sentAt: Date.now(), // so we can let it expire
|
||||||
|
}));
|
||||||
|
|
||||||
|
let user = await api.post(`/user/auth/local/register?groupInvite=${invite}`, {
|
||||||
|
username,
|
||||||
|
email,
|
||||||
|
password,
|
||||||
|
confirmPassword: password,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(user.invitations.party).to.eql({
|
||||||
|
id: group._id,
|
||||||
|
name: group.name,
|
||||||
|
inviter: groupLeader._id,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
context('successful login via api', () => {
|
context('successful login via api', () => {
|
||||||
let api, username, email, password;
|
let api, username, email, password;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user