diff --git a/lib/key_generators/random.js b/lib/key_generators/random.js index cd35f3d..767e26b 100644 --- a/lib/key_generators/random.js +++ b/lib/key_generators/random.js @@ -1,19 +1,20 @@ -var RandomKeyGenerator = function(options) { - if (!options) { - options = {}; - } - this.keyspace = options.keyspace || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; -}; +module.exports = class RandomKeyGenerator { -// Generate a random key -RandomKeyGenerator.prototype.createKey = function(keyLength) { - var text = ''; - var index; - for (var i = 0; i < keyLength; i++) { - index = Math.floor(Math.random() * this.keyspace.length); - text += this.keyspace.charAt(index); + // Initialize a new generator with the given keySpace + constructor(options = {}) { + this.keyspace = options.keyspace || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; } - return text; -}; -module.exports = RandomKeyGenerator; + // Generate a key of the given length + createKey(keyLength) { + var text = ''; + + for (var i = 0; i < keyLength; i++) { + const index = Math.floor(Math.random() * this.keyspace.length); + text += this.keyspace.charAt(index); + } + + return text; + } + +}; diff --git a/package.json b/package.json index df12c47..1e87fa3 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,6 @@ }, "scripts": { "start": "node server.js", - "test": "mocha" + "test": "mocha --recursive" } } diff --git a/test/key_generators/random_spec.js b/test/key_generators/random_spec.js new file mode 100644 index 0000000..a438fcf --- /dev/null +++ b/test/key_generators/random_spec.js @@ -0,0 +1,19 @@ +/* global describe, it */ + +const assert = require('assert'); + +const Generator = require('../../lib/key_generators/random'); + +describe('RandomKeyGenerator', function() { + describe('randomKey', function() { + it('should return a key of the proper length', function() { + var gen = new Generator(); + assert.equal(6, gen.createKey(6).length); + }); + + it('should use a key from the given keyset if given', () => { + var gen = new Generator({keyspace: 'A'}); + assert.equal('AAAAAA', gen.createKey(6)); + }); + }); +});