UNPKG

nigerian-mobile-validator

Version:

The most rigorous, up-to-date library for validating Nigerian mobile numbers. Fully NCC-compliant, and security-focused, with enterprise-grade features to prevent the business risks of validation failures in regulated industries.

117 lines (116 loc) 5.1 kB
"use strict"; // src/__tests__/synthetic-data/test-data-generator.ts Object.defineProperty(exports, "__esModule", { value: true }); exports.TestDataGenerator = void 0; const test_data_generator_valid_numbers_1 = require("./test-data-generator-valid-numbers"); const test_data_generator_invalid_numbers_1 = require("./test-data-generator-invalid-numbers"); const test_data_generator_random_numbers_1 = require("./test-data-generator-random-numbers"); const test_data_generator_property_based_1 = require("./test-data-generator-property-based"); const telco_1 = require("../../numbering-plan/telco"); /** * Main test data generator that brings together all the specialized generators */ class TestDataGenerator { /** * Generate a valid mobile number for a specific network code */ static generateValidNumber(networkCode) { return test_data_generator_valid_numbers_1.TestDataGeneratorValidNumbers.generateValidNumber(networkCode); } /** * Generate a valid mobile number for a specific telco */ static generateValidNumberForTelco(telco) { if (telco_1.invalidTelcos.includes(telco)) { throw new Error(`Invalid Telcos cannot be used to generate valid synthetic mobile numbers. Telco name: ${telco}`); } return test_data_generator_valid_numbers_1.TestDataGeneratorValidNumbers.generateValidNumberForTelco(telco); } /** * Generate an international format number */ static generateInternationalNumber(networkCode) { return test_data_generator_valid_numbers_1.TestDataGeneratorValidNumbers.generateInternationalNumber(networkCode); } /** * Generate an international format number with plus */ static generateInternationalPlusNumber(networkCode) { return test_data_generator_valid_numbers_1.TestDataGeneratorValidNumbers.generateInternationalPlusNumber(networkCode); } /** * Generate a number with spaces */ static generateNumberWithSpaces(networkCode) { return test_data_generator_valid_numbers_1.TestDataGeneratorValidNumbers.generateNumberWithSpaces(networkCode); } /** * Generate a number with "O" instead of "0" */ static generateNumberWithO(networkCode) { return test_data_generator_valid_numbers_1.TestDataGeneratorValidNumbers.generateNumberWithO(networkCode); } /** * Generate a number with invalid length (too long or too short) */ static generateInvalidLengthNumber(networkCode, tooLong = true) { return test_data_generator_invalid_numbers_1.TestDataGeneratorInvalidNumbers.generateInvalidLengthNumber(networkCode, tooLong); } /** * Generate a number with non-numeric characters */ static generateNonNumericNumber(networkCode) { return test_data_generator_invalid_numbers_1.TestDataGeneratorInvalidNumbers.generateNonNumericNumber(networkCode); } /** * Generate a number with invalid network code */ static generateInvalidNetworkCodeNumber() { return test_data_generator_invalid_numbers_1.TestDataGeneratorInvalidNumbers.generateInvalidNetworkCodeNumber(); } /** * Generate a valid withdrawn number in the 702 range */ static generateWithdrawn702Number() { return test_data_generator_invalid_numbers_1.TestDataGeneratorInvalidNumbers.generateWithdrawn702Number(); } /** * Generate a valid returned number in the 702 range */ static generateReturned702Number() { return test_data_generator_invalid_numbers_1.TestDataGeneratorInvalidNumbers.generateReturned702Number(); } /** * Generate a completely random phone number (may be valid or invalid) */ static generateRandomPhoneNumber() { return test_data_generator_random_numbers_1.TestDataGeneratorRandomNumbers.generateRandomPhoneNumber(); } /** * Generate a comprehensive batch of valid numbers covering all telcos */ static generateValidNumberBatch(size = 50) { return test_data_generator_valid_numbers_1.TestDataGeneratorValidNumbers.generateValidNumberBatch(size); } /** * Generate a mixed batch with both valid and invalid numbers */ static generateMixedNumberBatch(size = 50, invalidRatio = 0.2) { return test_data_generator_random_numbers_1.TestDataGeneratorRandomNumbers.generateMixedNumberBatch(size, invalidRatio); } /** * Generate a property-based test for a specific validation aspect * @param aspect The validation aspect to test * @param count Number of test cases to generate */ static generatePropertyBasedTest(aspect, count = 10) { return test_data_generator_property_based_1.TestDataGeneratorPropertyBased.generatePropertyBasedTest(aspect, count); } /** * Generate a comprehensive set of test cases for validation */ static generateValidationTestCases() { return test_data_generator_property_based_1.TestDataGeneratorPropertyBased.generatePropertyBasedTestCases(50); } } exports.TestDataGenerator = TestDataGenerator;