aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Narożnik <[email protected]>2022-02-04 12:49:47 +0100
committerGitHub <[email protected]>2022-02-04 12:49:47 +0100
commit596148e9ac95c707b84b1f59fff221f6d49736ad (patch)
treed87c4bcb00924751329123f668df8abd26ecd8eb
parent23724a7a4420814423c3d0a52bb4a1638ff23299 (diff)
downloadfaker-596148e9ac95c707b84b1f59fff221f6d49736ad.tar.xz
faker-596148e9ac95c707b84b1f59fff221f6d49736ad.zip
test: rewrite phone tests (#396)
Co-authored-by: Shinigami <[email protected]>
-rw-r--r--test/phone.spec.ts149
1 files changed, 115 insertions, 34 deletions
diff --git a/test/phone.spec.ts b/test/phone.spec.ts
index 849cd0bb..6a8cfdc9 100644
--- a/test/phone.spec.ts
+++ b/test/phone.spec.ts
@@ -1,47 +1,128 @@
-import { describe, expect, it, vi } from 'vitest';
+import { beforeEach, describe, expect, it } from 'vitest';
import { faker } from '../dist/cjs';
-describe('phone', () => {
- describe('phoneNumber()', () => {
- it('returns a random phoneNumber with a random format', () => {
- const spy_helpers_replaceSymbolWithNumber = vi.spyOn(
- faker.helpers,
- 'replaceSymbolWithNumber'
- );
+const seededRuns = [
+ {
+ seed: 42,
+ expectations: {
+ phoneNumber: {
+ noArgs: '891.775.5141',
+ },
+ phoneNumberFormat: {
+ noArgs: '479-377-5514',
+ phoneFormatsArrayIndex: { arrayIndex: 1, expected: '(479) 377-5514' },
+ },
+ phoneFormats: {
+ noArgs: '!##.!##.####',
+ },
+ },
+ },
+ {
+ seed: 1337,
+ expectations: {
+ phoneNumber: {
+ noArgs: '(612) 454-0325',
+ },
+ phoneNumberFormat: {
+ noArgs: '451-325-4032',
+ phoneFormatsArrayIndex: { arrayIndex: 1, expected: '(451) 325-4032' },
+ },
+ phoneFormats: {
+ noArgs: '(!##) !##-####',
+ },
+ },
+ },
+ {
+ seed: 1211,
+ expectations: {
+ phoneNumber: {
+ noArgs: '1-587-319-0616 x27431',
+ },
+ phoneNumberFormat: {
+ noArgs: '948-821-9061',
+ phoneFormatsArrayIndex: { arrayIndex: 1, expected: '(948) 821-9061' },
+ },
+ phoneFormats: {
+ noArgs: '1-!##-!##-#### x#####',
+ },
+ },
+ },
+];
- const phone_number = faker.phone.phoneNumber();
+const functionNames = ['phoneNumber', 'phoneNumberFormat', 'phoneFormats'];
- expect(phone_number).match(/\d/);
- expect(spy_helpers_replaceSymbolWithNumber).toHaveBeenCalled();
+const NON_SEEDED_BASED_RUN = 25;
- spy_helpers_replaceSymbolWithNumber.mockRestore();
- });
+describe('phone', () => {
+ beforeEach(() => {
+ faker.locale = 'en';
});
- describe('phoneNumberFormat()', () => {
- it('returns phone number with requested format (Array index)', () => {
- faker.locale = 'en';
- for (let i = 0; i < 10; i++) {
- const phone_number = faker.phone.phoneNumberFormat(1);
- expect(phone_number).match(/\(\d\d\d\) \d\d\d-\d\d\d\d/);
- }
- });
+ for (const { seed, expectations } of seededRuns) {
+ describe(`seed: ${seed}`, () => {
+ for (const functionName of functionNames) {
+ it(`${functionName}()`, () => {
+ faker.seed(seed);
- it('returns phone number with proper format US (Array index)', () => {
- faker.locale = 'en';
- for (let i = 0; i < 25; i++) {
- const phone_number = faker.phone.phoneNumberFormat(1);
- console.log(phone_number);
- expect(phone_number).match(/\([2-9]\d\d\) [2-9]\d\d-\d\d\d\d/);
- }
- });
+ const actual = faker.phone[functionName]();
- it('returns phone number with proper format CA (Array index)', () => {
- faker.locale = 'en_CA';
- for (let i = 0; i < 25; i++) {
- const phone_number = faker.phone.phoneNumberFormat(1);
- expect(phone_number).match(/\([2-9]\d\d\)[2-9]\d\d-\d\d\d\d/);
+ expect(actual).toEqual(expectations[functionName].noArgs);
+ });
}
+
+ describe('phoneNumberFormat', () => {
+ const { arrayIndex, expected } =
+ expectations.phoneNumberFormat.phoneFormatsArrayIndex;
+ it(`should return ${expected} for ${arrayIndex}`, () => {
+ faker.seed(seed);
+
+ const actual = faker.phone.phoneNumberFormat(arrayIndex);
+
+ expect(actual).toEqual(expected);
+ });
+ });
});
+ }
+
+ // Create and log-back the seed for debug purposes
+ faker.seed(Math.ceil(Math.random() * 1_000_000_000));
+
+ describe(`random seeded tests for seed ${faker.seedValue}`, () => {
+ for (let i = 1; i <= NON_SEEDED_BASED_RUN; i++) {
+ describe('phoneNumber()', () => {
+ it('should return a random phoneNumber with a random format', () => {
+ const phoneNumber = faker.phone.phoneNumber();
+
+ expect(phoneNumber).match(/\d/);
+ });
+ });
+
+ describe('phoneNumberFormat()', () => {
+ it('should return phone number with proper US format (Array index)', () => {
+ faker.locale = 'en';
+ const phoneNumber = faker.phone.phoneNumberFormat(1);
+ expect(phoneNumber).match(/\([2-9]\d\d\) [2-9]\d\d-\d\d\d\d/);
+ });
+
+ it('should return phone number with proper CA format (Array index)', () => {
+ faker.locale = 'en_CA';
+ const phoneNumber = faker.phone.phoneNumberFormat(1);
+ expect(phoneNumber).match(/\([2-9]\d\d\)[2-9]\d\d-\d\d\d\d/);
+ });
+
+ it('should return phone number with proper PL format (Array index)', () => {
+ faker.locale = 'pl';
+ const phoneNumber = faker.phone.phoneNumberFormat(1);
+ expect(phoneNumber).match(/13-\d{3}-\d{2}-\d{2}/);
+ });
+ });
+
+ describe('phoneFormats()', () => {
+ it('should return random phone number format', () => {
+ const phoneFormat = faker.phone.phoneFormats();
+ expect(faker.definitions.phone_number.formats).contain(phoneFormat);
+ });
+ });
+ }
});
});