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('button[title="Reset Password"]').attr("disabled"), "disabled", 'it should disable the button until the field is filled' ); }); fillIn("#username-or-email", 'someuser'); click('button[title="Reset Password"]'); 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('button[title="Reset Password"]'); 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('button[title="Reset Password"]'); 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('button[title="Reset Password"]'); 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' ); }); });