From 51ec3946aa9644259c54e346bc58756543f679dd Mon Sep 17 00:00:00 2001 From: Luiz Strobelt Date: Sun, 4 Oct 2020 17:09:34 -0300 Subject: Check if seed is a number or array before seeding faker.random --- lib/random.js | 15 +++++++-------- test/random.unit.js | 6 ++++++ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/random.js b/lib/random.js index 5afd27e2..f959440d 100644 --- a/lib/random.js +++ b/lib/random.js @@ -5,15 +5,14 @@ var mersenne = require('../vendor/mersenne'); * @namespace faker.random */ function Random (faker, seed) { - // Use a user provided seed if it exists - if (seed) { - if (Array.isArray(seed) && seed.length) { - mersenne.seed_array(seed); - } - else { - mersenne.seed(seed); - } + // Use a user provided seed if it is an array or number + if (Array.isArray(seed) && seed.length) { + mersenne.seed_array(seed); } + else if(!isNaN(seed)) { + mersenne.seed(seed); + } + /** * returns a single random number based on a max number or range * diff --git a/test/random.unit.js b/test/random.unit.js index cdeb07f1..39ef4a0f 100644 --- a/test/random.unit.js +++ b/test/random.unit.js @@ -85,6 +85,12 @@ describe("random.js", function () { assert.equal(name, 'Eva Jenkins'); }) + it('should return deterministic results when seeded with 0', function() { + faker.seed(0); + var name = faker.name.findName(); + assert.strictEqual(name, 'Lola Sporer'); + }) + it('should return deterministic results when seeded with array - one element', function() { faker.seed([10]); var name = faker.name.findName(); -- cgit v1.2.3