From 2a46c19f932da6f08a0fc71cb92def44f4f08075 Mon Sep 17 00:00:00 2001 From: James Drew Date: Mon, 22 Dec 2014 21:52:01 +0000 Subject: Added unit test for uuid generator --- test/random.unit.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/random.unit.js b/test/random.unit.js index 6071767b..da1274fd 100644 --- a/test/random.unit.js +++ b/test/random.unit.js @@ -61,4 +61,12 @@ describe("random.js", function () { assert.equal(opts.max, max); }); }); + + describe('UUID', function() { + it('should generate a valid UUID', function() { + var UUID = faker.random.uuid(); + var RFC4122 = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/; + assert.ok(RFC4122.test(UUID)); + }) + }) }); -- cgit v1.2.3 From 0b38c25af233ef0439f85f810f62c9469fd7834d Mon Sep 17 00:00:00 2001 From: James Drew Date: Mon, 22 Dec 2014 22:32:03 +0000 Subject: Added function to generate UUID --- lib/random.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/random.js b/lib/random.js index a4bc1858..83092653 100644 --- a/lib/random.js +++ b/lib/random.js @@ -51,6 +51,16 @@ var random = { var key = faker.random.array_element(array); return field === "key" ? key : object[key]; + }, + + uuid : function () { + var RFC4122_TEMPLATE = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'; + var replacePlaceholders = function (placeholder) { + var random = Math.random()*16|0; + var value = placeholder == 'x' ? random : (random &0x3 | 0x8); + return value.toString(16); + }; + return RFC4122_TEMPLATE.replace(/[xy]/g, replacePlaceholders); } }; -- cgit v1.2.3