aboutsummaryrefslogtreecommitdiff
path: root/test/random.unit.js
diff options
context:
space:
mode:
authorLBuerstmayr <[email protected]>2021-03-01 22:46:26 +0100
committerMarak <[email protected]>2021-03-03 20:14:45 -0500
commit7ad22c2e2aae2f5e6215bcdb91cf3fd28e727d92 (patch)
tree03941188e92583a105c8ef17fde438fb1b52bdcf /test/random.unit.js
parent58c61afb1b8baa160add593e5af7c110de011968 (diff)
downloadfaker-7ad22c2e2aae2f5e6215bcdb91cf3fd28e727d92.tar.xz
faker-7ad22c2e2aae2f5e6215bcdb91cf3fd28e727d92.zip
Issue 1114: New datatype module
Current status: - moved number(), float(), hexaDecimal(), boolean(), uuid() from random to datatype - moved respective test from random.unit to datatype.unit - tests of moved methods in random now check if DeprecationWarning is printed and respective method in datatype module is called - adapted all lib files that use moved methods (mostly number) - adapted tests of respective files to spy on the correct method - adapted README in order to promote usage of method that logs a DeprecationWarning
Diffstat (limited to 'test/random.unit.js')
-rw-r--r--test/random.unit.js227
1 files changed, 42 insertions, 185 deletions
diff --git a/test/random.unit.js b/test/random.unit.js
index e068c905..28675c31 100644
--- a/test/random.unit.js
+++ b/test/random.unit.js
@@ -9,176 +9,26 @@ if (typeof module !== 'undefined') {
describe("random.js", function () {
describe("number", function() {
-
- it("returns a random number given a maximum value as Number", function() {
- var max = 10;
- assert.ok(faker.random.number(max) <= max);
- });
-
- it("returns a random number given a maximum value as Object", function() {
- var options = { max: 10 };
- assert.ok(faker.random.number(options) <= options.max);
+ it("random.number() uses datatype module and prints deprecation warning", function() {
+ sinon.spy(console, 'log')
+ sinon.spy(faker.datatype, 'number');
+ faker.random.number();
+ assert.ok(faker.datatype.number.called);
+ assert.ok(console.log.calledWith('DeprecationWarning: Method is now located in faker.datatype.number'));
+ faker.datatype.number.restore()
+ console.log.restore();
});
-
- it("returns a random number given a maximum value of 0", function() {
- var options = { max: 0 };
- assert.ok(faker.random.number(options) === 0);
- });
-
- it("returns a random number given a negative number minimum and maximum value of 0", function() {
- var options = { min: -100, max: 0 };
- assert.ok(faker.random.number(options) <= options.max);
- });
-
- it("returns a random number between a range", function() {
- var options = { min: 22, max: 33 };
- for(var i = 0; i < 100; i++) {
- var randomNumber = faker.random.number(options);
- assert.ok(randomNumber >= options.min);
- assert.ok(randomNumber <= options.max);
- }
- });
-
- it("provides numbers with a given precision", function() {
- var options = { min: 0, max: 1.5, precision: 0.5 };
- var results = _.chain(_.range(50))
- .map(function() {
- return faker.random.number(options);
- })
- .uniq()
- .value()
- .sort();
-
- assert.ok(_.includes(results, 0.5));
- assert.ok(_.includes(results, 1.0));
-
- assert.strictEqual(results[0], 0);
- assert.strictEqual(_.last(results), 1.5);
-
- });
-
- it("provides numbers with a with exact precision", function() {
- var options = { min: 0.5, max: 0.99, precision: 0.01 };
- for(var i = 0; i < 100; i++) {
- var number = faker.random.number(options);
- assert.strictEqual(number, Number(number.toFixed(2)));
- }
- });
-
- it("should not modify the input object", function() {
- var min = 1;
- var max = 2;
- var opts = {
- min: min,
- max: max
- };
-
- faker.random.number(opts);
-
- assert.strictEqual(opts.min, min);
- assert.strictEqual(opts.max, max);
- });
-
- it('should return deterministic results when seeded with integer', function() {
- faker.seed(100);
- var name = faker.name.findName();
- assert.strictEqual(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();
- assert.strictEqual(name, 'Duane Kub');
- })
-
- it('should return deterministic results when seeded with array - multiple elements', function() {
- faker.seed([10, 100, 1000]);
- var name = faker.name.findName();
- assert.strictEqual(name, 'Alma Shanahan');
- })
-
});
describe("float", function() {
-
- it("returns a random float with a default precision value (0.01)", function() {
- var number = faker.random.float();
- assert.strictEqual(number, Number(number.toFixed(2)));
- });
-
- it("returns a random float given a precision value", function() {
- var number = faker.random.float(0.001);
- assert.strictEqual(number, Number(number.toFixed(3)));
- });
-
- it("returns a random number given a maximum value as Object", function() {
- var options = { max: 10 };
- assert.ok(faker.random.float(options) <= options.max);
- });
-
- it("returns a random number given a maximum value of 0", function() {
- var options = { max: 0 };
- assert.ok(faker.random.float(options) === 0);
- });
-
- it("returns a random number given a negative number minimum and maximum value of 0", function() {
- var options = { min: -100, max: 0 };
- assert.ok(faker.random.float(options) <= options.max);
- });
-
- it("returns a random number between a range", function() {
- var options = { min: 22, max: 33 };
- for(var i = 0; i < 5; i++) {
- var randomNumber = faker.random.float(options);
- assert.ok(randomNumber >= options.min);
- assert.ok(randomNumber <= options.max);
- }
- });
-
- it("provides numbers with a given precision", function() {
- var options = { min: 0, max: 1.5, precision: 0.5 };
- var results = _.chain(_.range(50))
- .map(function() {
- return faker.random.float(options);
- })
- .uniq()
- .value()
- .sort();
-
- assert.ok(_.includes(results, 0.5));
- assert.ok(_.includes(results, 1.0));
-
- assert.strictEqual(results[0], 0);
- assert.strictEqual(_.last(results), 1.5);
-
- });
-
- it("provides numbers with a with exact precision", function() {
- var options = { min: 0.5, max: 0.99, precision: 0.01 };
- for(var i = 0; i < 100; i++) {
- var number = faker.random.float(options);
- assert.strictEqual(number, Number(number.toFixed(2)));
- }
- });
-
- it("should not modify the input object", function() {
- var min = 1;
- var max = 2;
- var opts = {
- min: min,
- max: max
- };
-
- faker.random.float(opts);
-
- assert.strictEqual(opts.min, min);
- assert.strictEqual(opts.max, max);
+ it("random.float() uses datatype module and prints deprecation warning", function() {
+ sinon.spy(console, 'log')
+ sinon.spy(faker.datatype, 'float');
+ faker.random.float();
+ assert.ok(faker.datatype.float.called);
+ assert.ok(console.log.calledWith('DeprecationWarning: Method is now located in faker.datatype.float'));
+ faker.datatype.float.restore()
+ console.log.restore();
});
});
@@ -235,17 +85,26 @@ describe("random.js", function () {
});
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));
- })
+ it("random.uuid() uses datatype module and prints deprecation warning", function() {
+ sinon.spy(console, 'log')
+ sinon.spy(faker.datatype, 'uuid');
+ faker.random.uuid();
+ assert.ok(faker.datatype.uuid.called);
+ assert.ok(console.log.calledWith('DeprecationWarning: Method is now located in faker.datatype.uuid'));
+ faker.datatype.uuid.restore()
+ console.log.restore();
+ });
})
describe('boolean', function() {
- it('should generate a boolean value', function() {
- var bool = faker.random.boolean();
- assert.ok(typeof bool == 'boolean');
+ it("random.boolean() uses datatype module and prints deprecation warning", function() {
+ sinon.spy(console, 'log')
+ sinon.spy(faker.datatype, 'boolean');
+ faker.random.boolean();
+ assert.ok(faker.datatype.boolean.called);
+ assert.ok(console.log.calledWith('DeprecationWarning: Method is now located in faker.datatype.boolean'));
+ faker.datatype.boolean.restore()
+ console.log.restore();
});
});
@@ -316,17 +175,15 @@ describe("random.js", function () {
});
describe('hexaDecimal', function() {
- var hexaDecimal = faker.random.hexaDecimal;
-
- it('should generate single hex character when no additional argument was provided', function() {
- var hex = hexaDecimal();
- assert.ok(hex.match(/^(0x)[0-9a-f]{1}$/i));
- })
-
- it('should generate a random hex string', function() {
- var hex = hexaDecimal(5);
- assert.ok(hex.match(/^(0x)[0-9a-f]+$/i));
- })
+ it("random.hexaDecimal() uses datatype module and prints deprecation warning", function() {
+ sinon.spy(console, 'log')
+ sinon.spy(faker.datatype, 'hexaDecimal');
+ faker.random.hexaDecimal();
+ assert.ok(faker.datatype.hexaDecimal.called);
+ assert.ok(console.log.calledWith('DeprecationWarning: Method is now located in faker.datatype.hexaDecimal'));
+ faker.datatype.hexaDecimal.restore()
+ console.log.restore();
+ });
})
describe("mersenne twister", function() {