diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/helpers.spec.ts | 12 | ||||
| -rw-r--r-- | test/name.spec.ts | 239 |
2 files changed, 162 insertions, 89 deletions
diff --git a/test/helpers.spec.ts b/test/helpers.spec.ts index 64c12df5..cbb541c1 100644 --- a/test/helpers.spec.ts +++ b/test/helpers.spec.ts @@ -63,7 +63,7 @@ const seededRuns = [ name: 'Weissnat, Wintheiser and MacGyver', }, email: '[email protected]', - name: 'Lorene Deckow', + name: 'Darnell Deckow', phone: '559.640.8661', posts: [ { @@ -138,7 +138,7 @@ const seededRuns = [ name: 'Langworth - Wyman', }, email: '[email protected]', - name: 'Lorene Deckow', + name: 'Darnell Deckow', phone: '225-631-0293 x240', username: 'Moses_Satterfield', website: 'sparse-ottoman.biz', @@ -213,7 +213,7 @@ const seededRuns = [ name: 'Armstrong, Smitham and Renner', }, email: '[email protected]', - name: 'Marilyn Effertz', + name: 'Eugene Effertz', phone: '818-698-6199 x848', posts: [ { @@ -287,7 +287,7 @@ const seededRuns = [ name: 'Daugherty - Connelly', }, email: '[email protected]', - name: 'Marilyn Effertz', + name: 'Eugene Effertz', phone: '803.543.5573 x1428', username: 'Dudley.Littel', website: 'queasy-guide.info', @@ -362,7 +362,7 @@ const seededRuns = [ name: 'Jacobi and Sons', }, email: '[email protected]', - name: 'Darrel Sanford', + name: 'Henrietta Sanford', phone: '621-735-9398', posts: [ { @@ -436,7 +436,7 @@ const seededRuns = [ name: 'Fahey LLC', }, email: '[email protected]', - name: 'Darrel Sanford', + name: 'Henrietta Sanford', phone: '469.570.3390', username: 'Dangelo.Christiansen67', website: 'mild-hearth.org', diff --git a/test/name.spec.ts b/test/name.spec.ts index 2b8e9f0a..7572b3d6 100644 --- a/test/name.spec.ts +++ b/test/name.spec.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, it } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { faker } from '../src'; const seededRuns = [ @@ -12,10 +12,10 @@ const seededRuns = [ noArgs: 'Hintz', }, middleName: { - noArgs: 'Owen', + noArgs: 'Greer', }, findName: { - noArgs: 'Lorene Deckow', + noArgs: 'Darnell Deckow', }, jobTitle: { noArgs: 'Regional Data Representative', @@ -53,10 +53,10 @@ const seededRuns = [ noArgs: 'Gibson', }, middleName: { - noArgs: 'Kenji', + noArgs: 'Dakota', }, findName: { - noArgs: 'Marilyn Effertz', + noArgs: 'Eugene Effertz', }, jobTitle: { noArgs: 'Future Infrastructure Liaison', @@ -94,10 +94,10 @@ const seededRuns = [ noArgs: 'Ward', }, middleName: { - noArgs: 'Isla', + noArgs: 'Sawyer', }, findName: { - noArgs: 'Darrel Sanford', + noArgs: 'Henrietta Sanford', }, jobTitle: { noArgs: 'Chief Division Agent', @@ -147,6 +147,7 @@ const functionNames = [ describe('name', () => { afterEach(() => { faker.locale = 'en'; + faker.localeFallback = 'en'; }); for (const { seed, expectations } of seededRuns) { @@ -172,6 +173,7 @@ describe('name', () => { describe('firstName()', () => { beforeEach(() => { faker.locale = 'en'; + faker.localeFallback = 'en'; }); it('should return a random first name', () => { @@ -182,23 +184,47 @@ describe('name', () => { }); it('should return a gender-specific first name when passed a number', () => { + const spy = vi.spyOn(console, 'warn'); + let name = faker.name.firstName(0); expect(faker.definitions.name.male_first_name).toContain(name); + expect(spy).toHaveBeenCalledWith( + `Deprecation Warning: Please use 'male' for gender instead of 0` + ); + name = faker.name.firstName(1); expect(faker.definitions.name.female_first_name).toContain(name); + expect(spy).toHaveBeenCalledWith( + `Deprecation Warning: Please use 'female' for gender instead of 1` + ); + + spy.mockRestore(); }); it('should return a gender-specific first name when passed a string', () => { - let name = faker.name.firstName('male'); - expect(faker.definitions.name.male_first_name).toContain(name); - name = faker.name.firstName('female'); + let name = faker.name.firstName('female'); expect(faker.definitions.name.female_first_name).toContain(name); + + name = faker.name.firstName('male'); + expect(faker.definitions.name.male_first_name).toContain(name); + }); + + it('should return a gender-specific first name when no gender-specific first name was defined', () => { + faker.locale = 'az'; + faker.localeFallback = 'az'; + + const name = faker.name.firstName(); + expect([ + ...faker.definitions.name.female_first_name, + ...faker.definitions.name.male_first_name, + ]).toContain(name); }); }); describe('lastName()', () => { beforeEach(() => { faker.locale = 'en'; + faker.localeFallback = 'en'; }); it('should return a random last name', () => { @@ -211,29 +237,38 @@ describe('name', () => { it('should return a gender-specific last name when passed a number', () => { faker.locale = 'az'; + const spy = vi.spyOn(console, 'warn'); + let name = faker.name.lastName(0); expect(faker.definitions.name.male_last_name).toContain(name); + expect(spy).toHaveBeenCalledWith( + `Deprecation Warning: Please use 'male' for gender instead of 0` + ); + name = faker.name.lastName(1); expect(faker.definitions.name.female_last_name).toContain(name); + expect(spy).toHaveBeenCalledWith( + `Deprecation Warning: Please use 'female' for gender instead of 1` + ); + + spy.mockRestore(); }); - // TODO @Shinigami92 2022-01-30: There is a bug: https://github.com/faker-js/faker/issues/373 - it.todo( - 'should return a gender-specific last name when passed a string', - () => { - faker.locale = 'az'; + it('should return a gender-specific last name when passed a string', () => { + faker.locale = 'az'; - let name = faker.name.lastName('male'); - expect(faker.definitions.name.male_last_name).toContain(name); - name = faker.name.lastName('female'); - expect(faker.definitions.name.female_last_name).toContain(name); - } - ); + let name = faker.name.lastName('female'); + expect(faker.definitions.name.female_last_name).toContain(name); + + name = faker.name.lastName('male'); + expect(faker.definitions.name.male_last_name).toContain(name); + }); }); describe('middleName()', () => { beforeEach(() => { faker.locale = 'en'; + faker.localeFallback = 'en'; }); it('should return a random middle name', () => { @@ -243,42 +278,54 @@ describe('name', () => { expect(middle_name.length).greaterThan(0); }); - it.todo('should return a middle name when passed en locale', () => { + it('should return a middle name when passed en locale', () => { faker.locale = 'en'; let name = faker.name.middleName(); expect(faker.definitions.name.middle_name).toContain(name); - name = faker.name.middleName(0); - expect(faker.definitions.name.male_middle_name).toContain(name); - name = faker.name.middleName(1); + + name = faker.name.middleName('female'); expect(faker.definitions.name.female_middle_name).toContain(name); + + name = faker.name.middleName('male'); + expect(faker.definitions.name.male_middle_name).toContain(name); }); it('should return a gender-specific middle name when passed a number', () => { + const spy = vi.spyOn(console, 'warn'); + faker.locale = 'uk'; let name = faker.name.middleName(0); expect(faker.definitions.name.male_middle_name).toContain(name); + expect(spy).toHaveBeenCalledWith( + `Deprecation Warning: Please use 'male' for gender instead of 0` + ); + name = faker.name.middleName(1); expect(faker.definitions.name.female_middle_name).toContain(name); + expect(spy).toHaveBeenCalledWith( + `Deprecation Warning: Please use 'female' for gender instead of 1` + ); + + spy.mockRestore(); }); - it.todo( - 'should return a gender-specific middle name when passed a string', - () => { - faker.locale = 'uk'; + it('should return a gender-specific middle name when passed a string', () => { + faker.locale = 'uk'; + + let name = faker.name.middleName('female'); + expect(faker.definitions.name.female_middle_name).toContain(name); - let name = faker.name.middleName('male'); - expect(faker.definitions.name.male_middle_name).toContain(name); - name = faker.name.middleName('female'); - expect(faker.definitions.name.female_middle_name).toContain(name); - } - ); + name = faker.name.middleName('male'); + expect(faker.definitions.name.male_middle_name).toContain(name); + }); }); describe('findName()', () => { beforeEach(() => { faker.locale = 'en'; + faker.localeFallback = 'en'; }); it('should return a name with firstName and lastName', () => { @@ -288,24 +335,6 @@ describe('name', () => { expect(fullName).toContain(' '); }); - it('should return a male gender-specific name with firstName and lastName', () => { - faker.locale = 'mk'; - - const male_specific = [ - ...faker.definitions.name.male_prefix, - ...faker.definitions.name.male_first_name, - ...faker.definitions.name.male_last_name, - ...faker.definitions.name.suffix, - ]; - - const fullName = faker.name.findName(undefined, undefined, 0); - - const parts = fullName.split(' '); - for (const part of parts) { - expect(male_specific).toContain(part); - } - }); - it('should return a female gender-specific name with firstName and lastName', () => { faker.locale = 'mk'; @@ -316,7 +345,7 @@ describe('name', () => { ...faker.definitions.name.suffix, ]; - const fullName = faker.name.findName(undefined, undefined, 1); + const fullName = faker.name.findName(undefined, undefined, 'female'); const parts = fullName.split(' '); for (const part of parts) { @@ -324,17 +353,17 @@ describe('name', () => { } }); - it('should return a male gender-specific name with given firstName and lastName', () => { + it('should return a male gender-specific name with firstName and lastName', () => { faker.locale = 'mk'; const male_specific = [ ...faker.definitions.name.male_prefix, - 'firstName', - 'lastName', + ...faker.definitions.name.male_first_name, + ...faker.definitions.name.male_last_name, ...faker.definitions.name.suffix, ]; - const fullName = faker.name.findName('firstName', 'lastName', 0); + const fullName = faker.name.findName(undefined, undefined, 'male'); const parts = fullName.split(' '); for (const part of parts) { @@ -352,36 +381,41 @@ describe('name', () => { ...faker.definitions.name.suffix, ]; - const fullName = faker.name.findName('firstName', 'lastName', 1); + const fullName = faker.name.findName( + 'firstName', + 'lastName', + 'female' + ); const parts = fullName.split(' '); for (const part of parts) { expect(male_specific).toContain(part); } }); - }); - - describe('jobTitle()', () => { - beforeEach(() => { - faker.locale = 'en'; - }); - it('should return a job title consisting of a descriptor, area, and type', () => { - const jobTitle = faker.name.jobTitle(); + it('should return a male gender-specific name with given firstName and lastName', () => { + faker.locale = 'mk'; - expect(jobTitle).toBeTypeOf('string'); + const male_specific = [ + ...faker.definitions.name.male_prefix, + 'firstName', + 'lastName', + ...faker.definitions.name.suffix, + ]; - const [descriptor, level, job] = jobTitle.split(' '); + const fullName = faker.name.findName('firstName', 'lastName', 'male'); - expect(faker.definitions.name.title.descriptor).toContain(descriptor); - expect(faker.definitions.name.title.level).toContain(level); - expect(faker.definitions.name.title.job).toContain(job); + const parts = fullName.split(' '); + for (const part of parts) { + expect(male_specific).toContain(part); + } }); }); describe('gender()', () => { beforeEach(() => { faker.locale = 'en'; + faker.localeFallback = 'en'; }); it('should return a default gender', () => { @@ -402,6 +436,7 @@ describe('name', () => { describe('prefix()', () => { beforeEach(() => { faker.locale = 'en'; + faker.localeFallback = 'en'; }); it('should return a prefix', () => { @@ -411,17 +446,16 @@ describe('name', () => { expect(faker.definitions.name.prefix).toContain(prefix); }); - it('should return a male prefix', () => { + it('should return a female prefix with given string', () => { faker.locale = 'mk'; - const prefix = faker.name.prefix(0); + const prefix = faker.name.prefix('female'); expect(prefix).toBeTypeOf('string'); - expect(faker.definitions.name.male_prefix).toContain(prefix); + expect(faker.definitions.name.female_prefix).toContain(prefix); }); - // TODO @Shinigami92 2022-01-31: There is a bug: https://github.com/faker-js/faker/issues/373 - it.todo('should return a male prefix with given string', () => { + it('should return a male prefix with given string', () => { faker.locale = 'mk'; const prefix = faker.name.prefix('male'); @@ -430,29 +464,45 @@ describe('name', () => { expect(faker.definitions.name.male_prefix).toContain(prefix); }); - it('should return a female prefix', () => { + it('should return a male prefix with given number', () => { + const spy = vi.spyOn(console, 'warn'); + faker.locale = 'mk'; - const prefix = faker.name.prefix(1); + const prefix = faker.name.prefix(0); expect(prefix).toBeTypeOf('string'); - expect(faker.definitions.name.female_prefix).toContain(prefix); + expect(faker.definitions.name.male_prefix).toContain(prefix); + + expect(spy).toHaveBeenCalledWith( + `Deprecation Warning: Please use 'male' for gender instead of 0` + ); + + spy.mockRestore(); }); - // TODO @Shinigami92 2022-01-31: There is a bug: https://github.com/faker-js/faker/issues/373 - it.todo('should return a female prefix with given string', () => { + it('should return a female prefix with given number', () => { + const spy = vi.spyOn(console, 'warn'); + faker.locale = 'mk'; - const prefix = faker.name.prefix('female'); + const prefix = faker.name.prefix(1); expect(prefix).toBeTypeOf('string'); expect(faker.definitions.name.female_prefix).toContain(prefix); + + expect(spy).toHaveBeenCalledWith( + `Deprecation Warning: Please use 'female' for gender instead of 1` + ); + + spy.mockRestore(); }); }); describe('suffix()', () => { beforeEach(() => { faker.locale = 'en'; + faker.localeFallback = 'en'; }); it('should return a suffix', () => { @@ -466,6 +516,7 @@ describe('name', () => { describe('title()', () => { beforeEach(() => { faker.locale = 'en'; + faker.localeFallback = 'en'; }); it('should return a title consisting of a descriptor, area, and type', () => { @@ -482,9 +533,29 @@ describe('name', () => { }); }); + describe('jobTitle()', () => { + beforeEach(() => { + faker.locale = 'en'; + faker.localeFallback = 'en'; + }); + + it('should return a job title consisting of a descriptor, area, and type', () => { + const jobTitle = faker.name.jobTitle(); + + expect(jobTitle).toBeTypeOf('string'); + + const [descriptor, level, job] = jobTitle.split(' '); + + expect(faker.definitions.name.title.descriptor).toContain(descriptor); + expect(faker.definitions.name.title.level).toContain(level); + expect(faker.definitions.name.title.job).toContain(job); + }); + }); + describe('jobDescriptor()', () => { beforeEach(() => { faker.locale = 'en'; + faker.localeFallback = 'en'; }); it('should return a descriptor', () => { @@ -499,6 +570,7 @@ describe('name', () => { describe('jobArea()', () => { beforeEach(() => { faker.locale = 'en'; + faker.localeFallback = 'en'; }); it('should return a level', () => { @@ -513,6 +585,7 @@ describe('name', () => { describe('jobType()', () => { beforeEach(() => { faker.locale = 'en'; + faker.localeFallback = 'en'; }); it('should return a job', () => { |
