diff --git a/app/assets/javascripts/discourse/controllers/preferences/email.js.es6 b/app/assets/javascripts/discourse/controllers/preferences/email.js.es6 index 9d782390df..e8ab816739 100644 --- a/app/assets/javascripts/discourse/controllers/preferences/email.js.es6 +++ b/app/assets/javascripts/discourse/controllers/preferences/email.js.es6 @@ -20,6 +20,16 @@ export default Ember.Controller.extend({ ), unchanged: propertyEqual("newEmailLower", "currentUser.email"), + reset: function() { + this.setProperties({ + taken: false, + saving: false, + error: false, + success: false, + newEmail: null + }); + }, + newEmailLower: function() { return this.get("newEmail") .toLowerCase() diff --git a/app/assets/javascripts/discourse/routes/preferences-email.js.es6 b/app/assets/javascripts/discourse/routes/preferences-email.js.es6 index 1dcffa1885..5b706bdda1 100644 --- a/app/assets/javascripts/discourse/routes/preferences-email.js.es6 +++ b/app/assets/javascripts/discourse/routes/preferences-email.js.es6 @@ -12,6 +12,7 @@ export default RestrictedUserRoute.extend({ }, setupController: function(controller, model) { + controller.reset(); controller.setProperties({ model: model, newEmail: model.get("email") }); }, diff --git a/test/javascripts/acceptance/preferences-test.js.es6 b/test/javascripts/acceptance/preferences-test.js.es6 index f838c260c5..66d3269b21 100644 --- a/test/javascripts/acceptance/preferences-test.js.es6 +++ b/test/javascripts/acceptance/preferences-test.js.es6 @@ -27,6 +27,12 @@ acceptance("User Preferences", { }); }); + server.put("/u/eviltrout/preferences/email", () => { + return helper.response({ + success: true + }); + }); + server.post("/user_avatar/eviltrout/refresh_gravatar.json", () => { return helper.response({ gravatar_upload_id: 6543, @@ -119,6 +125,20 @@ QUnit.test("email", async assert => { ); }); +QUnit.test("email field always shows up", async assert => { + await visit("/u/eviltrout/preferences/email"); + + assert.ok(exists("#change-email"), "it has the input element"); + + await fillIn("#change-email", "eviltrout@discourse.org"); + await click(".user-preferences button.btn-primary"); + + await visit("/u/eviltrout/preferences"); + await visit("/u/eviltrout/preferences/email"); + + assert.ok(exists("#change-email"), "it has the input element"); +}); + QUnit.test("connected accounts", async assert => { await visit("/u/eviltrout/preferences/account");