diff options
| author | LBuerstmayr <[email protected]> | 2021-03-01 22:46:26 +0100 |
|---|---|---|
| committer | Marak <[email protected]> | 2021-03-03 20:14:45 -0500 |
| commit | 7ad22c2e2aae2f5e6215bcdb91cf3fd28e727d92 (patch) | |
| tree | 03941188e92583a105c8ef17fde438fb1b52bdcf /test/random.unit.js | |
| parent | 58c61afb1b8baa160add593e5af7c110de011968 (diff) | |
| download | faker-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.js | 227 |
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() { |
