UNPKG

id-doc-validator

Version:

A validator for different types of personal ID for multiple countries.

299 lines (245 loc) 10.8 kB
const { isValidIdDoc, supportedIdDocsByCountry, isValidViesVat, isValidVat, supportedCountriesIdDoc, supportedCountriesVat, } = require(".."); describe("isValidIdDoc", () => { it("should return false for missing parameters", () => { expect(isValidIdDoc()).toBe(false); expect(isValidIdDoc("123456789")).toBe(false); expect(isValidIdDoc("1234", null, "nif")).toBe(false); }); it("should return false for invalid parameters", () => { expect(isValidIdDoc(123456789, "ES", "nif")).toBe(false); expect(isValidIdDoc("123456789", 123, "nif")).toBe(false); expect(isValidIdDoc("123456789", "ES", 123)).toBe(false); }); it("should return false for an unsupported country", () => { expect(isValidIdDoc("123456789", "ZZ", "passport")).toBe(false); }); it("should return false for an unsupported ID document type", () => { expect(isValidIdDoc("123456789", "ES", "invalidType")).toBe(false); }); it("should return true for a valid id document", () => { expect(isValidIdDoc("47008288Z", "ES", "nif")).toBe(true); }); it("should return true for a valid id document without specifying the type", () => { expect(isValidIdDoc("47008288Z", "ES")).toBe(true); expect(isValidIdDoc("Y4731627N", "ES")).toBe(true); expect(isValidIdDoc("paa333388", "ES")).toBe(true); }); it("should return false for a valid id document with a wrong country specified", () => { expect(isValidIdDoc("47008288Z", "FR")).toBe(false); }); it("should return true for a valid passport from BR", () => { expect(isValidIdDoc("AB123456", "BR", "passport")).toBe(true); }); it("should return true for a valid passport from CA", () => { expect(isValidIdDoc("AB123456", "CA", "passport")).toBe(true); }); it("should return true for a valid gic from DE", () => { expect(isValidIdDoc("l12341234", "DE", "gic")).toBe(true); }); it("should return true for a valid passport from DE", () => { expect(isValidIdDoc("c123CFG45", "DE", "passport")).toBe(true); }); it("should return true for a valid nif from ES", () => { expect(isValidIdDoc("47008288Z", "ES", "nif")).toBe(true); }); it("should return true for a valid nie from ES", () => { expect(isValidIdDoc("Y4731627N", "ES", "nie")).toBe(true); }); it("should return true for a valid passport from ES", () => { expect(isValidIdDoc("paa333388", "ES", "passport")).toBe(true); }); it("should return true for a valid cni from FR", () => { expect(isValidIdDoc("123456789012", "FR", "cni")).toBe(true); }); it("should return true for a valid passport from FR", () => { expect(isValidIdDoc("12AB34567", "FR", "passport")).toBe(true); }); it("should return true for a valid passport from GB", () => { expect(isValidIdDoc("123456789", "GB", "passport")).toBe(true); }); it("should return true for a valid cf from IT", () => { expect(isValidIdDoc("SCRGZL98R27H501I", "IT", "cf")).toBe(true); }); it("should return true for a valid passport from IT", () => { expect(isValidIdDoc("AA1234567", "IT", "passport")).toBe(true); }); it("should return true for a valid cc from PT", () => { expect(isValidIdDoc("12345678 9 ZA1", "PT", "cc")).toBe(true); }); it("should return true for a valid nif from PT", () => { expect(isValidIdDoc("123456789", "PT", "nif")).toBe(true); }); it("should return true for a valid passport from PT", () => { expect(isValidIdDoc("P123456", "PT", "passport")).toBe(true); }); it("should return true for a valid passport from AT", () => { expect(isValidIdDoc("A1234567", "AT", "passport")).toBe(true); }); it("should return true for a valid passport from BE", () => { expect(isValidIdDoc("KK1234567", "BE", "passport")).toBe(true); }); it("should return true for a valid passport from BG", () => { expect(isValidIdDoc("123456789", "BG", "passport")).toBe(true); }); it("should return true for a valid passport from HR", () => { expect(isValidIdDoc("123456789", "HR", "passport")).toBe(true); }); it("should return true for a valid passport from CY", () => { expect(isValidIdDoc("A1234567", "CY", "passport")).toBe(true); }); it("should return true for a valid passport from CZ", () => { expect(isValidIdDoc("12345678", "CZ", "passport")).toBe(true); }); it("should return true for a valid passport from DK", () => { expect(isValidIdDoc("123456789", "DK", "passport")).toBe(true); }); it("should return true for a valid passport from EE", () => { expect(isValidIdDoc("AA1234567", "EE", "passport")).toBe(true); }); it("should return true for a valid passport from FI", () => { expect(isValidIdDoc("AA1234567", "FI", "passport")).toBe(true); }); it("should return true for a valid passport from GR", () => { expect(isValidIdDoc("AA1234567", "GR", "passport")).toBe(true); }); it("should return true for a valid passport from HU", () => { expect(isValidIdDoc("AB123456", "HU", "passport")).toBe(true); }); it("should return true for a valid passport from IE", () => { expect(isValidIdDoc("PA1234567", "IE", "passport")).toBe(true); }); it("should return true for a valid passport from LV", () => { expect(isValidIdDoc("AA1234567", "LV", "passport")).toBe(true); }); it("should return true for a valid passport from LT", () => { expect(isValidIdDoc("12345678", "LT", "passport")).toBe(true); }); it("should return true for a valid passport from LU", () => { expect(isValidIdDoc("1A2B3C4D", "LU", "passport")).toBe(true); }); it("should return true for a valid passport from MT", () => { expect(isValidIdDoc("1234567", "MT", "passport")).toBe(true); }); it("should return true for a valid passport from MX", () => { expect(isValidIdDoc("A12345678", "MX", "passport")).toBe(true); }); it("should return true for a valid passport from NL", () => { expect(isValidIdDoc("AA12VV3B7", "NL", "passport")).toBe(true); }); it("should return true for a valid passport from PL", () => { expect(isValidIdDoc("AA1234567", "PL", "passport")).toBe(true); }); it("should return true for a valid passport from RO", () => { expect(isValidIdDoc("12345678", "RO", "passport")).toBe(true); }); it("should return true for a valid passport from SK", () => { expect(isValidIdDoc("A1234567", "SK", "passport")).toBe(true); }); it("should return true for a valid passport from SL", () => { expect(isValidIdDoc("PA1234567", "SL", "passport")).toBe(true); }); it("should return true for a valid passport from SE", () => { expect(isValidIdDoc("12345678", "SE", "passport")).toBe(true); }); it("should return true for a valid passport from US", () => { expect(isValidIdDoc("123456789", "US", "passport")).toBe(true); }); }); describe("isValidVat", () => { it("should return true for a valid VAT from a supported country", () => { expect(isValidVat("ATU12345678")).toBe(true); expect(isValidVat("BE03-1234-1234")).toBe(true); expect(isValidVat("BG123456789")).toBe(true); expect(isValidVat("BR11.111.111/0001-55")).toBe(true); expect(isValidVat("BR123.456.789-00")).toBe(true); expect(isValidVat("CO123456789A")).toBe(true); expect(isValidVat("CY12345678Z")).toBe(true); expect(isValidVat("CZ12345678")).toBe(true); expect(isValidVat("DE123456789")).toBe(true); expect(isValidVat("DK12345678")).toBe(true); expect(isValidVat("EE123456789")).toBe(true); expect(isValidVat("EL151043955")).toBe(true); expect(isValidVat("ES47008288Z")).toBe(true); expect(isValidVat("FI19254537")).toBe(true); expect(isValidVat("FR12345678901")).toBe(true); expect(isValidVat("GB211475494")).toBe(true); expect(isValidVat("GB211475494000")).toBe(true); expect(isValidVat("GBGD123")).toBe(true); expect(isValidVat("GBHA678")).toBe(true); expect(isValidVat("HR12345678901")).toBe(true); expect(isValidVat("HU12345678")).toBe(true); expect(isValidVat("IE1234567X")).toBe(true); expect(isValidVat("IT.07643520567")).toBe(true); expect(isValidVat("LT123456789")).toBe(true); expect(isValidVat("LU12345678")).toBe(true); expect(isValidVat("LV12345678901")).toBe(true); expect(isValidVat("MT12345678")).toBe(true); expect(isValidVat("MXABC012345ABC")).toBe(true); expect(isValidVat("NL123456789B01")).toBe(true); expect(isValidVat("PL1234567890")).toBe(true); expect(isValidVat("PT123456789")).toBe(true); expect(isValidVat("RO123456789")).toBe(true); expect(isValidVat("SE123456789012")).toBe(true); expect(isValidVat("SI12345678")).toBe(true); expect(isValidVat("SK1234567895")).toBe(true); }); }); describe("isValidViesVat", () => { it("should return an object with isValid true if the request didn't fail for a valid VAT", async () => { const { isValid, userError, vatNumber } = await isValidViesVat( "W0184081H", "ES" ); if (userError === "VALID") { expect(isValid).toBe(true); } else { expect(isValid).toBe(false); } expect(vatNumber).toBe("W0184081H"); }, 30000); it("should return an object with isValid true if the request didn't fail for a valid VAT with country code", async () => { const { isValid, userError, vatNumber } = await isValidViesVat( "ESW0184081H", "ES" ); if (userError === "VALID") { expect(isValid).toBe(true); } else { expect(isValid).toBe(false); } expect(vatNumber).toBe("W0184081H"); }, 30000); it("should return an object with isValid false for an invalid VAT", async () => { const { isValid } = await isValidViesVat("W018408", "ES"); expect(isValid).toBe(false); }, 30000); }); describe("supportedCountries", () => { it("should return an array of strings with the supported countries", () => { expect(Array.isArray(supportedCountriesIdDoc())).toBe(true); expect(supportedCountriesIdDoc()).toContain("ES"); expect(supportedCountriesIdDoc()).toContain("FR"); }); }); describe("supportedCountriesVat", () => { it("should return an array of strings with the supported countries", () => { expect(Array.isArray(supportedCountriesVat())).toBe(true); expect(supportedCountriesVat()).toContain("ES"); expect(supportedCountriesVat()).toContain("FR"); }); }); describe("supportedIdDocsByCountry", () => { it("should return an array of supported id docs for a country", () => { expect(Array.isArray(supportedIdDocsByCountry("ES"))).toBe(true); expect(supportedIdDocsByCountry("ES")).toContain("nif"); expect(supportedIdDocsByCountry("ES")).toContain("nie"); expect(supportedIdDocsByCountry("ES")).toContain("passport"); }); });