64 lines
2.2 KiB
TypeScript
64 lines
2.2 KiB
TypeScript
|
import SecondFactorGet from "../../../src/lib/routes/secondfactor/get";
|
||
|
import { ServerVariablesMockBuilder, ServerVariablesMock }
|
||
|
from "../../mocks/ServerVariablesMockBuilder";
|
||
|
import { ServerVariables } from "../../../src/lib/ServerVariables";
|
||
|
import Sinon = require("sinon");
|
||
|
import ExpressMock = require("../../mocks/express");
|
||
|
import Assert = require("assert");
|
||
|
import Endpoints = require("../../../../shared/api");
|
||
|
import BluebirdPromise = require("bluebird");
|
||
|
|
||
|
describe("test second factor GET endpoint handler", function () {
|
||
|
let mocks: ServerVariablesMock;
|
||
|
let vars: ServerVariables;
|
||
|
let req: ExpressMock.RequestMock;
|
||
|
let res: ExpressMock.ResponseMock;
|
||
|
|
||
|
beforeEach(function () {
|
||
|
const s = ServerVariablesMockBuilder.build(true);
|
||
|
mocks = s.mocks;
|
||
|
vars = s.variables;
|
||
|
|
||
|
req = ExpressMock.RequestMock();
|
||
|
res = ExpressMock.ResponseMock();
|
||
|
|
||
|
req.session = {
|
||
|
auth: {
|
||
|
userid: "user",
|
||
|
first_factor: true,
|
||
|
second_factor: false
|
||
|
}
|
||
|
};
|
||
|
});
|
||
|
|
||
|
describe("test redirection", function () {
|
||
|
it("should redirect to already logged in page if server is in single_factor mode", function () {
|
||
|
vars.config.authentication_methods.default_method = "single_factor";
|
||
|
return SecondFactorGet(vars)(req as any, res as any)
|
||
|
.then(function () {
|
||
|
Assert(res.redirect.calledWith(Endpoints.LOGGED_IN));
|
||
|
return BluebirdPromise.resolve();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it("should redirect to already logged in page if user already authenticated", function () {
|
||
|
vars.config.authentication_methods.default_method = "two_factor";
|
||
|
req.session.auth.second_factor = true;
|
||
|
return SecondFactorGet(vars)(req as any, res as any)
|
||
|
.then(function () {
|
||
|
Assert(res.redirect.calledWith(Endpoints.LOGGED_IN));
|
||
|
return BluebirdPromise.resolve();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it("should render second factor page", function () {
|
||
|
vars.config.authentication_methods.default_method = "two_factor";
|
||
|
req.session.auth.second_factor = false;
|
||
|
return SecondFactorGet(vars)(req as any, res as any)
|
||
|
.then(function () {
|
||
|
Assert(res.render.calledWith("secondfactor"));
|
||
|
return BluebirdPromise.resolve();
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|