ad-promise
Version:
This is a fork of the gheeres node-activedirectory. It fixes some issues with timeouts with very large AD-Groups as well as returning also promises so you won't have to use callbacks
67 lines (63 loc) • 2.59 kB
JavaScript
var assert = require('assert');
var _ = require('underscore');
var ActiveDirectory = require('../index');
var config = require('./config');
describe('ActiveDirectory', function() {
var settings = require('./settings').ctor;
describe('#ctor()', function() {
it('should support legacy parameters (url, baseDN, username, password)', function(done) {
var ad = new ActiveDirectory(config.url, config.baseDN, config.username, config.password);
assert.equal(config.baseDN, ad.baseDN);
assert.equal(config.url, ad.opts.url);
assert.equal(config.username, ad.opts.bindDN);
assert.equal(config.password, ad.opts.bindCredentials);
done();
});
it('should set parameters from configuration object', function(done) {
var ad = new ActiveDirectory(config);
assert.equal(config.baseDN, ad.baseDN);
assert.equal(config.url, ad.opts.url);
assert.equal(config.username, ad.opts.bindDN);
assert.equal(config.password, ad.opts.bindCredentials);
done();
});
it('should set opts.maxConnections = 20', function(done) {
var ad = new ActiveDirectory(config);
assert.equal(20, ad.opts.maxConnections);
done();
});
it('should replace default user attributes if specified', function(done) {
var ad = new ActiveDirectory(_.extend({}, config, {
attributes: {
user: [ 'mycustomuserattribute' ]
}
}));
var defaultAttributes = ad._getDefaultAttributes() || {};
assert.equal(1, (defaultAttributes.user || []).length);
assert((defaultAttributes.group || []).length > 0);
done();
});
it('should replace default group attributes if specified', function(done) {
var ad = new ActiveDirectory(_.extend({}, config, {
attributes: {
group: [ 'mycustomgroupattribute' ]
}
}));
var defaultAttributes = ad._getDefaultAttributes() || {};
assert.equal(1, (defaultAttributes.group || []).length);
assert((defaultAttributes.user || []).length > 0);
done();
});
it('should throw an InvalidCredentialsError exception if the username/password are incorrect.', function(done) {
var ad = new ActiveDirectory(_.extend({}, config, {
password: 'TheWrongPassword!',
username: 'AnInvalidUsername',
}));
ad.findUser('unknown', function(err, user) {
assert.notEqual(null, err);
assert.equal(err.name, 'InvalidCredentialsError');
done();
});
});
});
});