diff --git a/src/modules/name/index.ts b/src/modules/name/index.ts index b42de3db568..a61442e0447 100644 --- a/src/modules/name/index.ts +++ b/src/modules/name/index.ts @@ -284,6 +284,16 @@ export class Name { return this.faker.helpers.arrayElement(this.faker.definitions.name.sex); } + /** + * Returns a random sex type. + * + * @example + * faker.name.sexType() // Sex.Female + */ + sexType(): SexType { + return this.faker.helpers.objectValue(Sex); + } + /** * Returns a random name prefix. * diff --git a/test/__snapshots__/name.spec.ts.snap b/test/__snapshots__/name.spec.ts.snap index ed921dcdfe3..79a54976ffc 100644 --- a/test/__snapshots__/name.spec.ts.snap +++ b/test/__snapshots__/name.spec.ts.snap @@ -54,6 +54,8 @@ exports[`name > 42 > sex > noArgs 1`] = `"female"`; exports[`name > 42 > sex > with gender 1`] = `"female"`; +exports[`name > 42 > sexType 1`] = `"female"`; + exports[`name > 42 > suffix > noArgs 1`] = `"III"`; exports[`name > 42 > suffix > with gender 1`] = `"III"`; @@ -112,6 +114,8 @@ exports[`name > 1211 > sex > noArgs 1`] = `"male"`; exports[`name > 1211 > sex > with gender 1`] = `"male"`; +exports[`name > 1211 > sexType 1`] = `"male"`; + exports[`name > 1211 > suffix > noArgs 1`] = `"DVM"`; exports[`name > 1211 > suffix > with gender 1`] = `"DVM"`; @@ -170,6 +174,8 @@ exports[`name > 1337 > sex > noArgs 1`] = `"female"`; exports[`name > 1337 > sex > with gender 1`] = `"female"`; +exports[`name > 1337 > sexType 1`] = `"female"`; + exports[`name > 1337 > suffix > noArgs 1`] = `"I"`; exports[`name > 1337 > suffix > with gender 1`] = `"I"`; diff --git a/test/name.spec.ts b/test/name.spec.ts index ad55e914933..35cca232875 100644 --- a/test/name.spec.ts +++ b/test/name.spec.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest'; -import { faker } from '../src'; +import { faker, Sex } from '../src'; import { seededTests } from './support/seededRuns'; const NON_SEEDED_BASED_RUN = 5; @@ -11,7 +11,7 @@ describe('name', () => { }); seededTests(faker, 'name', (t) => { - t.itEach('jobTitle', 'jobDescriptor', 'jobArea', 'jobType'); + t.itEach('sexType', 'jobTitle', 'jobDescriptor', 'jobArea', 'jobType'); t.describeEach( 'firstName', @@ -365,6 +365,15 @@ describe('name', () => { }); }); + describe('sexType()', () => { + it('should return a sex type', () => { + const sexType = faker.name.sexType(); + + expect(sexType).toBeTypeOf('string'); + expect(Object.values(Sex)).toContain(sexType); + }); + }); + describe('prefix()', () => { beforeEach(() => { faker.locale = 'en';