diff --git a/plugins/emailstore.js b/plugins/emailstore.js index 3620f71d..95d48b58 100644 --- a/plugins/emailstore.js +++ b/plugins/emailstore.js @@ -351,19 +351,17 @@ emailPlugin.createVerificationSecretAndSendEmail = function(email, callback) { emailPlugin.createVerificationSecret(email, function(err, secret) { - if (err) { + if (err || !secret) { logger.error('error saving verification secret', email, secret, err); return callback(emailPlugin.errors.INTERNAL_ERROR); } - if (secret) { - emailPlugin.sendVerificationEmail(email, secret, function (err, res) { - if (err) { - logger.error('error sending verification email', email, secret, err); - return callback(emailPlugin.errors.ERROR_SENDING_EMAIL); - } - return callback(); - }); - } + emailPlugin.sendVerificationEmail(email, secret, function (err, res) { + if (err) { + logger.error('error sending verification email', email, secret, err); + return callback(emailPlugin.errors.ERROR_SENDING_EMAIL); + } + return callback(); + }); }); }; diff --git a/test/test.EmailStore.js b/test/test.EmailStore.js index a5253aec..5dded7f8 100644 --- a/test/test.EmailStore.js +++ b/test/test.EmailStore.js @@ -22,7 +22,7 @@ describe('emailstore test', function() { leveldb_stub.get = sinon.stub(); leveldb_stub.del = sinon.stub(); var email_stub = sinon.stub(); - email_stub.sendMail = sinon.stub(); + email_stub.sendMail = sinon.stub().callsArg(1); var cryptoMock = { randomBytes: sinon.stub() @@ -199,7 +199,6 @@ describe('emailstore test', function() { }); describe('creating verification secret', function() { - var sendVerificationEmail = sinon.stub(plugin, 'sendVerificationEmail'); var fakeEmail = 'fake@email.com'; var fakeRandom = 'fakerandom'; var randomBytes = { @@ -211,8 +210,8 @@ describe('emailstore test', function() { beforeEach(function() { leveldb_stub.get.reset(); leveldb_stub.put.reset(); + plugin.email.sendMail.reset(); - sendVerificationEmail.reset(); cryptoMock.randomBytes = sinon.stub(); cryptoMock.randomBytes.onFirstCall().returns(randomBytes); }); @@ -235,11 +234,11 @@ describe('emailstore test', function() { done(); }); }); - it('calls the function to verify the email', function(done) { + it('sends verification email', function(done) { setupLevelDb(); plugin.createVerificationSecretAndSendEmail(fakeEmail, function(err) { - sendVerificationEmail.calledOnce; + plugin.email.sendMail.calledOnce.should.be.true; done(); }); }); @@ -260,10 +259,6 @@ describe('emailstore test', function() { done(); }); }); - - after(function() { - plugin.sendVerificationEmail.restore(); - }); }); });