UNPKG

userauthjs

Version:

Node module for management of user/group privileges and sessions

145 lines (129 loc) 4.44 kB
/*jshint expr: true*/ var expect = require('chai').expect var userauth = require('../support/userauth') var testuser, testgroup describe('userauth.privileges', function() { before(function(done) { userauth.wipe(function() { userauth.users.add('testuser', 'password', 'email@example.com', function(err, user) { if (err) { throw new Error(err) } if (user) { testuser = user } userauth.usergroups.add('testgroup', function(err, usergroup) { if (err) { throw new Error(err) } if (usergroup) { testgroup = usergroup } done() }) }) }) }) it('add privilege', function(done) { expect(userauth.privileges.add('testPrivilege', function(err, privilege) { expect(privilege).to.have.property('title') done(err) })) }) it('modify privilege description', function(done) { var description = 'This is a test description' userauth.privileges.modify('testPrivilege', undefined, description, function(err, privilege) { if (err) { done(err) } expect(privilege).to.be.ok expect(privilege).to.have.property('description') expect(privilege.description).to.equal(description) done() }) }) it('modify privilege title with same title', function(done) { var description = 'This is a test description' userauth.privileges.modify('testPrivilege', 'testPrivilege', description, function(err, privilege) { if (err) { done(err) } expect(privilege).to.be.ok expect(privilege).to.have.property('description') expect(privilege.description).to.equal(description) done() }) }) it('modify privilege title with new title', function(done) { var description = 'This is a test description' userauth.privileges.modify('testPrivilege', 'testPrivilege23', description, function(err, privilege) { if (err) { done(err) } expect(privilege).to.be.ok expect(privilege).to.have.property('description') expect(privilege.description).to.equal(description) done() }) }) it('modify privilege title back to old title', function(done) { var description = 'This is a test description' userauth.privileges.modify('testPrivilege23', 'testPrivilege', description, function(err, privilege) { if (err) { done(err) } expect(privilege).to.be.ok expect(privilege).to.have.property('description') expect(privilege.description).to.equal(description) done() }) }) it('get privilege by title', function(done) { userauth.privileges.getPrivilegeByTitle('testPrivilege', function(err, privilege) { if (err) { done(err) } expect(privilege).to.be.ok expect(privilege).to.have.property('description') done() }) }) it('add user to privilege', function(done) { userauth.privileges.addUser(testuser._id, 'testPrivilege', function(err, privilege) { if (err) { done(err) } expect(privilege).to.be.ok expect(privilege).to.have.property('users') expect(privilege.users).to.include(testuser._id) done() }) }) it('add usergroup to privilege', function(done) { userauth.privileges.addUsergroup('testgroup', 'testPrivilege', function(err, privilege) { if (err) { done(err) } expect(privilege).to.be.ok expect(privilege).to.have.property('usergroups') expect(privilege.usergroups).to.include(testgroup._id) done() }) }) it('remove user from privilege', function(done) { userauth.privileges.removeUser(testuser._id, 'testPrivilege', function(err, privilege) { if (err) { done(err) } expect(privilege).to.be.ok expect(privilege).to.have.property('users') expect(privilege.users).to.not.include(testuser._id) done() }) }) it('remove usergroup from privilege', function(done) { userauth.privileges.removeUsergroup('testgroup', 'testPrivilege', function(err, privilege) { if (err) { done(err) } expect(privilege).to.be.ok expect(privilege).to.have.property('usergroups') expect(privilege.usergroups).to.not.include(testgroup._id) done() }) }) it('remove privilege', function(done) { userauth.privileges.remove('testPrivilege', function(err, privilege) { if (err) { done(err) } expect(privilege).to.be.ok expect(privilege).to.have.property('title') expect(privilege.title).to.equal('testPrivilege') done() }) }) it('try to remove non existing privilege', function(done) { userauth.privileges.remove('testPrivilege', function(err, privilege) { if (err) { done(err) } expect(privilege).to.be.not.ok done() }) }) })