aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarak <[email protected]>2015-01-07 17:58:16 +0100
committerMarak <[email protected]>2015-01-07 17:58:16 +0100
commitba24337ad813d5e0e3560fc6280f8d6180bdabf4 (patch)
tree5b443050ff1d2f644f38d06e62b5a3102f82855f
parentfbe14140730f9609be7430dd867df7def959e30a (diff)
parent0b38c25af233ef0439f85f810f62c9469fd7834d (diff)
downloadfaker-ba24337ad813d5e0e3560fc6280f8d6180bdabf4.tar.xz
faker-ba24337ad813d5e0e3560fc6280f8d6180bdabf4.zip
Merge pull request #152 from jdrew1303/feature/uuid_generator
[api] Adds fake uuid generator
-rw-r--r--lib/random.js10
-rw-r--r--test/random.unit.js8
2 files changed, 18 insertions, 0 deletions
diff --git a/lib/random.js b/lib/random.js
index 76cfbe90..3205d8c4 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);
}
};
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));
+ })
+ })
});