2018-08-26 15:30:43 +07:00
|
|
|
require("chromedriver");
|
|
|
|
import Bluebird = require("bluebird");
|
|
|
|
import ChildProcess = require("child_process");
|
|
|
|
|
|
|
|
import WithDriver from '../helpers/with-driver';
|
|
|
|
import VisitPage from '../helpers/visit-page';
|
|
|
|
import ClickOnLink from '../helpers/click-on-link';
|
|
|
|
import ClickOnButton from '../helpers/click-on-button';
|
|
|
|
import WaitRedirect from '../helpers/wait-redirected';
|
|
|
|
import FillField from "../helpers/fill-field";
|
2018-11-16 04:29:02 +07:00
|
|
|
import {GetLinkFromEmail} from "../helpers/get-identity-link";
|
2018-08-26 15:30:43 +07:00
|
|
|
import FillLoginPageAndClick from "../helpers/fill-login-page-and-click";
|
|
|
|
|
|
|
|
const execAsync = Bluebird.promisify(ChildProcess.exec);
|
|
|
|
|
|
|
|
describe('Reset password', function() {
|
|
|
|
this.timeout(10000);
|
|
|
|
WithDriver();
|
|
|
|
|
|
|
|
after(() => {
|
|
|
|
return execAsync("cp users_database.yml users_database.test.yml");
|
|
|
|
})
|
|
|
|
|
|
|
|
describe('click on reset password', function() {
|
|
|
|
it("should reset password for john", function() {
|
|
|
|
return VisitPage(this.driver, "https://login.example.com:8080/")
|
|
|
|
.then(() => ClickOnLink(this.driver, "Forgot password\?"))
|
|
|
|
.then(() => WaitRedirect(this.driver, "https://login.example.com:8080/password-reset/request"))
|
|
|
|
.then(() => FillField(this.driver, "username", "john"))
|
|
|
|
.then(() => ClickOnButton(this.driver, "Reset Password"))
|
|
|
|
.then(() => this.driver.sleep(1000)) // Simulate the time to read it from mailbox.
|
2018-11-16 04:29:02 +07:00
|
|
|
.then(() => GetLinkFromEmail())
|
2018-08-26 15:30:43 +07:00
|
|
|
.then((link) => VisitPage(this.driver, link))
|
|
|
|
.then(() => FillField(this.driver, "password1", "newpass"))
|
|
|
|
.then(() => FillField(this.driver, "password2", "newpass"))
|
|
|
|
.then(() => ClickOnButton(this.driver, "Reset Password"))
|
|
|
|
.then(() => WaitRedirect(this.driver, "https://login.example.com:8080/"))
|
|
|
|
.then(() => FillLoginPageAndClick(this.driver, "john", "newpass"))
|
|
|
|
.then(() => WaitRedirect(this.driver, "https://login.example.com:8080/secondfactor"))
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|