authelia/test/helpers/ValidateTotp.ts

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();
}