diff options
| author | amillwood <[email protected]> | 2023-11-19 03:31:05 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-11-19 09:31:05 +0100 |
| commit | 0ee1c6751ec97e10ca1436d2b100b4acb1ac90ec (patch) | |
| tree | 237effde94a1c61adb707065c195e73b6a78f35e /src/modules | |
| parent | b8049d171086bce7b46eb617c88f44cfdd019e00 (diff) | |
| download | faker-0ee1c6751ec97e10ca1436d2b100b4acb1ac90ec.tar.xz faker-0ee1c6751ec97e10ca1436d2b100b4acb1ac90ec.zip | |
fix(internet): username method to return value that always includes… (#2506)
Co-authored-by: Austin Millwood <[email protected]>
Diffstat (limited to 'src/modules')
| -rw-r--r-- | src/modules/internet/index.ts | 61 |
1 files changed, 40 insertions, 21 deletions
diff --git a/src/modules/internet/index.ts b/src/modules/internet/index.ts index 8cc651a3..bdc84dd6 100644 --- a/src/modules/internet/index.ts +++ b/src/modules/internet/index.ts @@ -65,7 +65,9 @@ export class InternetModule extends ModuleBase { * * @example * faker.internet.email() // '[email protected]' - * faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe' }) // '[email protected]' + * faker.internet.email({ firstName: 'Jeanne'}) // '[email protected]' + * faker.internet.email({ firstName: 'Jeanne'}) // '[email protected]' + * faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe' }) // '[email protected]' * faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe', provider: 'example.fakerjs.dev' }) // '[email protected]' * faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe', provider: 'example.fakerjs.dev', allowSpecialCharacters: true }) // 'Jeanne%[email protected]' * @@ -107,7 +109,9 @@ export class InternetModule extends ModuleBase { * * @example * faker.internet.email() // '[email protected]' - * faker.internet.email('Jeanne', 'Doe') // '[email protected]' + * faker.internet.email('Jeanne') // '[email protected]' + * faker.internet.email('Jeanne') // '[email protected]' + * faker.internet.email('Jeanne', 'Doe') // '[email protected]' * faker.internet.email('Jeanne', 'Doe', 'example.fakerjs.dev') // '[email protected]' * faker.internet.email('Jeanne', 'Doe', 'example.fakerjs.dev', { allowSpecialCharacters: true }) // 'Jeanne%[email protected]' * @@ -145,7 +149,9 @@ export class InternetModule extends ModuleBase { * * @example * faker.internet.email() // '[email protected]' - * faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe' }) // '[email protected]' + * faker.internet.email({ firstName: 'Jeanne' }) // '[email protected]' + * faker.internet.email({ firstName: 'Jeanne' }) // '[email protected]' + * faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe' }) // '[email protected]' * faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe', provider: 'example.fakerjs.dev' }) // '[email protected]' * faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe', provider: 'example.fakerjs.dev', allowSpecialCharacters: true }) // 'Jeanne%[email protected]' * @@ -248,8 +254,8 @@ export class InternetModule extends ModuleBase { } const { - firstName = this.faker.person.firstName(), - lastName = legacyLastName ?? this.faker.person.lastName(), + firstName, + lastName = legacyLastName, provider = legacyProvider ?? this.faker.helpers.arrayElement( this.faker.definitions.internet.free_email @@ -295,7 +301,9 @@ export class InternetModule extends ModuleBase { * * @example * faker.internet.exampleEmail() // '[email protected]' - * faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe' }) // '[email protected]' + * faker.internet.exampleEmail({ firstName: 'Jeanne' }) // '[email protected]' + * faker.internet.exampleEmail({ firstName: 'Jeanne' }) // '[email protected]' + * faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe' }) // '[email protected]' * faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe', allowSpecialCharacters: true }) // 'Jeanne%[email protected]' * * @since 3.1.0 @@ -331,7 +339,9 @@ export class InternetModule extends ModuleBase { * * @example * faker.internet.exampleEmail() // '[email protected]' - * faker.internet.exampleEmail('Jeanne', 'Doe') // '[email protected]' + * faker.internet.exampleEmail('Jeanne') // '[email protected]' + * faker.internet.exampleEmail('Jeanne') // '[email protected]' + * faker.internet.exampleEmail('Jeanne', 'Doe') // '[email protected]' * faker.internet.exampleEmail('Jeanne', 'Doe', { allowSpecialCharacters: true }) // 'Jeanne%[email protected]' * * @since 3.1.0 @@ -365,7 +375,9 @@ export class InternetModule extends ModuleBase { * * @example * faker.internet.exampleEmail() // '[email protected]' - * faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe' }) // '[email protected]' + * faker.internet.exampleEmail({ firstName: 'Jeanne' }) // '[email protected]' + * faker.internet.exampleEmail({ firstName: 'Jeanne' }) // '[email protected]' + * faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe' }) // '[email protected]' * faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe', allowSpecialCharacters: true }) // 'Jeanne%[email protected]' * * @since 3.1.0 @@ -454,8 +466,8 @@ export class InternetModule extends ModuleBase { } const { - firstName = this.faker.person.firstName(), - lastName = legacyLastName ?? this.faker.person.lastName(), + firstName, + lastName = legacyLastName, allowSpecialCharacters = legacyOptions?.allowSpecialCharacters ?? false, } = options; @@ -485,7 +497,9 @@ export class InternetModule extends ModuleBase { * * @example * faker.internet.userName() // 'Nettie_Zboncak40' - * faker.internet.userName({ firstName: 'Jeanne', lastName: 'Doe'}) // 'Jeanne98' - note surname is not used + * faker.internet.userName({ firstName: 'Jeanne' }) // 'Jeanne98' + * faker.internet.userName({ firstName: 'Jeanne' }) // 'Jeanne.Smith98' + * faker.internet.userName({ firstName: 'Jeanne', lastName: 'Doe'}) // 'Jeanne_Doe98' * faker.internet.userName({ firstName: 'John', lastName: 'Doe' }) // 'John.Doe' * faker.internet.userName({ firstName: 'Hélene', lastName: 'Müller' }) // 'Helene_Muller11' * faker.internet.userName({ firstName: 'Фёдор', lastName: 'Достоевский' }) // 'Fedor.Dostoevskii50' @@ -520,7 +534,9 @@ export class InternetModule extends ModuleBase { * * @example * faker.internet.userName() // 'Nettie_Zboncak40' - * faker.internet.userName('Jeanne', 'Doe') // 'Jeanne98' - note surname is not used + * faker.internet.userName('Jeanne') // 'Jeanne98' + * faker.internet.userName('Jeanne') // 'Jeanne.Smith98' + * faker.internet.userName('Jeanne', 'Doe') // 'Jeanne_Doe98' * faker.internet.userName('John', 'Doe') // 'John.Doe' * faker.internet.userName('Hélene', 'Müller') // 'Helene_Muller11' * faker.internet.userName('Фёдор', 'Достоевский') // 'Fedor.Dostoevskii50' @@ -546,7 +562,9 @@ export class InternetModule extends ModuleBase { * * @example * faker.internet.userName() // 'Nettie_Zboncak40' - * faker.internet.userName({ firstName: 'Jeanne', lastName: 'Doe'}) // 'Jeanne98' - note surname is not used + * faker.internet.userName({ firstName: 'Jeanne'}) // 'Jeanne98' + * faker.internet.userName({ firstName: 'Jeanne'}) // 'Jeanne.Smith98' + * faker.internet.userName({ firstName: 'Jeanne', lastName: 'Doe'}) // 'Jeanne_Doe98' * faker.internet.userName({ firstName: 'John', lastName: 'Doe' }) // 'John.Doe' * faker.internet.userName({ firstName: 'Hélene', lastName: 'Müller' }) // 'Helene_Muller11' * faker.internet.userName({ firstName: 'Фёдор', lastName: 'Достоевский' }) // 'Fedor.Dostoevskii50' @@ -608,23 +626,24 @@ export class InternetModule extends ModuleBase { const { firstName = this.faker.person.firstName(), lastName = legacyLastName ?? this.faker.person.lastName(), + lastName: hasLastName = legacyLastName, } = options; let result: string; - switch (this.faker.number.int(2)) { + const strategy = this.faker.number.int(hasLastName ? 1 : 2); + const separator = this.faker.helpers.arrayElement(['.', '_']); + switch (strategy) { case 0: - result = `${firstName}${this.faker.number.int(99)}`; + result = `${firstName}${separator}${lastName}${this.faker.number.int( + 99 + )}`; break; case 1: - result = - firstName + this.faker.helpers.arrayElement(['.', '_']) + lastName; + result = `${firstName}${separator}${lastName}`; break; case 2: default: - result = `${firstName}${this.faker.helpers.arrayElement([ - '.', - '_', - ])}${lastName}${this.faker.number.int(99)}`; + result = `${firstName}${this.faker.number.int(99)}`; break; } |
