UNPKG

adjective-adjective-animal

Version:

Suitably random and reasonably unique human readable (and fairly adorable) ids

87 lines (69 loc) 1.96 kB
"use strict"; var Crypto = require("crypto"); var CryptoRand = require("../lib/cryptoRand"); var loadLists = require("../lib/loadLists"); var Sinon = require("sinon"); var lists = loadLists(); var expect = require("chai").expect; describe("The random word generator", function () { describe("getting a random adjective", function () { var adjective; before(function () { return CryptoRand.randomAdjective() .then(function (word) { adjective = word; }); }); it("returns an adjective from the list", function () { expect(lists.adjectives, "contained").to.contain(adjective); }); }); describe("getting a random animal", function () { var animal; before(function () { return CryptoRand.randomAnimal() .then(function (word) { animal = word; }); }); it("returns an animal from the list", function () { expect(lists.animals, "contained").to.contain(animal); }); }); describe("getting a random adjective with unfavorable entropy", function () { var adjective; before(function () { Sinon.stub(Buffer.prototype, "readUInt16LE") .onCall(0).returns(10000) .onCall(1).returns(3); return CryptoRand.randomAdjective() .then(function (word) { adjective = word; }); }); after(function () { Buffer.prototype.readUInt16LE.restore(); }); it("still returns an adjective", function () { expect(lists.adjectives, "contained").to.contain(adjective); }); }); describe("getting a random adjective with unfavorable entropy", function () { var animal; before(function () { Sinon.stub(Buffer.prototype, "readUInt16LE") .onCall(0).returns(10000) .onCall(1).returns(3); return CryptoRand.randomAnimal() .then(function (word) { animal = word; }); }); after(function () { Buffer.prototype.readUInt16LE.restore(); }); it("still returns an animal", function () { expect(lists.animals, "contained").to.contain(animal); }); }); });