authelia/test/inactivity/keep_me_logged_in.ts

48 lines
2.2 KiB
TypeScript
Executable File

import Bluebird = require("bluebird");
import LoginAndRegisterTotp from "../helpers/login-and-register-totp";
import VisitPage from "../helpers/visit-page";
import FillLoginPageWithUserAndPasswordAndClick from "../helpers/fill-login-page-and-click";
import WithDriver from "../helpers/with-driver";
import ValidateTotp from "../helpers/validate-totp";
import WaitRedirected from "../helpers/wait-redirected";
describe("Keep me logged in", function() {
this.timeout(15000);
WithDriver();
before(function() {
const that = this;
return LoginAndRegisterTotp(this.driver, "john", true)
.then(function(secret: string) {
that.secret = secret;
if(!secret) return Bluebird.reject(new Error("No secret!"));
return Bluebird.resolve();
});
});
it("should disconnect user after inactivity period", function() {
const that = this;
const driver = this.driver;
return VisitPage(driver, "https://login.example.com:8080/?rd=https://admin.example.com:8080/secret.html")
.then(() => FillLoginPageWithUserAndPasswordAndClick(driver, 'john', 'password', false))
.then(() => ValidateTotp(driver, that.secret))
.then(() => WaitRedirected(driver, "https://admin.example.com:8080/secret.html"))
.then(() => VisitPage(driver, "https://home.example.com:8080/"))
.then(() => driver.sleep(3000))
.then(() => driver.get("https://admin.example.com:8080/secret.html"))
.then(() => WaitRedirected(driver, "https://login.example.com:8080/?rd=https://admin.example.com:8080/secret.html"))
});
it.only("should keep user logged in after inactivity period", function() {
const that = this;
const driver = this.driver;
return VisitPage(driver, "https://login.example.com:8080/?rd=https://admin.example.com:8080/secret.html")
.then(() => FillLoginPageWithUserAndPasswordAndClick(driver, 'john', 'password', true))
.then(() => ValidateTotp(driver, that.secret))
.then(() => WaitRedirected(driver, "https://admin.example.com:8080/secret.html"))
.then(() => VisitPage(driver, "https://home.example.com:8080/"))
.then(() => driver.sleep(5000))
.then(() => driver.get("https://admin.example.com:8080/secret.html"))
.then(() => WaitRedirected(driver, "https://admin.example.com:8080/secret.html"))
});
});