diff options
| author | Bryan Donovan <[email protected]> | 2013-01-07 12:13:55 -0800 |
|---|---|---|
| committer | Bryan Donovan <[email protected]> | 2013-01-07 12:13:55 -0800 |
| commit | 0c8412564fc2dbd47f01e86f93198be390ef4335 (patch) | |
| tree | 6d2a88cf0c96c12dd88f67bc63273030ab8e1ae3 /test | |
| parent | d3299b466fa0c6c4e755d2ce39fb8bec6d995bfa (diff) | |
| download | faker-0c8412564fc2dbd47f01e86f93198be390ef4335.tar.xz faker-0c8412564fc2dbd47f01e86f93198be390ef4335.zip | |
100% test coverage.
Diffstat (limited to 'test')
| -rw-r--r-- | test/company.unit.js | 6 | ||||
| -rw-r--r-- | test/helpers.unit.js | 35 | ||||
| -rw-r--r-- | test/internet.unit.js | 83 |
3 files changed, 121 insertions, 3 deletions
diff --git a/test/company.unit.js b/test/company.unit.js index 9ea554f4..acfbe601 100644 --- a/test/company.unit.js +++ b/test/company.unit.js @@ -6,13 +6,13 @@ var random = require('../lib/random'); describe("company.js", function () { describe("companyName()", function () { it("lets you specify the type of name to return", function () { - sinon.spy(Faker.Helpers, 'randomNumber'); + sinon.spy(Faker.random, 'number'); var name = Faker.Company.companyName(1); assert.ok(name.match(/-/)); - assert.ok(!Faker.Helpers.randomNumber.called); - Faker.Helpers.randomNumber.restore(); + assert.ok(!Faker.random.number.called); + Faker.random.number.restore(); }); it("sometimes returns three last names", function () { diff --git a/test/helpers.unit.js b/test/helpers.unit.js new file mode 100644 index 00000000..a8dbf371 --- /dev/null +++ b/test/helpers.unit.js @@ -0,0 +1,35 @@ +var assert = require('assert'); +var sinon = require('sinon'); +var Faker = require('../index'); + +describe("helpers.js", function() { + describe("replaceSymbolWithNumber()", function() { + context("when no symbol passed in", function() { + it("uses '#' by default", function() { + var num = Faker.Helpers.replaceSymbolWithNumber('#AB'); + assert.ok(num.match(/\dAB/)); + }); + }); + + context("when symbol passed in", function() { + it("replaces that symbol with integers", function() { + var num = Faker.Helpers.replaceSymbolWithNumber('#AB', 'A'); + assert.ok(num.match(/#\dB/)); + }); + }); + }); + + describe("createCard()", function() { + it("returns an object", function() { + var card = Faker.Helpers.createCard(); + assert.ok(typeof card === 'object'); + }); + }); + + describe("userCard()", function() { + it("returns an object", function() { + var card = Faker.Helpers.userCard(); + assert.ok(typeof card === 'object'); + }); + }); +}); diff --git a/test/internet.unit.js b/test/internet.unit.js new file mode 100644 index 00000000..8653641c --- /dev/null +++ b/test/internet.unit.js @@ -0,0 +1,83 @@ +var assert = require('assert'); +var sinon = require('sinon'); +var Faker = require('../index'); + +describe("internet.js", function () { + describe("email()", function () { + it("returns a userName@domainName", function () { + sinon.stub(Faker.Internet, 'userName').returns('foo'); + sinon.stub(Faker.Internet, 'domainName').returns('bar.com'); + var email = Faker.Internet.email(); + + assert.equal(email, '[email protected]'); + + Faker.Internet.userName.restore(); + Faker.Internet.domainName.restore(); + }); + }); + + describe("userName()", function () { + it("occasionally returns a single firstName", function () { + sinon.stub(Faker.random, 'number').returns(0); + sinon.spy(Faker.random, 'first_name'); + var username = Faker.Internet.userName(); + + assert.ok(username); + assert.ok(Faker.random.first_name.called); + + Faker.random.number.restore(); + Faker.random.first_name.restore(); + }); + + it("occasionally returns a firstName with a period or hyphen and a lastName", function () { + sinon.stub(Faker.random, 'number').returns(1); + sinon.spy(Faker.random, 'first_name'); + sinon.spy(Faker.random, 'last_name'); + sinon.spy(Faker.random, 'array_rand'); + var username = Faker.Internet.userName(); + + assert.ok(username); + assert.ok(Faker.random.first_name.called); + assert.ok(Faker.random.last_name.called); + assert.ok(Faker.random.array_rand.calledWith(['.', '_'])); + + Faker.random.number.restore(); + Faker.random.first_name.restore(); + Faker.random.last_name.restore(); + }); + }); + + describe("domainName()", function() { + it("returns a domainWord plus a random suffix", function() { + sinon.stub(Faker.Internet, 'domainWord').returns('bar'); + sinon.stub(Faker.random, 'domain_suffix').returns('net'); + + var domain_name = Faker.Internet.domainName(); + + assert.equal(domain_name, 'bar.net'); + + Faker.Internet.domainWord.restore(); + Faker.random.domain_suffix.restore(); + }); + }); + + describe("domainWord()", function() { + it("returns a lower-case firstName", function() { + sinon.stub(Faker.random, 'first_name').returns('FOO'); + var domain_word = Faker.Internet.domainWord(); + + assert.ok(domain_word); + assert.strictEqual(domain_word, 'foo'); + + Faker.random.first_name.restore(); + }); + }); + + describe("ip()", function() { + it("returns a random IP address with four parts", function() { + var ip = Faker.Internet.ip(); + var parts = ip.split('.'); + assert.equal(parts.length, 4); + }); + }); +}); |
