Skip to content

Commit 0ee1c67

Browse files
amillwoodAustin Millwood
and
Austin Millwood
authored
fix(internet): username method to return value that always includes… (#2506)
Co-authored-by: Austin Millwood <austin.millwood@capitalone.com>
1 parent b8049d1 commit 0ee1c67

File tree

4 files changed

+149
-129
lines changed

4 files changed

+149
-129
lines changed

src/modules/internet/index.ts

Lines changed: 40 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ export class InternetModule extends ModuleBase {
6565
*
6666
* @example
6767
* faker.internet.email() // 'Kassandra4@hotmail.com'
68-
* faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe' }) // 'Jeanne63@yahoo.com'
68+
* faker.internet.email({ firstName: 'Jeanne'}) // 'Jeanne63@yahoo.com'
69+
* faker.internet.email({ firstName: 'Jeanne'}) // 'Jeanne_Smith63@yahoo.com'
70+
* faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe' }) // 'Jeanne.Doe63@yahoo.com'
6971
* faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe', provider: 'example.fakerjs.dev' }) // 'Jeanne_Doe88@example.fakerjs.dev'
7072
* faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe', provider: 'example.fakerjs.dev', allowSpecialCharacters: true }) // 'Jeanne%Doe88@example.fakerjs.dev'
7173
*
@@ -107,7 +109,9 @@ export class InternetModule extends ModuleBase {
107109
*
108110
* @example
109111
* faker.internet.email() // 'Kassandra4@hotmail.com'
110-
* faker.internet.email('Jeanne', 'Doe') // 'Jeanne63@yahoo.com'
112+
* faker.internet.email('Jeanne') // 'Jeanne63@yahoo.com'
113+
* faker.internet.email('Jeanne') // 'Jeanne.Smith63@yahoo.com'
114+
* faker.internet.email('Jeanne', 'Doe') // 'Jeanne_Doe63@yahoo.com'
111115
* faker.internet.email('Jeanne', 'Doe', 'example.fakerjs.dev') // 'Jeanne_Doe88@example.fakerjs.dev'
112116
* faker.internet.email('Jeanne', 'Doe', 'example.fakerjs.dev', { allowSpecialCharacters: true }) // 'Jeanne%Doe88@example.fakerjs.dev'
113117
*
@@ -145,7 +149,9 @@ export class InternetModule extends ModuleBase {
145149
*
146150
* @example
147151
* faker.internet.email() // 'Kassandra4@hotmail.com'
148-
* faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe' }) // 'Jeanne63@yahoo.com'
152+
* faker.internet.email({ firstName: 'Jeanne' }) // 'Jeanne63@yahoo.com'
153+
* faker.internet.email({ firstName: 'Jeanne' }) // 'Jeanne.Smith63@yahoo.com'
154+
* faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe' }) // 'Jeanne_Doe63@yahoo.com'
149155
* faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe', provider: 'example.fakerjs.dev' }) // 'Jeanne_Doe88@example.fakerjs.dev'
150156
* faker.internet.email({ firstName: 'Jeanne', lastName: 'Doe', provider: 'example.fakerjs.dev', allowSpecialCharacters: true }) // 'Jeanne%Doe88@example.fakerjs.dev'
151157
*
@@ -248,8 +254,8 @@ export class InternetModule extends ModuleBase {
248254
}
249255

250256
const {
251-
firstName = this.faker.person.firstName(),
252-
lastName = legacyLastName ?? this.faker.person.lastName(),
257+
firstName,
258+
lastName = legacyLastName,
253259
provider = legacyProvider ??
254260
this.faker.helpers.arrayElement(
255261
this.faker.definitions.internet.free_email
@@ -295,7 +301,9 @@ export class InternetModule extends ModuleBase {
295301
*
296302
* @example
297303
* faker.internet.exampleEmail() // 'Helmer.Graham23@example.com'
298-
* faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe' }) // 'Jeanne96@example.net'
304+
* faker.internet.exampleEmail({ firstName: 'Jeanne' }) // 'Jeanne96@example.net'
305+
* faker.internet.exampleEmail({ firstName: 'Jeanne' }) // 'Jeanne.Smith96@example.net'
306+
* faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe' }) // 'Jeanne_Doe96@example.net'
299307
* faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe', allowSpecialCharacters: true }) // 'Jeanne%Doe88@example.com'
300308
*
301309
* @since 3.1.0
@@ -331,7 +339,9 @@ export class InternetModule extends ModuleBase {
331339
*
332340
* @example
333341
* faker.internet.exampleEmail() // 'Helmer.Graham23@example.com'
334-
* faker.internet.exampleEmail('Jeanne', 'Doe') // 'Jeanne96@example.net'
342+
* faker.internet.exampleEmail('Jeanne') // 'Jeanne96@example.net'
343+
* faker.internet.exampleEmail('Jeanne') // 'Jeanne.Smith96@example.net'
344+
* faker.internet.exampleEmail('Jeanne', 'Doe') // 'Jeanne_Doe96@example.net'
335345
* faker.internet.exampleEmail('Jeanne', 'Doe', { allowSpecialCharacters: true }) // 'Jeanne%Doe88@example.com'
336346
*
337347
* @since 3.1.0
@@ -365,7 +375,9 @@ export class InternetModule extends ModuleBase {
365375
*
366376
* @example
367377
* faker.internet.exampleEmail() // 'Helmer.Graham23@example.com'
368-
* faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe' }) // 'Jeanne96@example.net'
378+
* faker.internet.exampleEmail({ firstName: 'Jeanne' }) // 'Jeanne96@example.net'
379+
* faker.internet.exampleEmail({ firstName: 'Jeanne' }) // 'Jeanne.Smith96@example.net'
380+
* faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe' }) // 'Jeanne_Doe96@example.net'
369381
* faker.internet.exampleEmail({ firstName: 'Jeanne', lastName: 'Doe', allowSpecialCharacters: true }) // 'Jeanne%Doe88@example.com'
370382
*
371383
* @since 3.1.0
@@ -454,8 +466,8 @@ export class InternetModule extends ModuleBase {
454466
}
455467

456468
const {
457-
firstName = this.faker.person.firstName(),
458-
lastName = legacyLastName ?? this.faker.person.lastName(),
469+
firstName,
470+
lastName = legacyLastName,
459471
allowSpecialCharacters = legacyOptions?.allowSpecialCharacters ?? false,
460472
} = options;
461473

@@ -485,7 +497,9 @@ export class InternetModule extends ModuleBase {
485497
*
486498
* @example
487499
* faker.internet.userName() // 'Nettie_Zboncak40'
488-
* faker.internet.userName({ firstName: 'Jeanne', lastName: 'Doe'}) // 'Jeanne98' - note surname is not used
500+
* faker.internet.userName({ firstName: 'Jeanne' }) // 'Jeanne98'
501+
* faker.internet.userName({ firstName: 'Jeanne' }) // 'Jeanne.Smith98'
502+
* faker.internet.userName({ firstName: 'Jeanne', lastName: 'Doe'}) // 'Jeanne_Doe98'
489503
* faker.internet.userName({ firstName: 'John', lastName: 'Doe' }) // 'John.Doe'
490504
* faker.internet.userName({ firstName: 'Hélene', lastName: 'Müller' }) // 'Helene_Muller11'
491505
* faker.internet.userName({ firstName: 'Фёдор', lastName: 'Достоевский' }) // 'Fedor.Dostoevskii50'
@@ -520,7 +534,9 @@ export class InternetModule extends ModuleBase {
520534
*
521535
* @example
522536
* faker.internet.userName() // 'Nettie_Zboncak40'
523-
* faker.internet.userName('Jeanne', 'Doe') // 'Jeanne98' - note surname is not used
537+
* faker.internet.userName('Jeanne') // 'Jeanne98'
538+
* faker.internet.userName('Jeanne') // 'Jeanne.Smith98'
539+
* faker.internet.userName('Jeanne', 'Doe') // 'Jeanne_Doe98'
524540
* faker.internet.userName('John', 'Doe') // 'John.Doe'
525541
* faker.internet.userName('Hélene', 'Müller') // 'Helene_Muller11'
526542
* faker.internet.userName('Фёдор', 'Достоевский') // 'Fedor.Dostoevskii50'
@@ -546,7 +562,9 @@ export class InternetModule extends ModuleBase {
546562
*
547563
* @example
548564
* faker.internet.userName() // 'Nettie_Zboncak40'
549-
* faker.internet.userName({ firstName: 'Jeanne', lastName: 'Doe'}) // 'Jeanne98' - note surname is not used
565+
* faker.internet.userName({ firstName: 'Jeanne'}) // 'Jeanne98'
566+
* faker.internet.userName({ firstName: 'Jeanne'}) // 'Jeanne.Smith98'
567+
* faker.internet.userName({ firstName: 'Jeanne', lastName: 'Doe'}) // 'Jeanne_Doe98'
550568
* faker.internet.userName({ firstName: 'John', lastName: 'Doe' }) // 'John.Doe'
551569
* faker.internet.userName({ firstName: 'Hélene', lastName: 'Müller' }) // 'Helene_Muller11'
552570
* faker.internet.userName({ firstName: 'Фёдор', lastName: 'Достоевский' }) // 'Fedor.Dostoevskii50'
@@ -608,23 +626,24 @@ export class InternetModule extends ModuleBase {
608626
const {
609627
firstName = this.faker.person.firstName(),
610628
lastName = legacyLastName ?? this.faker.person.lastName(),
629+
lastName: hasLastName = legacyLastName,
611630
} = options;
612631

613632
let result: string;
614-
switch (this.faker.number.int(2)) {
633+
const strategy = this.faker.number.int(hasLastName ? 1 : 2);
634+
const separator = this.faker.helpers.arrayElement(['.', '_']);
635+
switch (strategy) {
615636
case 0:
616-
result = `${firstName}${this.faker.number.int(99)}`;
637+
result = `${firstName}${separator}${lastName}${this.faker.number.int(
638+
99
639+
)}`;
617640
break;
618641
case 1:
619-
result =
620-
firstName + this.faker.helpers.arrayElement(['.', '_']) + lastName;
642+
result = `${firstName}${separator}${lastName}`;
621643
break;
622644
case 2:
623645
default:
624-
result = `${firstName}${this.faker.helpers.arrayElement([
625-
'.',
626-
'_',
627-
])}${lastName}${this.faker.number.int(99)}`;
646+
result = `${firstName}${this.faker.number.int(99)}`;
628647
break;
629648
}
630649

test/modules/__snapshots__/git.spec.ts.snap

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,28 @@ exports[`git > 42 > commitDate > with only string refDate 1`] = `"Tue Dec 31 15:
1010

1111
exports[`git > 42 > commitEntry > with only Date refDate 1`] = `
1212
"commit be4abdd39321ad7d3fe01ffce404f4d6db0906bd
13-
Author: Gregg Beahan III <Gregg.Beahan@hotmail.com>
14-
Date: Tue Dec 31 14:49:14 2019 +0100
13+
Author: Gregg.Beahan9 <Gregg.Beahan51@yahoo.com>
14+
Date: Tue Dec 31 00:24:08 2019 +0300
1515
16-
    parse multi-byte sensor
16+
    connect auxiliary bus
1717
"
1818
`;
1919

2020
exports[`git > 42 > commitEntry > with only number refDate 1`] = `
2121
"commit be4abdd39321ad7d3fe01ffce404f4d6db0906bd
22-
Author: Gregg Beahan III <Gregg.Beahan@hotmail.com>
23-
Date: Tue Dec 31 14:49:14 2019 +0100
22+
Author: Gregg.Beahan9 <Gregg.Beahan51@yahoo.com>
23+
Date: Tue Dec 31 00:24:08 2019 +0300
2424
25-
    parse multi-byte sensor
25+
    connect auxiliary bus
2626
"
2727
`;
2828

2929
exports[`git > 42 > commitEntry > with only string refDate 1`] = `
3030
"commit be4abdd39321ad7d3fe01ffce404f4d6db0906bd
31-
Author: Gregg Beahan III <Gregg.Beahan@hotmail.com>
32-
Date: Tue Dec 31 14:49:14 2019 +0100
31+
Author: Gregg.Beahan9 <Gregg.Beahan51@yahoo.com>
32+
Date: Tue Dec 31 00:24:08 2019 +0300
3333
34-
    parse multi-byte sensor
34+
    connect auxiliary bus
3535
"
3636
`;
3737

@@ -53,28 +53,28 @@ exports[`git > 1211 > commitDate > with only string refDate 1`] = `"Tue Dec 31 0
5353

5454
exports[`git > 1211 > commitEntry > with only Date refDate 1`] = `
5555
"commit adb42f0e3f4a973fab0aeefce96dfcf49cd438df
56-
Author: Imani Anderson <Imani22@hotmail.com>
57-
Date: Tue Dec 31 10:07:32 2019 -0400
56+
Author: Imani.Anderson <Imani.Anderson@yahoo.com>
57+
Date: Tue Dec 31 18:36:59 2019 +0200
5858
59-
    override wireless interface
59+
    copy digital feed
6060
"
6161
`;
6262

6363
exports[`git > 1211 > commitEntry > with only number refDate 1`] = `
6464
"commit adb42f0e3f4a973fab0aeefce96dfcf49cd438df
65-
Author: Imani Anderson <Imani22@hotmail.com>
66-
Date: Tue Dec 31 10:07:32 2019 -0400
65+
Author: Imani.Anderson <Imani.Anderson@yahoo.com>
66+
Date: Tue Dec 31 18:36:59 2019 +0200
6767
68-
    override wireless interface
68+
    copy digital feed
6969
"
7070
`;
7171

7272
exports[`git > 1211 > commitEntry > with only string refDate 1`] = `
7373
"commit adb42f0e3f4a973fab0aeefce96dfcf49cd438df
74-
Author: Imani Anderson <Imani22@hotmail.com>
75-
Date: Tue Dec 31 10:07:32 2019 -0400
74+
Author: Imani.Anderson <Imani.Anderson@yahoo.com>
75+
Date: Tue Dec 31 18:36:59 2019 +0200
7676
77-
    override wireless interface
77+
    copy digital feed
7878
"
7979
`;
8080

@@ -96,28 +96,28 @@ exports[`git > 1337 > commitDate > with only string refDate 1`] = `"Tue Dec 31 1
9696

9797
exports[`git > 1337 > commitEntry > with only Date refDate 1`] = `
9898
"commit c346ba075bd57f5a62b82d72af39cbbb07a98cba
99-
Author: Miss Friedrich Krajcik <Friedrich41@gmail.com>
100-
Date: Tue Dec 31 04:18:56 2019 -0700
99+
Author: Miss Friedrich Krajcik <Friedrich_Krajcik19@gmail.com>
100+
Date: Tue Dec 31 02:27:22 2019 +0100
101101
102-
    reboot haptic capacitor
102+
    reboot neural pixel
103103
"
104104
`;
105105

106106
exports[`git > 1337 > commitEntry > with only number refDate 1`] = `
107107
"commit c346ba075bd57f5a62b82d72af39cbbb07a98cba
108-
Author: Miss Friedrich Krajcik <Friedrich41@gmail.com>
109-
Date: Tue Dec 31 04:18:56 2019 -0700
108+
Author: Miss Friedrich Krajcik <Friedrich_Krajcik19@gmail.com>
109+
Date: Tue Dec 31 02:27:22 2019 +0100
110110
111-
    reboot haptic capacitor
111+
    reboot neural pixel
112112
"
113113
`;
114114

115115
exports[`git > 1337 > commitEntry > with only string refDate 1`] = `
116116
"commit c346ba075bd57f5a62b82d72af39cbbb07a98cba
117-
Author: Miss Friedrich Krajcik <Friedrich41@gmail.com>
118-
Date: Tue Dec 31 04:18:56 2019 -0700
117+
Author: Miss Friedrich Krajcik <Friedrich_Krajcik19@gmail.com>
118+
Date: Tue Dec 31 02:27:22 2019 +0100
119119
120-
    reboot haptic capacitor
120+
    reboot neural pixel
121121
"
122122
`;
123123

0 commit comments

Comments
 (0)