aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Donovan <[email protected]>2013-01-05 20:06:55 -0800
committerBryan Donovan <[email protected]>2013-01-05 20:06:55 -0800
commit71884c826400558d62e0b131b236b84c93f2889d (patch)
tree841ed947908b79d259be610e1bf5dc9db55b7b1b
parent0b3cfbee64547e7a624c8d8f988c293ed463cf4b (diff)
downloadfaker-71884c826400558d62e0b131b236b84c93f2889d.tar.xz
faker-71884c826400558d62e0b131b236b84c93f2889d.zip
refactoring to use random.js
-rw-r--r--lib/name.js13
-rw-r--r--lib/random.js14
-rw-r--r--test/company.unit.js20
-rw-r--r--test/name.unit.js46
4 files changed, 48 insertions, 45 deletions
diff --git a/lib/name.js b/lib/name.js
index 6544cec7..bfebe649 100644
--- a/lib/name.js
+++ b/lib/name.js
@@ -1,22 +1,21 @@
-var Helpers = require('./helpers');
-var definitions = require('./definitions');
+var random = require('./random');
var _name = {
firstName: function () {
- return Helpers.randomize(definitions.first_name());
+ return random.first_name();
},
lastName: function () {
- return Helpers.randomize(definitions.last_name());
+ return random.last_name();
},
findName: function () {
- var r = Helpers.randomNumber(8);
+ var r = random.number(8);
switch (r) {
case 0:
- return Helpers.randomize(definitions.name_prefix()) + " " + _name.firstName() + " " + _name.lastName();
+ return random.name_prefix() + " " + _name.firstName() + " " + _name.lastName();
case 1:
- return _name.firstName() + " " + _name.lastName() + " " + Helpers.randomize(definitions.name_suffix);
+ return _name.firstName() + " " + _name.lastName() + " " + random.name_suffix();
}
return _name.firstName() + " " + _name.lastName();
diff --git a/lib/random.js b/lib/random.js
index abfba1a4..a052ecc6 100644
--- a/lib/random.js
+++ b/lib/random.js
@@ -3,9 +3,7 @@ var definitions = require('./definitions');
var random = {
// returns a single random number based on a range
number: function (range) {
- var r = Math.floor(Math.random() * range);
- console.log(r);
- return r;
+ return Math.floor(Math.random() * range);
},
// takes an array and returns the array randomly sorted
@@ -15,7 +13,17 @@ var random = {
}
};
+/**
+ * Generate methods that return random elements from definition arrays.
+ */
var method_names = [
+ // Name
+ 'first_name',
+ 'last_name',
+ 'name_prefix',
+ 'name_suffix',
+
+ // Company
'catch_phrase_adjective',
'catch_phrase_descriptor',
'catch_phrase_noun',
diff --git a/test/company.unit.js b/test/company.unit.js
index c7f6ae99..2a32bba1 100644
--- a/test/company.unit.js
+++ b/test/company.unit.js
@@ -16,44 +16,44 @@ describe("company.js", function () {
});
it("sometimes returns three last names", function () {
- sinon.spy(Faker.definitions, 'last_name');
+ sinon.spy(random, 'last_name');
sinon.stub(random, 'number').returns(2);
var name = Faker.Company.companyName();
var parts = name.split(' ');
assert.strictEqual(parts.length, 4); // account for word 'and'
- assert.ok(Faker.definitions.last_name.calledThrice);
+ assert.ok(random.last_name.calledThrice);
random.number.restore();
- Faker.definitions.last_name.restore();
+ random.last_name.restore();
});
it("sometimes returns two last names separated by a hyphen", function () {
- sinon.spy(Faker.definitions, 'last_name');
+ sinon.spy(random, 'last_name');
sinon.stub(random, 'number').returns(1);
var name = Faker.Company.companyName();
var parts = name.split('-');
- assert.strictEqual(parts.length, 2);
- assert.ok(Faker.definitions.last_name.calledTwice);
+ assert.ok(parts.length >= 2);
+ assert.ok(random.last_name.calledTwice);
random.number.restore();
- Faker.definitions.last_name.restore();
+ random.last_name.restore();
});
it("sometimes returns a last name with a company suffix", function () {
sinon.spy(Faker.Company, 'companySuffix');
- sinon.spy(Faker.definitions, 'last_name');
+ sinon.spy(random, 'last_name');
sinon.stub(random, 'number').returns(0);
var name = Faker.Company.companyName();
var parts = name.split(' ');
assert.ok(parts.length >= 2);
- assert.ok(Faker.definitions.last_name.calledOnce);
+ assert.ok(random.last_name.calledOnce);
assert.ok(Faker.Company.companySuffix.calledOnce);
random.number.restore();
- Faker.definitions.last_name.restore();
+ random.last_name.restore();
Faker.Company.companySuffix.restore();
});
});
diff --git a/test/name.unit.js b/test/name.unit.js
index 89627cd0..a4227709 100644
--- a/test/name.unit.js
+++ b/test/name.unit.js
@@ -1,66 +1,62 @@
var assert = require('assert');
var sinon = require('sinon');
var Faker = require('../index');
+var random = require('../lib/random');
describe("name.js", function () {
describe("firstName()", function () {
- it("returns a random name from definitions", function (done) {
- sinon.stub(Faker.definitions, 'first_name').returns(['foo']);
- sinon.spy(Faker.Helpers, 'randomize');
-
+ it("returns a random name", function () {
+ sinon.stub(random, 'first_name').returns('foo');
var first_name = Faker.Name.firstName();
- assert.ok(Faker.Helpers.randomize.calledWith(['foo']));
assert.equal(first_name, 'foo');
- Faker.definitions.first_name.restore();
- Faker.Helpers.randomize.restore();
-
- done();
+ random.first_name.restore();
});
});
describe("lastName()", function () {
- it("returns a random name from definitions", function (done) {
- sinon.stub(Faker.definitions, 'last_name').returns(['foo']);
- sinon.spy(Faker.Helpers, 'randomize');
+ it("returns a random name", function () {
+ sinon.stub(random, 'last_name').returns('foo');
var last_name = Faker.Name.lastName();
- assert.ok(Faker.Helpers.randomize.calledWith(['foo']));
assert.equal(last_name, 'foo');
- Faker.definitions.last_name.restore();
- Faker.Helpers.randomize.restore();
-
- done();
+ random.last_name.restore();
});
});
describe("findName()", function () {
it("usually returns a first name and last name", function () {
- sinon.stub(Faker.Helpers, 'randomNumber').returns(5);
+ sinon.stub(random, 'number').returns(5);
var name = Faker.Name.findName();
assert.ok(name);
var parts = name.split(' ');
+
assert.strictEqual(parts.length, 2);
- Faker.Helpers.randomNumber.restore();
+
+ random.number.restore();
});
it("occasionally returns a first name and last name with a prefix", function () {
- sinon.stub(Faker.Helpers, 'randomNumber').returns(0);
+ sinon.stub(random, 'number').returns(0);
var name = Faker.Name.findName();
var parts = name.split(' ');
- assert.strictEqual(parts.length, 3);
- Faker.Helpers.randomNumber.restore();
+
+ assert.ok(parts.length >= 3);
+
+ random.number.restore();
});
it("occasionally returns a first name and last name with a suffix", function () {
- sinon.stub(Faker.Helpers, 'randomNumber').returns(1);
+ sinon.stub(random, 'number').returns(1);
var name = Faker.Name.findName();
var parts = name.split(' ');
- assert.strictEqual(parts.length, 3);
- Faker.Helpers.randomNumber.restore();
+
+ assert.ok(parts.length >= 3);
+
+ random.number.restore();
});
});
});