45 lines
1.6 KiB
TypeScript
45 lines
1.6 KiB
TypeScript
|
|
||
|
import { LdapConfiguration } from "../../src/lib/configuration/Configuration";
|
||
|
import { Client } from "../../src/lib/ldap/Client";
|
||
|
import { LdapClientFactoryStub } from "../mocks/ldap/LdapClientFactoryStub";
|
||
|
import { LdapClientStub } from "../mocks/ldap/LdapClientStub";
|
||
|
|
||
|
import Sinon = require("sinon");
|
||
|
import BluebirdPromise = require("bluebird");
|
||
|
import Assert = require("assert");
|
||
|
import Dovehash = require("dovehash");
|
||
|
import Winston = require("winston");
|
||
|
|
||
|
describe("test authelia ldap client", function () {
|
||
|
const USERNAME = "username";
|
||
|
const ADMIN_USER_DN = "cn=admin,dc=example,dc=com";
|
||
|
const ADMIN_PASSWORD = "password";
|
||
|
|
||
|
it("should replace {0} by username when searching for groups in LDAP", function () {
|
||
|
const options: LdapConfiguration = {
|
||
|
url: "ldap://ldap",
|
||
|
users_dn: "ou=users,dc=example,dc=com",
|
||
|
users_filter: "cn={0}",
|
||
|
groups_dn: "ou=groups,dc=example,dc=com",
|
||
|
groups_filter: "member=cn={0},ou=users,dc=example,dc=com",
|
||
|
group_name_attribute: "cn",
|
||
|
mail_attribute: "mail",
|
||
|
user: "cn=admin,dc=example,dc=com",
|
||
|
password: "password"
|
||
|
};
|
||
|
const factory = new LdapClientFactoryStub();
|
||
|
const ldapClient = new LdapClientStub();
|
||
|
|
||
|
factory.createStub.returns(ldapClient);
|
||
|
ldapClient.searchAsyncStub.returns(BluebirdPromise.resolve([
|
||
|
"group1"
|
||
|
]));
|
||
|
const client = new Client(ADMIN_USER_DN, ADMIN_PASSWORD, options, factory, Dovehash, Winston);
|
||
|
|
||
|
return client.searchGroups("user1")
|
||
|
.then(function () {
|
||
|
Assert.equal(ldapClient.searchAsyncStub.getCall(0).args[1].filter,
|
||
|
"member=cn=user1,ou=users,dc=example,dc=com");
|
||
|
});
|
||
|
});
|
||
|
});
|