authelia/test/helpers/ValidateTotp.ts
Clement Michaud 76fa325f08 [BREAKING] Create a suite for kubernetes tests.
Authelia client uses hash router instead of browser router in order to work
with Kubernetes nginx-ingress-controller. This is also better for users having
old browsers.

This commit is breaking because it requires to change the configuration of the
proxy to include the # in the URL of the login portal.
2019-03-16 00:13:27 +01:00

16 lines
614 B
TypeScript

import Speakeasy from "speakeasy";
import SeleniumWebdriver, { WebDriver } from 'selenium-webdriver';
export default async function(driver: WebDriver, secret: string, timeout: number = 5000) {
const token = Speakeasy.totp({
secret: secret,
encoding: "base32"
});
await driver.wait(SeleniumWebdriver.until.elementLocated(
SeleniumWebdriver.By.id("totp-token")), timeout)
await driver.findElement(SeleniumWebdriver.By.id("totp-token")).sendKeys(token);
const el = await driver.wait(SeleniumWebdriver.until.elementLocated(SeleniumWebdriver.By.id('totp-button')), timeout);
el.click();
}