tests: add verification of use of crypto.randomBytes

This commit is contained in:
Daniel Cousens 2014-09-22 16:48:40 +10:00
parent f5208f9a09
commit 65d54896c5
2 changed files with 15 additions and 2 deletions

View File

@ -21,7 +21,8 @@
}, },
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"crypto-js": "^3.1.2-2" "crypto-js": "^3.1.2-2",
"sinon": "^1.10.3"
}, },
"devDependencies": { "devDependencies": {
"browserify": "^5.9.1", "browserify": "^5.9.1",

View File

@ -1,5 +1,7 @@
var assert = require('assert') var assert = require('assert')
var crypto = require('crypto')
var BIP39 = require('../index.js') var BIP39 = require('../index.js')
var sinon = require('sinon')
var wordlists = { var wordlists = {
english: require('../wordlists/en.json'), english: require('../wordlists/en.json'),
@ -48,7 +50,17 @@ describe('BIP39', function() {
}) })
describe('generateMnemonic', function() { describe('generateMnemonic', function() {
it('generates a mnemonic', function() { vectors.english.forEach(function(v, i) {
it('works for tests vector ' + i, sinon.test(function() {
this.mock(crypto).expects('randomBytes')
.exactly(1)
.onCall(0).returns(new Buffer(v[0], 'hex'))
assert.equal(BIP39.generateMnemonic(), v[1])
}))
})
it('can vary generated entropy bit length', function() {
var mnemonic = BIP39.generateMnemonic(96) var mnemonic = BIP39.generateMnemonic(96)
var words = mnemonic.split(' ') var words = mnemonic.split(' ')