french-ssn
Version:
🇫🇷 A parser / validator for French Social Security Number
115 lines • 3.77 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const makePlace_1 = __importDefault(require("./makePlace"));
describe("birth country", () => {
it("is born in France", () => {
expect((0, makePlace_1.default)("78403").country).toEqual({
insee: "100",
name: "France",
});
});
it("is born abroad", () => {
expect((0, makePlace_1.default)("99351")).toEqual({
country: {
insee: "351",
name: "Tunisie",
},
county: {
unknown: true,
},
city: {
unknown: true,
},
});
});
it("works for Algerian people before 1962", () => {
;
["91112", "92519", "93101", "94423"].map((insee) => {
expect((0, makePlace_1.default)(insee, 1962).country).toEqual({
insee: "352",
name: "Algérie",
});
expect((0, makePlace_1.default)(insee, 1963).country).toEqual({
insee: "100",
name: "France",
});
});
});
it("works for Morocan people before 1964", () => {
expect((0, makePlace_1.default)("95101", 1964).country).toEqual({
insee: "350",
name: "Maroc",
});
expect((0, makePlace_1.default)("95101", 1965).country).toEqual({
insee: "100",
name: "France",
});
});
it("works for Tunisian people before 1964", () => {
expect((0, makePlace_1.default)("96101", 1964).country).toEqual({
insee: "351",
name: "Tunisie",
});
expect((0, makePlace_1.default)("96101", 1965).country).toEqual({ unknown: true });
});
it("works for DOM", () => {
expect((0, makePlace_1.default)("97801").country).toEqual({
insee: "100",
name: "France",
});
});
});
it("00, 20 and 96 county codes have an unknown country", () => {
;
["00", "20", "96"].map((countyCode) => {
expect((0, makePlace_1.default)(`${countyCode}101`, 1980)).toEqual({
city: { insee: `${countyCode}101` },
country: { unknown: true },
county: {
insee: countyCode,
unknown: true,
error: "appears to be incorrect",
},
});
});
});
it("includes the county name when born in France", () => {
expect((0, makePlace_1.default)("78304").county).toEqual({
insee: "78",
name: "Yvelines",
});
expect((0, makePlace_1.default)("97801").county).toEqual({
insee: "978",
name: "Saint-Martin",
});
});
it("works for Corsica", () => {
expect((0, makePlace_1.default)("2A048").county).toEqual({
insee: "2A",
name: "Corse-du-Sud",
});
expect((0, makePlace_1.default)("2A048").city).toEqual({
insee: "2A048",
});
});
it("includes the city when born in France", () => {
expect((0, makePlace_1.default)("78396").city).toEqual({
insee: "78396",
});
});
it("includes the city when born in Algeria before 1962", () => {
expect((0, makePlace_1.default)("91112", 1956).city).toEqual({
insee: "91112",
});
expect((0, makePlace_1.default)("91112", 1978).city).toEqual({
insee: "91112",
});
});
it("throws if input is not a string of 5 digits", () => {
// @ts-expect-error this is to test a pure JS behavior
expect(() => (0, makePlace_1.default)()).toThrow("Unkown error");
});
//# sourceMappingURL=makePlace.test.js.map