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 | |
| parent | d3299b466fa0c6c4e755d2ce39fb8bec6d995bfa (diff) | |
| download | faker-0c8412564fc2dbd47f01e86f93198be390ef4335.tar.xz faker-0c8412564fc2dbd47f01e86f93198be390ef4335.zip | |
100% test coverage.
| -rw-r--r-- | lib/address.js | 4 | ||||
| -rw-r--r-- | lib/helpers.js | 12 | ||||
| -rw-r--r-- | lib/internet.js | 59 | ||||
| -rw-r--r-- | lib/random.js | 5 | ||||
| -rw-r--r-- | test/company.unit.js | 6 | ||||
| -rw-r--r-- | test/helpers.unit.js | 35 | ||||
| -rw-r--r-- | test/internet.unit.js | 83 |
7 files changed, 161 insertions, 43 deletions
diff --git a/lib/address.js b/lib/address.js index f02d621c..936cbd47 100644 --- a/lib/address.js +++ b/lib/address.js @@ -4,7 +4,7 @@ var definitions = require('../lib/definitions'); var address = { zipCode: function () { - return Helpers.replaceSymbolWithNumber(Helpers.randomize(["#####", '#####-####'])); + return Helpers.replaceSymbolWithNumber(Faker.random.array_rand(["#####", '#####-####'])); }, zipCodeFormat: function (format) { @@ -54,7 +54,7 @@ var address = { }, secondaryAddress: function () { - return Helpers.replaceSymbolWithNumber(Helpers.randomize( + return Helpers.replaceSymbolWithNumber(Faker.random.array_rand( [ 'Apt. ###', 'Suite ###' diff --git a/lib/helpers.js b/lib/helpers.js index ccfaf561..aa20ba4c 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -1,15 +1,5 @@ var Faker = require('../index'); -// temporary backword-compatibility -exports.randomNumber = function (range) { - return Faker.random.number(range); -}; - -// temporary backword-compatibility -exports.randomize = function (array) { - return Faker.random.array_rand(array); -}; - // parses string for a symbol and replace it with a random number from 1-10 exports.replaceSymbolWithNumber = function (string, symbol) { // default symbol is '#' @@ -102,8 +92,10 @@ exports.userCard = function () { }; +/* String.prototype.capitalize = function () { //v1.0 return this.replace(/\w+/g, function (a) { return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase(); }); }; +*/ diff --git a/lib/internet.js b/lib/internet.js index 5efa37a0..022095e9 100644 --- a/lib/internet.js +++ b/lib/internet.js @@ -1,36 +1,39 @@ -var Helpers = require('./helpers'); -var definitions = require('./definitions'); +var Faker = require('../index'); -exports.email = function () { - return this.userName() + "@" + this.domainName(); -}; +var internet = { + email: function () { + return this.userName() + "@" + this.domainName(); + }, -exports.userName = function () { - switch (Helpers.randomNumber(2)) { - case 0: - return Helpers.randomize(definitions.first_name()); - case 1: - return Helpers.randomize(definitions.first_name()) + Helpers.randomize([".", "_"]) + Helpers.randomize(definitions.last_name()); - } -}; + userName: function () { + switch (Faker.random.number(2)) { + case 0: + return Faker.random.first_name(); + case 1: + return Faker.random.first_name() + Faker.random.array_rand([".", "_"]) + Faker.random.last_name(); + } + }, -exports.domainName = function () { - return this.domainWord() + "." + Helpers.randomize(definitions.domain_suffix()); -}; + domainName: function () { + return this.domainWord() + "." + Faker.random.domain_suffix(); + }, -exports.domainWord = function () { - return Helpers.randomize(definitions.first_name()).toLowerCase(); -}; + domainWord: function () { + return Faker.random.first_name().toLowerCase(); + }, -exports.ip = function () { - var randNum = function () { - return (Math.random() * 254 + 1).toFixed(0); - }; + ip: function () { + var randNum = function () { + return (Math.random() * 254 + 1).toFixed(0); + }; - var result = []; - for (var i = 0; i < 4; i++) { - result[i] = randNum(); - } + var result = []; + for (var i = 0; i < 4; i++) { + result[i] = randNum(); + } - return result.join("."); + return result.join("."); + } }; + +module.exports = internet; diff --git a/lib/random.js b/lib/random.js index 89dbd1fd..6857240f 100644 --- a/lib/random.js +++ b/lib/random.js @@ -90,7 +90,12 @@ var random = { phone_formats: function () { return this.array_rand(definitions.phone_formats()); + }, + + domain_suffix: function () { + return this.array_rand(definitions.domain_suffix()); } + }; module.exports = random; 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); + }); + }); +}); |
