UNPKG

polish-validators

Version:

A set of validator functions that check common polish numbers.

60 lines (59 loc) 3.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const credit_card_1 = require("./credit-card"); describe('isCreditCardNumberValid', () => { it('should return true for a valid credit card number without dashes/whitespace', () => { expect((0, credit_card_1.isCreditCardNumberValid)('4111111111111111')).toBe(true); }); it('should return true for a valid credit card number with dashes', () => { expect((0, credit_card_1.isCreditCardNumberValid)('4111-1111-1111-1111')).toBe(true); }); it('should return true for a valid credit card number with spaces', () => { expect((0, credit_card_1.isCreditCardNumberValid)('4111 1111 1111 1111')).toBe(true); }); it('should return false for an invalid credit card number (fails Luhn algorithm)', () => { expect((0, credit_card_1.isCreditCardNumberValid)('4111111111111112')).toBe(false); }); it('should return false if the number contains non-digit characters', () => { expect((0, credit_card_1.isCreditCardNumberValid)('4111-1111-1111-111a')).toBe(false); }); it('should return false if the number has less than 16 digits', () => { expect((0, credit_card_1.isCreditCardNumberValid)('411111111111111')).toBe(false); }); }); describe('getCreditCardType', () => { it('should return Airline for numbers starting with 1 or 2', () => { expect((0, credit_card_1.getCreditCardType)('1111111111111111')).toBe(credit_card_1.CreditCardType.Airline); expect((0, credit_card_1.getCreditCardType)('2111111111111111')).toBe(credit_card_1.CreditCardType.Airline); }); it('should return ClubCard for numbers starting with 3', () => { expect((0, credit_card_1.getCreditCardType)('3111111111111111')).toBe(credit_card_1.CreditCardType.ClubCard); }); it('should return Visa for numbers starting with 4', () => { expect((0, credit_card_1.getCreditCardType)('4111111111111111')).toBe(credit_card_1.CreditCardType.Visa); }); it('should return MasterCard for numbers starting with 5', () => { expect((0, credit_card_1.getCreditCardType)('5111111111111111')).toBe(credit_card_1.CreditCardType.MasterCard); }); it('should return Finances for numbers starting with 6', () => { expect((0, credit_card_1.getCreditCardType)('6111111111111111')).toBe(credit_card_1.CreditCardType.Finances); }); it('should return Fuel for numbers starting with 7', () => { expect((0, credit_card_1.getCreditCardType)('7111111111111111')).toBe(credit_card_1.CreditCardType.Fuel); }); it('should return Telecommunication for numbers starting with 8', () => { expect((0, credit_card_1.getCreditCardType)('8111111111111111')).toBe(credit_card_1.CreditCardType.Telecommunication); }); it('should return Other for numbers starting with 9', () => { expect((0, credit_card_1.getCreditCardType)('9111111111111111')).toBe(credit_card_1.CreditCardType.Other); }); it('should return null if the first character is non-numeric', () => { expect((0, credit_card_1.getCreditCardType)('a1111111111111111')).toBeNull(); }); it('should return null for an empty string', () => { expect((0, credit_card_1.getCreditCardType)('')).toBeNull(); }); it('should return null for numbers starting with 0', () => { expect((0, credit_card_1.getCreditCardType)('0111111111111111')).toBeNull(); }); });