id-doc-validator
Version:
A validator for different types of personal ID for multiple countries.
77 lines (68 loc) • 2.94 kB
JavaScript
const {
validateNifPT,
validateVatPT,
validateCcPT,
} = require("../../country_validations/pt");
describe("validateNifPT", () => {
it("should return true for valid NIF", () => {
expect(validateNifPT("212300644")).toBe(true);
expect(validateNifPT("228272220")).toBe(true);
expect(validateNifPT("208796304")).toBe(true);
expect(validateNifPT("236374427")).toBe(true);
});
it("should return false for invalid NIF", () => {
expect(validateNifPT("1234")).toBe(false);
expect(validateNifPT("A98765432")).toBe(false);
expect(validateNifPT("1234567890")).toBe(false);
expect(validateNifPT("987654321")).toBe(false);
});
it("should return false for NIF with invalid control digit", () => {
expect(validateNifPT("212300645")).toBe(false);
expect(validateNifPT("228272221")).toBe(false);
expect(validateNifPT("208796305")).toBe(false);
expect(validateNifPT("236374428")).toBe(false);
});
});
describe("validateVatPT", () => {
it("should return true for valid VAT", () => {
expect(validateVatPT("PT123456789")).toBe(true);
expect(validateVatPT("PT261648969")).toBe(true);
expect(validateVatPT("PT200706721")).toBe(true);
});
it("should return false for invalid VAT", () => {
expect(validateVatPT("PT1234")).toBe(false);
expect(validateVatPT("PTA98765432")).toBe(false);
expect(validateVatPT("PT1234567890")).toBe(false);
expect(validateVatPT("PT987654321")).toBe(false);
});
});
describe("validateCcPT", () => {
it("should return true for valid Cartao Cidadao", () => {
expect(validateCcPT("13714722 8 ZV3")).toBe(true);
expect(validateCcPT("13714722 8ZV3")).toBe(true);
expect(validateCcPT("13714722-8ZV3")).toBe(true);
expect(validateCcPT("137147228ZV3")).toBe(true);
expect(validateCcPT("13714722 8-ZV3")).toBe(true);
expect(validateCcPT("13714722 8 ZV3")).toBe(true);
expect(validateCcPT("35600712 0-ZW5")).toBe(true);
expect(validateCcPT("12345678 9 ZZ1")).toBe(true);
expect(validateCcPT("39860219 0 ZW9")).toBe(true);
expect(validateCcPT("35993487 0 ZY3")).toBe(true);
expect(validateCcPT("12158127 6 ZZ1")).toBe(true);
});
it("should return false for invalid Cartao Cidadao", () => {
expect(validateCcPT("13714722/8/ZV3")).toBe(false);
expect(validateCcPT("13714722.8.ZV3")).toBe(false);
expect(validateCcPT("1234/0")).toBe(false);
expect(validateCcPT("A98765432/1")).toBe(false);
expect(validateCcPT("123456789/0")).toBe(false);
expect(validateCcPT("359934877 0 ZY3")).toBe(false);
expect(validateCcPT("13714722 8 XV3")).toBe(false);
expect(validateCcPT("13714722-8-XV3")).toBe(false);
});
it("should return false for Cartao Cidadao with invalid checksum", () => {
expect(validateCcPT("13714722 8 ZV4")).toBe(false);
expect(validateCcPT("13714722 8 ZV5")).toBe(false);
expect(validateCcPT("36148741 0 ZY0")).toBe(false);
});
});