Improve tests (#407)

* Improve tests

This PR adds some necessary tests, fixes the naming on describe
(everything was set to RandomKeyGenerator, perhaps a copy/paste
exception) and fixes the consonant/vowel alternation test, since it was
failing if the keyspace started with a vowel.

* Remove unecessary file
This commit is contained in:
Bruno Saboia 2022-02-14 14:59:14 -03:00 committed by GitHub
parent 00d84614c2
commit cb4809195b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 11 deletions

View file

@ -6,8 +6,8 @@ const fs = require('fs');
const Generator = require('../../lib/key_generators/dictionary'); const Generator = require('../../lib/key_generators/dictionary');
describe('RandomKeyGenerator', function() { describe('DictionaryGenerator', function() {
describe('randomKey', function() { describe('options', function() {
it('should throw an error if given no options', () => { it('should throw an error if given no options', () => {
assert.throws(() => { assert.throws(() => {
new Generator(); new Generator();
@ -19,7 +19,8 @@ describe('RandomKeyGenerator', function() {
new Generator({}); new Generator({});
}, Error); }, Error);
}); });
});
describe('generation', function() {
it('should return a key of the proper number of words from the given dictionary', () => { it('should return a key of the proper number of words from the given dictionary', () => {
const path = '/tmp/haste-server-test-dictionary'; const path = '/tmp/haste-server-test-dictionary';
const words = ['cat']; const words = ['cat'];

View file

@ -7,8 +7,8 @@ const Generator = require('../../lib/key_generators/phonetic');
const vowels = 'aeiou'; const vowels = 'aeiou';
const consonants = 'bcdfghjklmnpqrstvwxyz'; const consonants = 'bcdfghjklmnpqrstvwxyz';
describe('RandomKeyGenerator', () => { describe('PhoneticKeyGenerator', () => {
describe('randomKey', () => { describe('generation', () => {
it('should return a key of the proper length', () => { it('should return a key of the proper length', () => {
const gen = new Generator(); const gen = new Generator();
assert.equal(6, gen.createKey(6).length); assert.equal(6, gen.createKey(6).length);
@ -19,9 +19,17 @@ describe('RandomKeyGenerator', () => {
const key = gen.createKey(3); const key = gen.createKey(3);
// if it starts with a consonant, we expect cvc
// if it starts with a vowel, we expect vcv
if(consonants.includes(key[0])) {
assert.ok(consonants.includes(key[0])); assert.ok(consonants.includes(key[0]));
assert.ok(consonants.includes(key[2])); assert.ok(consonants.includes(key[2]));
assert.ok(vowels.includes(key[1])); assert.ok(vowels.includes(key[1]));
} else {
assert.ok(vowels.includes(key[0]));
assert.ok(vowels.includes(key[2]));
assert.ok(consonants.includes(key[1]));
}
}); });
}); });
}); });

View file

@ -5,15 +5,20 @@ const assert = require('assert');
const Generator = require('../../lib/key_generators/random'); const Generator = require('../../lib/key_generators/random');
describe('RandomKeyGenerator', () => { describe('RandomKeyGenerator', () => {
describe('randomKey', () => { describe('generation', () => {
it('should return a key of the proper length', () => { it('should return a key of the proper length', () => {
const gen = new Generator(); const gen = new Generator();
assert.equal(6, gen.createKey(6).length); assert.equal(gen.createKey(6).length, 6);
}); });
it('should use a key from the given keyset if given', () => { it('should use a key from the given keyset if given', () => {
const gen = new Generator({keyspace: 'A'}); const gen = new Generator({keyspace: 'A'});
assert.equal('AAAAAA', gen.createKey(6)); assert.equal(gen.createKey(6), 'AAAAAA');
});
it('should not use a key from the given keyset if not given', () => {
const gen = new Generator({keyspace: 'A'});
assert.ok(!gen.createKey(6).includes('B'));
}); });
}); });
}); });