diff --git a/__tests__/requests/insee.spec.js b/__tests__/requests/insee.spec.js index 151995745b13e970102b743870076a92fc7e05ca..ce5f6e3090fd085dfd8aefe3c4d9a809b442ece1 100644 --- a/__tests__/requests/insee.spec.js +++ b/__tests__/requests/insee.spec.js @@ -42,6 +42,18 @@ describe('getInseeCode', () => { expect(await getInseeCode(38080, "L'isle d'abeau")).toEqual('38193') }) + it('should return insee code for: Ervauville', async () => { + expect(await getInseeCode('45320', 'Ervauville')).toEqual('45136') + }) + + it('should return insee code for: Marcy l’Etoile', async () => { + expect(await getInseeCode('69280', 'Marcy l’Etoile')).toEqual('69127') + }) + + it('should return insee code for: Brignais', async () => { + expect(await getInseeCode('69530', 'Brignais')).toEqual('69027') + }) + describe('should handle communes with "Saint" or "St"', () => { it("should return insee code for: Saint Romain au Mont d'Or", async () => { expect(await getInseeCode(69270, "Saint Romain au Mont d'Or")).toEqual( @@ -85,6 +97,11 @@ describe('getInseeCode', () => { it('should return insee code for: castets', async () => { expect(await getInseeCode(40260, 'castets')).toEqual('40075') }) + it('should return insee code for: Fontaines st Martin', async () => { + expect(await getInseeCode(69270, 'Fontaines st Martin')).toEqual( + '69087' + ) + }) it('should return insee code for: St léger', async () => { expect(await getInseeCode('06260', 'St léger')).toEqual('06124') }) diff --git a/src/requests/insee.js b/src/requests/insee.js index a0a3dda04a6b40ca2f78c01c1822db7b82074bef..4ebf988248aa1bd19de788cfffcc9a6001591b84 100644 --- a/src/requests/insee.js +++ b/src/requests/insee.js @@ -22,6 +22,7 @@ async function getInseeCode(postalCode, city) { if (!city) throw new Error('No city') const parsedCity = sanitizeCity(city) + console.log(parsedCity) const filteredResponse = response.data.filter( town => sanitizeCity(town.nomCommune) === parsedCity @@ -46,7 +47,7 @@ function sanitizeCity(city) { return city .toLowerCase() .replace(/\bst\b/i, 'saint') - .replace(/[âêîôûäëïü-\sʼ'éèç]/g, match => REPLACE_CHARS[match]) + .replace(/[âêîôûäëïü-\sʼ'’éèç]/g, match => REPLACE_CHARS[match]) .trim() } @@ -65,6 +66,7 @@ const REPLACE_CHARS = { ' ': '', ʼ: '', "'": '', + '’': '', é: 'e', è: 'e', ç: 'c',