userauthjs
Version:
Node module for management of user/group privileges and sessions
145 lines (129 loc) • 4.44 kB
JavaScript
/*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()
})
})
})