私はパスワードハッシュ関数をテストしようとしていますが、いくつかのTypeErrorエラーのために失敗を続けています。node.crypto関数のテスト時にモカがエラーを投げる
私は他のファイルから呼び出そうとしていて、関数が正常に機能していると確信しています。ここで
は関数である。ここでは
exports.hashPassword = (password) => {
return new Promise((resolve, reject) => {
crypto.randomBytes(salt_length, (err, buf) => {
if (err) reject(err);
const salt = buf.toString('base64');
crypto.pbkdf2(password, salt, iterations, keylen, digest, (err, key) => {
if (err) reject(err);
const hashedPassword = '{X-PBKDF2}:'+digest+':'+keylenB64+':'+iterationsB64+':'+salt+':'+key.toString('base64');
resolve(hashedPassword);
});
});
});
};
は失敗テストです:
describe('users',() => {
describe('utils',() => {
it('should hash a password', (done) => {
const password = 'secret';
utils.hashPassword('secret')
.then((hash) => {
console.log('Hash: '+ hash);
done();
})
.catch((err) => {
console.log(err);
done(err);
});
});
});
});
そして、これは 'エラー' である:
1 failing
1) users utils should hash a password:
TypeError: size must be a number >= 0
at Promise (api\paths\users\utils.js:24:12)
at Object.exports.hashPassword (api\paths\users\utils.js:14:10)
at Context.it (api\paths\users\utils.test.js:30:13)
は誰に任意のアイデア理由を持っています?
私はmocha
とshould
を使用しており、node
に発展しています。
エラーを投げ関数である明確ではありません。明確にできますか? – pietrovismara
確かに、 'utils.js'というファイルに存在する' hashPassword() '関数は1つだけです。さて、あなたが 'at Promise(api \ paths \ users \ utils.js:24:12)のどこにエラーがあるのかを尋ねるなら、これは暗号' crypto.randomBytes'の最初の使用です – Johnny
既にcrypto.randomBytesに渡しているサイズをチェックして0以上になっていますか? – pietrovismara