Intento probar la función de publicación de mi enrutador de registro que usa el marco de verificación de correo electrónico, pero mocha me muestra el siguiente mensaje de error: TypeError: Cannot read property 'findOne' of null
Este es mi código:
función que invoca el error:
nev.resendVerificationEmail(email,(err,userExist) =>{ if(err){ return res.status(404).send('Error : resending verification email failed');} if(userExist){ res.json({message : 'An email has been sent to you , again. Please check it to verify your account'}); }else{ res.json({message : 'Your verification code has expired . Please sign up again'});
y esta es la implementación de la función resendVerificationEmail
var resendVerificationEmail = function(email, callback) { var query = {}; query[options.emailFieldName] = email; options.tempUserModel.findOne(query, function(err, tempUser) { //this the error handler I guess if (err) { return callback(err, null); } // user found (ie user re-requested verification email before expiration) if (tempUser) { // generate new user token tempUser[options.URLFieldName] = randtoken.generate(options.URLLength); tempUser.save(function(err) { if (err) { return callback(err, null); } sendVerificationEmail(getNestedValue(tempUser, options.emailFieldName), tempUser[options.URLFieldName], function(err) { if (err) { return callback(err, null); } return callback(null, true); }); }); } else { return callback(null, false); } });
};
y esta es mi especificación
describe(' SignUp : /POST Test with fake client request : ', () => { let req, res, statusCode, sendData,user; beforeEach((done) => { SignupModal.remove({}, (err) => { done(); }); user = { firstName : 'ben', secondName : 'wissem', username : 'wiss', email : 'xy@zt.sq', password : 'wissem' }; res = { json: function (code, data) { statusCode = code; sendData = data; } }; }); it('should send 200 code', () => { chai.request(server) .post('/user/signup') .send(user) .end((err, res) => { res.statusCode.should.equal(200); }); });
¿Alguien puede ayudarme por favor?
Si desea realizar una verificación de correo electrónico de prueba de extremo a extremo, pruebe EmailE2E.com , es una API gratuita que le permite enviar y recibir correos electrónicos desde bandejas de entrada generadas aleatoriamente. Es perfecto para Firebase, Amazon Cognito u otros proveedores de OAuth que usan códigos de verificación de correo electrónico durante el registro. También tiene un cliente Javascript que puedes usar con Mocha.