mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 15:17:25 +01:00
Add additional tests for register route
This commit is contained in:
@@ -98,6 +98,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"chai": "^3.4.0",
|
||||
"chai-as-promised": "^5.1.0",
|
||||
"coffee-coverage": "~0.4.2",
|
||||
"coveralls": "^2.11.2",
|
||||
"csv": "~0.3.6",
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import {requester} from '../../helpers/api.helper';
|
||||
import {
|
||||
generateUser,
|
||||
requester,
|
||||
} from '../../helpers/api.helper';
|
||||
import {v4 as generateRandomUserName} from 'uuid';
|
||||
|
||||
describe('POST /register', () => {
|
||||
let api;
|
||||
|
||||
beforeEach(() => {
|
||||
api = requester();
|
||||
});
|
||||
|
||||
context('username and email are free', () => {
|
||||
it('registers a new user', (done) => {
|
||||
let api = requester();
|
||||
let username = generateRandomUserName();
|
||||
let email = `${username}@example.com`;
|
||||
let password = 'password';
|
||||
@@ -20,12 +20,64 @@ describe('POST /register', () => {
|
||||
confirmPassword: password,
|
||||
}).then((user) => {
|
||||
expect(user._id).to.exist;
|
||||
expect(user.apiToken).to.exist;
|
||||
expect(user.auth.local.username).to.eql(username);
|
||||
expect(user.auth.local.email).to.eql(`${username}@example.com`);
|
||||
done();
|
||||
})
|
||||
.catch((err) => {
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
it('requires password and confirmPassword to match', () => {
|
||||
let api = requester();
|
||||
let username = generateRandomUserName();
|
||||
let email = `${username}@example.com`;
|
||||
let password = 'password';
|
||||
let confirmPassword = 'not password';
|
||||
|
||||
return expect(api.post('/register', {
|
||||
username: username,
|
||||
email: email,
|
||||
password: password,
|
||||
confirmPassword: confirmPassword,
|
||||
})).to.be.rejectedWith(':password and :confirmPassword don\'t match');
|
||||
});
|
||||
});
|
||||
|
||||
context('login is already taken', () => {
|
||||
let username, email;
|
||||
beforeEach(() => {
|
||||
username = generateRandomUserName();
|
||||
email = `${username}@example.com`;
|
||||
return generateUser({
|
||||
'auth.local.username': username,
|
||||
'auth.local.lowerCaseUsername': username,
|
||||
'auth.local.email': email
|
||||
});
|
||||
});
|
||||
|
||||
it('rejects if username is already taken', () => {
|
||||
let api = requester();
|
||||
let uniqueEmail = `${generateRandomUserName()}@exampe.com`;
|
||||
let password = 'password';
|
||||
|
||||
return expect(api.post('/register', {
|
||||
username: username,
|
||||
email: uniqueEmail,
|
||||
password: password,
|
||||
confirmPassword: password,
|
||||
})).to.be.rejectedWith('Username already taken');
|
||||
});
|
||||
|
||||
it('rejects if email is already taken', () => {
|
||||
let api = requester();
|
||||
let uniqueUsername = generateRandomUserName();
|
||||
let password = 'password';
|
||||
|
||||
return expect(api.post('/register', {
|
||||
username: uniqueUsername,
|
||||
email: email,
|
||||
password: password,
|
||||
confirmPassword: password,
|
||||
})).to.be.rejectedWith('Email already taken');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -5,4 +5,5 @@
|
||||
global._ = require("lodash")
|
||||
global.chai = require("chai")
|
||||
chai.use(require("sinon-chai"))
|
||||
chai.use(require("chai-as-promised"));
|
||||
global.expect = chai.expect
|
||||
|
||||
Reference in New Issue
Block a user