userauthjs
Version:
Node module for management of user/group privileges and sessions
151 lines (134 loc) • 4.5 kB
JavaScript
/*jshint expr: true*/
var expect = require('chai').expect
var userauth = require('../support/userauth')
var testuser
describe('userauth.users', function() {
before(function(done) {
userauth.wipe(done)
})
it('add user', function(done) {
userauth.users.add('testuser', 'password', 'email@example.com', function(err, user) {
if (err) { done(err) }
expect(user).to.be.ok
expect(user).to.have.property('_id')
testuser = user.toJSON()
testuser.password = 'password'
done()
})
})
it('add another user', function(done) {
userauth.users.add('testuser2', 'password', 'email@example.com', function(err, user) {
if (err) { done(err) }
expect(user).to.be.ok
expect(user).to.have.property('_id')
done()
})
})
it('try to add another user with existing username', function(done) {
userauth.users.add('testuser2', 'password', 'email@example.com', function(err, user) {
if (err) { done(err) }
expect(user).to.not.be.ok
done()
})
})
it('rename user', function(done) {
userauth.users.rename(testuser.username, 'renamedtestuser', function(err, user) {
if (err) { done(err) }
expect(user).to.be.ok
expect(user).to.have.property('_id')
expect(user.username).to.equal('renamedtestuser')
testuser.username = user.username
done()
})
})
it('try to rename user to another existing username', function(done) {
userauth.users.rename('testuser2', testuser.username, function(err, user) {
if (err) { done(err) }
expect(user).to.not.be.ok
done()
})
})
it('change user password', function(done) {
userauth.users.changePassword(testuser.username, testuser.password, 'newpassword', function(err, user) {
if (err) { done(err) }
expect(user).to.be.ok
expect(user).to.have.property('_id')
testuser.password = 'newpassword'
done()
})
})
it('try to change user password with wrong password', function(done) {
userauth.users.changePassword(testuser.username, 'wrongpassword', 'newpassword2', function(err, user) {
if (err) { done(err) }
expect(user).to.not.be.ok
done()
})
})
it('change user email', function(done) {
userauth.users.changeEmail(testuser.username, testuser.password, 'newemail@example.com', function(err, user) {
if (err) { done(err) }
expect(user).to.be.ok
expect(user).to.have.property('_id')
expect(user.email).to.equal('newemail@example.com')
testuser.email = 'newemail@example.com'
done()
})
})
it('reset user password (identified by username)', function(done) {
userauth.users.resetPassword(testuser.username, function(err, userinfo) {
if (err) { done(err) }
expect(userinfo).to.be.ok
expect(userinfo).to.have.property('username')
expect(userinfo.username).to.equal(testuser.username)
expect(userinfo).to.have.property('email')
expect(userinfo.email).to.equal(testuser.email)
expect(userinfo).to.have.property('password')
expect(userinfo.password).to.not.equal(testuser.email)
testuser.password = userinfo.password
done()
})
})
it('reset user password (identified by email)', function(done) {
userauth.users.resetPassword(testuser.email, function(err, userinfo) {
if (err) { done(err) }
expect(userinfo).to.be.ok
expect(userinfo).to.have.property('username')
expect(userinfo.username).to.equal(testuser.username)
expect(userinfo).to.have.property('email')
expect(userinfo.email).to.equal(testuser.email)
expect(userinfo).to.have.property('password')
expect(userinfo.password).to.not.equal(testuser.email)
testuser.password = userinfo.password
done()
})
})
it('try to change user email with wrong password', function(done) {
userauth.users.changeEmail('renamedtestuser', 'wrongpassword', 'newemail@example.com', function(err, user) {
if (err) { done(err) }
expect(user).to.not.be.ok
done()
})
})
it('try to remove user with wrong password', function(done) {
userauth.users.remove('renamedtestuser', 'wrongpassword', function(err, user) {
if (err) { done(err) }
expect(user).to.not.be.ok
done()
})
})
it('remove user', function(done) {
userauth.users.remove('renamedtestuser', testuser.password, function(err, user) {
if (err) { done(err) }
expect(user).to.be.ok
expect(user).to.have.property('_id')
done()
})
})
it('try to remove non existing user', function(done) {
userauth.users.remove('renamedtestuser', 'newpassword', function(err, user) {
if (err) { done(err) }
expect(user).to.not.be.ok
done()
})
})
})