From aae6d9720e77f5f371a865e65eac9cd26626008d Mon Sep 17 00:00:00 2001 From: "Shane A. Stillwell" Date: Wed, 21 May 2014 21:19:04 -0500 Subject: Ensure Date.future returns a date in the future. --- lib/date.js | 2 +- test/date.unit.js | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/date.js b/lib/date.js index 795e674e..1b93f4e6 100644 --- a/lib/date.js +++ b/lib/date.js @@ -15,7 +15,7 @@ var date = { future: function (years, refDate) { var date = (refDate) ? new Date(Date.parse(refDate)) : new Date(); var future = date.getTime(); - future += Faker.random.number(years) * 365 * 3600 * 1000; // some time from now to N years later, in milliseconds + future += Faker.random.number(years) * 365 * 3600 * 1000 + 1000; // some time from now to N years later, in milliseconds date.setTime(future) return date.toJSON(); diff --git a/test/date.unit.js b/test/date.unit.js index 83b73ca9..b5481c0f 100644 --- a/test/date.unit.js +++ b/test/date.unit.js @@ -31,6 +31,14 @@ describe("date.js", function () { assert.ok(Date.parse(date) > new Date()); }); + it("returns a future date when N = 0", function () { + + var refDate = new Date(); + var date = Date.parse(Faker.Date.future(0), refDate.toJSON()); + + assert.ok(date > refDate); // date should be after the date given, but before the current time + }); + it("returns a date N years after the date given", function () { var refDate = new Date(1880, 11, 9, 10, 0, 0, 0); // set the date beyond the usual calculation (to make sure this is working correctly) -- cgit v1.2.3 From 8b894a08c89ae803bbd3c2a9721ff859fae13ea5 Mon Sep 17 00:00:00 2001 From: Ed Shadi Date: Mon, 16 Jun 2014 11:33:15 -0700 Subject: added hours in date.recent. Currently the code returns date in past minutes. random days could return 0 so modified the test to reflect <= current date. --- lib/date.js | 2 +- test/date.unit.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/date.js b/lib/date.js index 795e674e..23e0dc58 100644 --- a/lib/date.js +++ b/lib/date.js @@ -33,7 +33,7 @@ var date = { recent: function (days) { var date = new Date(); var future = date.getTime(); - future -= Faker.random.number(days) * 3600 * 1000; // some time from now to N days ago, in milliseconds + future -= Faker.random.number(days) * 24 * 60 * 60 * 1000; // some time from now to N days ago, in milliseconds date.setTime(future) return date.toJSON(); diff --git a/test/date.unit.js b/test/date.unit.js index 83b73ca9..39f96a79 100644 --- a/test/date.unit.js +++ b/test/date.unit.js @@ -46,7 +46,7 @@ describe("date.js", function () { var date = Faker.Date.recent(30); - assert.ok(Date.parse(date) < new Date()); + assert.ok(Date.parse(date) <= new Date()); }); }); -- cgit v1.2.3 From 9391c00943503f2f2092749fb67b4e1dbd38f827 Mon Sep 17 00:00:00 2001 From: Ed Shadi Date: Mon, 16 Jun 2014 13:22:28 -0700 Subject: random number now accepts a range array [min, max]. --- lib/random.js | 8 ++++++-- test/random.unit.js | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 test/random.unit.js diff --git a/lib/random.js b/lib/random.js index fcd451d7..63347278 100644 --- a/lib/random.js +++ b/lib/random.js @@ -1,8 +1,12 @@ var definitions = require('./definitions'); - var random = { - // returns a single random number based on a range + // returns a single random number based on a max number or range number: function (range) { + if(Array.isArray(range)) { + var min = range[0]; + var max = range[1]; + return Math.floor((Math.random() * max) + min); + } return Math.floor(Math.random() * range); }, diff --git a/test/random.unit.js b/test/random.unit.js new file mode 100644 index 00000000..3894e1d9 --- /dev/null +++ b/test/random.unit.js @@ -0,0 +1,22 @@ +if (typeof module !== 'undefined') { + var assert = require('assert'); + var sinon = require('sinon'); + var Faker = require('../index'); +} + +describe("random.js", function () { + describe("number", function() { + it("returns a random number given a maximum value", function() { + var max = 10; + assert.ok(Faker.random.number(max) < max); + }); + it("returns a random number between a range", function() { + var range = [1, 10]; + var min = range[0]; + var max = range[1] + var randomNumber = Faker.random.number(range); + assert.ok( randomNumber >= min); + assert.ok( randomNumber <= max); + }); + }); +}); -- cgit v1.2.3