UNPKG

userauthjs

Version:

Node module for management of user/group privileges and sessions

151 lines (134 loc) 4.5 kB
/*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() }) }) })