diff options
| author | Ronen Babayoff <[email protected]> | 2015-08-23 21:57:46 -0400 |
|---|---|---|
| committer | Ronen Babayoff <[email protected]> | 2015-08-23 21:57:46 -0400 |
| commit | 66996e280c9fbbbc2e7db376549f568be32ad5cd (patch) | |
| tree | e93f412c4bceeb7ed0376e26113c9d31522af8b4 /test/commerce.unit.js | |
| parent | cf0bd70d5fca9c0169414f5d2c16ca32431a3fd9 (diff) | |
| parent | d8f8108ac5dbec7e2b7ea9a23dd19aa42255e3fb (diff) | |
| download | faker-66996e280c9fbbbc2e7db376549f568be32ad5cd.tar.xz faker-66996e280c9fbbbc2e7db376549f568be32ad5cd.zip | |
Merge v3.0.1 into practicalmeteor:faker package branch
Diffstat (limited to 'test/commerce.unit.js')
| -rw-r--r-- | test/commerce.unit.js | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/test/commerce.unit.js b/test/commerce.unit.js new file mode 100644 index 00000000..06445e34 --- /dev/null +++ b/test/commerce.unit.js @@ -0,0 +1,115 @@ +if (typeof module !== 'undefined') { + var assert = require('assert'), + sinon = require('sinon'), + faker = require('../index'); +} + +describe("commerce.js", function() { + + describe("color()", function() { + it("returns random value from commerce.color array", function() { + var color = faker.commerce.color(); + assert.ok(faker.definitions.commerce.color.indexOf(color) !== -1); + }); + }); + + describe("department(max, fixedValue)", function() { + + it("should use the default amounts when not passing arguments", function() { + var department = faker.commerce.department(); + assert.ok(department.split(" ").length === 1); + }); + + /* + + it("should return only one value if we specify a maximum of one", function() { + sinon.spy(faker.random, 'arrayElement'); + + var department = faker.commerce.department(1); + + assert.strictEqual(department.split(" ").length, 1); + assert.ok(faker.random.arrayElement.calledOnce); + + faker.random.arrayElement.restore(); + }); + + it("should return the maxiumum value if we specify the fixed value", function() { + sinon.spy(faker.random, 'arrayElement'); + + var department = faker.commerce.department(5, true); + + console.log(department); + + // account for the separator + assert.strictEqual(department.split(" ").length, 6); + // Sometimes it will generate duplicates that aren't used in the final string, + // so we check if arrayElement has been called exactly or more than 5 times + assert.ok(faker.random.arrayElement.callCount >= 5); + + faker.random.arrayElement.restore(); + }); + */ + }); + + describe("productName()", function() { + it("returns name comprising of an adjective, material and product", function() { + sinon.spy(faker.random, 'arrayElement'); + sinon.spy(faker.commerce, 'productAdjective'); + sinon.spy(faker.commerce, 'productMaterial'); + sinon.spy(faker.commerce, 'product'); + var name = faker.commerce.productName(); + + assert.ok(name.split(' ').length >= 3); + assert.ok(faker.random.arrayElement.calledThrice); + assert.ok(faker.commerce.productAdjective.calledOnce); + assert.ok(faker.commerce.productMaterial.calledOnce); + assert.ok(faker.commerce.product.calledOnce); + + faker.random.arrayElement.restore(); + faker.commerce.productAdjective.restore(); + faker.commerce.productMaterial.restore(); + faker.commerce.product.restore(); + }); + }); + + describe("price(min, max, dec, symbol", function() { + it("should use the default amounts when not passing arguments", function() { + var price = faker.commerce.price(); + + assert.ok(price); + assert.equal((price > 0), true, "the amount should be greater than 0"); + assert.equal((price < 1001), true, "the amount should be less than 1000"); + }); + + it("should use the default decimal location when not passing arguments", function() { + var price = faker.commerce.price(); + + var decimal = "."; + var expected = price.length - 3; + var actual = price.indexOf(decimal); + + assert.equal(actual, expected, "The expected location of the decimal is " + expected + " but it was " + actual + " amount " + price); + }); + + it("should not include a currency symbol by default", function () { + + var amount = faker.commerce.price(); + + var regexp = new RegExp(/[0-9.]/); + + var expected = true; + var actual = regexp.test(amount); + + assert.equal(actual, expected, 'The expected match should not include a currency symbol'); + }); + + it("it should handle negative amounts, but return 0", function () { + + var amount = faker.commerce.price(-200, -1); + + assert.ok(amount); + assert.equal((amount == 0.00), true, "the amount should equal 0"); + }); + }); + +});
\ No newline at end of file |
