diff options
| author | Marak <[email protected]> | 2020-08-23 22:18:40 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-08-23 22:18:40 -0500 |
| commit | 3bbac5d10694ea7be4393da54584d3e4f80cd99f (patch) | |
| tree | fff856f92d134d3263c76c808d2cd1afeeeb57b0 | |
| parent | a0a88506e3cdeadd547a58f2e40ff945f3a42f51 (diff) | |
| parent | b3fcea2ff8aa03957afbfab2632c72bf020da0e7 (diff) | |
| download | faker-3bbac5d10694ea7be4393da54584d3e4f80cd99f.tar.xz faker-3bbac5d10694ea7be4393da54584d3e4f80cd99f.zip | |
Merge pull request #684 from blslade-neumont/dev-gender-string
Allowed gender passed to name.firstName(gender) to be a string
| -rw-r--r-- | lib/name.js | 10 | ||||
| -rw-r--r-- | test/name.unit.js | 23 |
2 files changed, 33 insertions, 0 deletions
diff --git a/lib/name.js b/lib/name.js index 49b54614..3312b250 100644 --- a/lib/name.js +++ b/lib/name.js @@ -15,6 +15,16 @@ function Name (faker) { if (typeof faker.definitions.name.male_first_name !== "undefined" && typeof faker.definitions.name.female_first_name !== "undefined") { // some locale datasets ( like ru ) have first_name split by gender. since the name.first_name field does not exist in these datasets, // we must randomly pick a name from either gender array so faker.name.firstName will return the correct locale data ( and not fallback ) + + if(typeof gender === 'string') { + if(gender.toLowerCase() === 'male') { + gender = 0; + } + else if(gender.toLowerCase() === 'female') { + gender = 1; + } + } + if (typeof gender !== 'number') { if(typeof faker.definitions.name.first_name === "undefined") { gender = faker.random.number(1); diff --git a/test/name.unit.js b/test/name.unit.js index d6b311a3..8cf25bab 100644 --- a/test/name.unit.js +++ b/test/name.unit.js @@ -5,6 +5,11 @@ if (typeof module !== 'undefined') { } +function assertInArray(value, array) { + var idx = array.indexOf(value); + assert.notEqual(idx, -1); +} + describe("name.js", function () { describe("firstName()", function () { it("returns a random name", function () { @@ -15,6 +20,24 @@ describe("name.js", function () { faker.name.firstName.restore(); }); + + it("returns a gender-specific name when passed a number", function () { + for (var q = 0; q < 30; q++) { + var gender = Math.floor(Math.random() * 2); + var name = faker.name.firstName(gender); + if (gender === 0) assertInArray(name, faker.definitions.name.male_first_name); + else assertInArray(name, faker.definitions.name.female_first_name); + } + }); + + it("returns a gender-specific name when passed a string", function () { + for (var q = 0; q < 30; q++) { + var gender = Math.floor(Math.random() * 2); + var genderString = (gender === 0 ? 'male' : 'female'); + var name = faker.name.firstName(genderString); + assertInArray(name, faker.definitions.name[genderString + '_first_name']); + } + }); }); describe("lastName()", function () { |
