1 | 'use strict'
|
2 |
|
3 |
|
4 |
|
5 | const expect = require('chai').expect
|
6 | const ActiveDirectory = require('../index')
|
7 | const config = require('./config')
|
8 |
|
9 | let server = require('./mockServer')
|
10 |
|
11 | describe('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 | })
|