polish-validators
Version:
A set of validator functions that check common polish numbers.
60 lines (59 loc) • 3.53 kB
JavaScript
;
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();
});
});