aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuiz Strobelt <[email protected]>2020-10-04 17:09:34 -0300
committerLuiz Strobelt <[email protected]>2020-10-04 17:09:34 -0300
commit51ec3946aa9644259c54e346bc58756543f679dd (patch)
tree1b8039b630b9a3959a8ec080b91974bb8aac691d
parent5df3678f842383855c53a4c14d39a20deb64f7cc (diff)
downloadfaker-51ec3946aa9644259c54e346bc58756543f679dd.tar.xz
faker-51ec3946aa9644259c54e346bc58756543f679dd.zip
Check if seed is a number or array before seeding faker.random
-rw-r--r--lib/random.js15
-rw-r--r--test/random.unit.js6
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();