discourse/test/javascripts/acceptance/forgot-password-test.js.es6
2018-03-28 09:42:12 +08:00

88 lines
2.2 KiB
JavaScript

import { acceptance } from "helpers/qunit-helpers";
let userFound = false;
acceptance("Forgot password", {
beforeEach() {
const response = object => {
return [
200,
{ "Content-Type": "application/json" },
object
];
};
server.post('/session/forgot_password', () => { // eslint-disable-line no-undef
return response({ "user_found": userFound });
});
}
});
QUnit.test("requesting password reset", assert => {
visit("/");
click("header .login-button");
click('#forgot-password-link');
andThen(() => {
assert.equal(
find('.forgot-password-reset').attr("disabled"),
"disabled",
'it should disable the button until the field is filled'
);
});
fillIn("#username-or-email", 'someuser');
click('.forgot-password-reset');
andThen(() => {
assert.equal(
find(".alert-error").html().trim(),
I18n.t('forgot_password.complete_username_not_found', { username: 'someuser' }),
'it should display an error for an invalid username'
);
});
fillIn("#username-or-email", 'someuser@gmail.com');
click('.forgot-password-reset');
andThen(() => {
assert.equal(
find(".alert-error").html().trim(),
I18n.t('forgot_password.complete_email_not_found', { email: 'someuser@gmail.com' }),
'it should display an error for an invalid email'
);
});
fillIn("#username-or-email", 'someuser');
andThen(() => {
userFound = true;
});
click('.forgot-password-reset');
andThen(() => {
assert.notOk(exists(find(".alert-error")), 'it should remove the flash error when succeeding');
assert.equal(
find(".modal-body").html().trim(),
I18n.t('forgot_password.complete_username_found', { username: 'someuser' }),
'it should display a success message for a valid username'
);
});
visit("/");
click("header .login-button");
click('#forgot-password-link');
fillIn("#username-or-email", 'someuser@gmail.com');
click('.forgot-password-reset');
andThen(() => {
assert.equal(
find(".modal-body").html().trim(),
I18n.t('forgot_password.complete_email_found', { email: 'someuser@gmail.com' }),
'it should display a success message for a valid email'
);
});
});