UNPKG

2.63 kBJavaScriptView Raw
1'use strict'
2/* eslint-env node, mocha */
3/* eslint-disable no-unused-expressions */
4
5const expect = require('chai').expect
6const ActiveDirectory = require('../index')
7const config = require('./config')
8
9let server = require('./mockServer')
10
11describe('Attributes', function () {
12 let ad
13 const settings = require('./settings').findUser
14
15 const defaultAttributes = ActiveDirectory.defaultAttributes.user
16
17 before(function (done) {
18 server(function (s) {
19 server = s
20 done()
21 })
22 })
23
24 function validateAllAttrs (err, user, done) {
25 expect(err).to.be.null
26 expect(user).to.be.an('object')
27
28 const attributes = Object.keys(user)
29 expect(attributes.length).to.be.greaterThan(defaultAttributes.length)
30 done()
31 }
32
33 it('should return default user attributes when not specified', function (done) {
34 ad = new ActiveDirectory(config)
35 ad.findUser(settings.username.userPrincipalName, function (err, user) {
36 expect(err).to.be.null
37 expect(user).to.be.an('object')
38
39 const attributes = Object.keys(user)
40 expect(attributes.length).be.at.least(defaultAttributes.length)
41
42 for (let attr of attributes) {
43 expect(defaultAttributes).to.include(attr)
44 }
45 done()
46 })
47 })
48
49 it('when default attributes contains a wildcard, should return all attributes', function (done) {
50 const localConfig = Object.assign({}, config, {
51 attributes: {
52 user: [ '*' ]
53 }
54 })
55 ad = new ActiveDirectory(localConfig)
56 ad.findUser(settings.username.userPrincipalName, function (err, user) {
57 validateAllAttrs(err, user, done)
58 })
59 })
60
61 it('when default attributes is empty array, should return all attributes', function (done) {
62 const localConfig = Object.assign({}, config, {
63 attributes: {
64 user: [ ]
65 }
66 })
67 ad = new ActiveDirectory(localConfig)
68 ad.findUser(settings.username.userPrincipalName, function (err, user) {
69 validateAllAttrs(err, user, done)
70 })
71 })
72
73 it('when opts.attributes contains a wildcard, should return all attributes', function (done) {
74 const opts = {
75 attributes: [ '*' ]
76 }
77 ad = new ActiveDirectory(config)
78 ad.findUser(opts, settings.username.userPrincipalName, function (err, user) {
79 validateAllAttrs(err, user, done)
80 })
81 })
82
83 it('when opts.attributes is empty array, should return all attributes', function (done) {
84 const opts = {
85 attributes: [ ]
86 }
87 ad = new ActiveDirectory(config)
88 ad.findUser(opts, settings.username.userPrincipalName, function (err, user) {
89 validateAllAttrs(err, user, done)
90 })
91 })
92})