2017-05-16 21:17:46 +00:00
|
|
|
|
2017-10-16 22:35:34 +00:00
|
|
|
import Assert = require("assert");
|
2017-07-16 15:37:13 +00:00
|
|
|
import Sinon = require("sinon");
|
2017-05-16 21:17:46 +00:00
|
|
|
import nedb = require("nedb");
|
2017-05-20 17:16:57 +00:00
|
|
|
import express = require("express");
|
|
|
|
import winston = require("winston");
|
|
|
|
import speakeasy = require("speakeasy");
|
2017-05-25 13:09:29 +00:00
|
|
|
import u2f = require("u2f");
|
2017-05-20 17:16:57 +00:00
|
|
|
import session = require("express-session");
|
2017-10-06 22:09:42 +00:00
|
|
|
import { AppConfiguration, UserConfiguration } from "../src/lib/configuration/Configuration";
|
2017-10-07 22:46:57 +00:00
|
|
|
import { GlobalDependencies } from "../types/Dependencies";
|
2017-10-06 22:09:42 +00:00
|
|
|
import Server from "../src/lib/Server";
|
2018-04-26 21:20:10 +00:00
|
|
|
import { LdapjsMock, LdapjsClientMock } from "./mocks/ldapjs";
|
2017-05-16 21:17:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
describe("test server configuration", function () {
|
|
|
|
let deps: GlobalDependencies;
|
2017-07-16 15:37:13 +00:00
|
|
|
let sessionMock: Sinon.SinonSpy;
|
2018-04-26 21:20:10 +00:00
|
|
|
let ldapjsMock: LdapjsMock;
|
2017-05-16 21:17:46 +00:00
|
|
|
|
|
|
|
before(function () {
|
2017-07-16 15:37:13 +00:00
|
|
|
sessionMock = Sinon.spy(session);
|
2018-04-26 21:20:10 +00:00
|
|
|
ldapjsMock = new LdapjsMock();
|
2017-05-16 21:17:46 +00:00
|
|
|
|
|
|
|
deps = {
|
|
|
|
speakeasy: speakeasy,
|
|
|
|
u2f: u2f,
|
|
|
|
nedb: nedb,
|
|
|
|
winston: winston,
|
2018-04-26 21:20:10 +00:00
|
|
|
ldapjs: ldapjsMock as any,
|
2017-06-29 17:41:05 +00:00
|
|
|
session: sessionMock as any,
|
2018-04-26 21:20:10 +00:00
|
|
|
ConnectRedis: Sinon.spy(),
|
|
|
|
Redis: Sinon.spy() as any
|
2017-05-16 21:17:46 +00:00
|
|
|
};
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
it("should set cookie scope to domain set in the config", function () {
|
2017-07-19 19:06:12 +00:00
|
|
|
const config: UserConfiguration = {
|
2017-05-16 21:17:46 +00:00
|
|
|
session: {
|
|
|
|
domain: "example.com",
|
|
|
|
secret: "secret"
|
|
|
|
},
|
|
|
|
ldap: {
|
|
|
|
url: "http://ldap",
|
|
|
|
user: "user",
|
2017-07-19 19:06:12 +00:00
|
|
|
password: "password",
|
|
|
|
base_dn: "dc=example,dc=com"
|
2017-05-16 21:17:46 +00:00
|
|
|
},
|
|
|
|
notifier: {
|
2017-10-25 08:28:56 +00:00
|
|
|
email: {
|
2017-05-20 07:49:05 +00:00
|
|
|
username: "user@example.com",
|
2017-10-09 22:07:12 +00:00
|
|
|
password: "password",
|
2017-10-25 08:28:56 +00:00
|
|
|
sender: "test@authelia.com",
|
|
|
|
service: "gmail"
|
2017-05-16 21:17:46 +00:00
|
|
|
}
|
2017-07-19 19:06:12 +00:00
|
|
|
},
|
2017-09-02 23:25:43 +00:00
|
|
|
regulation: {
|
|
|
|
max_retries: 3,
|
|
|
|
ban_time: 5 * 60,
|
|
|
|
find_time: 5 * 60
|
|
|
|
},
|
2017-07-19 19:06:12 +00:00
|
|
|
storage: {
|
|
|
|
local: {
|
|
|
|
in_memory: true
|
|
|
|
}
|
2017-05-16 21:17:46 +00:00
|
|
|
}
|
2017-07-19 19:06:12 +00:00
|
|
|
};
|
2017-05-16 21:17:46 +00:00
|
|
|
|
2017-10-07 22:46:57 +00:00
|
|
|
const server = new Server(deps);
|
2017-10-16 22:35:34 +00:00
|
|
|
server.start(config, deps)
|
|
|
|
.then(function () {
|
|
|
|
Assert(sessionMock.calledOnce);
|
|
|
|
Assert.equal(sessionMock.getCall(0).args[0].cookie.domain, "example.com");
|
2018-03-28 22:04:59 +00:00
|
|
|
server.stop();
|
2017-10-16 22:35:34 +00:00
|
|
|
});
|
2017-05-16 21:17:46 +00:00
|
|
|
});
|
|
|
|
});
|