aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorBryan Donovan <[email protected]>2013-01-07 12:13:55 -0800
committerBryan Donovan <[email protected]>2013-01-07 12:13:55 -0800
commit0c8412564fc2dbd47f01e86f93198be390ef4335 (patch)
tree6d2a88cf0c96c12dd88f67bc63273030ab8e1ae3 /test
parentd3299b466fa0c6c4e755d2ce39fb8bec6d995bfa (diff)
downloadfaker-0c8412564fc2dbd47f01e86f93198be390ef4335.tar.xz
faker-0c8412564fc2dbd47f01e86f93198be390ef4335.zip
100% test coverage.
Diffstat (limited to 'test')
-rw-r--r--test/company.unit.js6
-rw-r--r--test/helpers.unit.js35
-rw-r--r--test/internet.unit.js83
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);
+ });
+ });
+});