mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
d8ff186303
Client and server now have their own tsconfig so that the transpilation is only done on the part that is being modified. It also allows faster transpilation since tests are now excluded from tsconfig. They are compiled by ts-node during unit tests execution.
89 lines
2.1 KiB
TypeScript
89 lines
2.1 KiB
TypeScript
|
|
import assert = require("assert");
|
|
import Sinon = require("sinon");
|
|
import nedb = require("nedb");
|
|
import express = require("express");
|
|
import winston = require("winston");
|
|
import speakeasy = require("speakeasy");
|
|
import u2f = require("u2f");
|
|
import nodemailer = require("nodemailer");
|
|
import session = require("express-session");
|
|
|
|
import { AppConfiguration, UserConfiguration } from "../src/lib/configuration/Configuration";
|
|
import { GlobalDependencies, Nodemailer } from "../types/Dependencies";
|
|
import Server from "../src/lib/Server";
|
|
|
|
|
|
describe("test server configuration", function () {
|
|
let deps: GlobalDependencies;
|
|
let sessionMock: Sinon.SinonSpy;
|
|
|
|
before(function () {
|
|
const transporter = {
|
|
sendMail: Sinon.stub().yields()
|
|
};
|
|
|
|
const createTransport = Sinon.stub(nodemailer, "createTransport");
|
|
createTransport.returns(transporter);
|
|
|
|
sessionMock = Sinon.spy(session);
|
|
|
|
deps = {
|
|
nodemailer: nodemailer,
|
|
speakeasy: speakeasy,
|
|
u2f: u2f,
|
|
nedb: nedb,
|
|
winston: winston,
|
|
ldapjs: {
|
|
createClient: Sinon.spy(function () {
|
|
return {
|
|
on: Sinon.spy(),
|
|
bind: Sinon.spy(),
|
|
};
|
|
})
|
|
},
|
|
session: sessionMock as any,
|
|
ConnectRedis: Sinon.spy(),
|
|
dovehash: Sinon.spy() as any
|
|
};
|
|
});
|
|
|
|
|
|
it("should set cookie scope to domain set in the config", function () {
|
|
const config: UserConfiguration = {
|
|
session: {
|
|
domain: "example.com",
|
|
secret: "secret"
|
|
},
|
|
ldap: {
|
|
url: "http://ldap",
|
|
user: "user",
|
|
password: "password",
|
|
base_dn: "dc=example,dc=com"
|
|
},
|
|
notifier: {
|
|
gmail: {
|
|
username: "user@example.com",
|
|
password: "password"
|
|
}
|
|
},
|
|
regulation: {
|
|
max_retries: 3,
|
|
ban_time: 5 * 60,
|
|
find_time: 5 * 60
|
|
},
|
|
storage: {
|
|
local: {
|
|
in_memory: true
|
|
}
|
|
}
|
|
};
|
|
|
|
const server = new Server();
|
|
server.start(config, deps);
|
|
|
|
assert(sessionMock.calledOnce);
|
|
assert.equal(sessionMock.getCall(0).args[0].cookie.domain, "example.com");
|
|
});
|
|
});
|