diff --git a/__tests__/requests/insee.spec.js b/__tests__/requests/insee.spec.js index 935db10de9464b68faa733d1d2b4ca4773c147ba..057c0bd3e2dd109972e361ecaab600fd5b7f3368 100644 --- a/__tests__/requests/insee.spec.js +++ b/__tests__/requests/insee.spec.js @@ -50,6 +50,13 @@ describe('getInseeCode', () => { '69153' ) }) + it('should throw USER_ACTION_NEEDED when city is not precise enough', async () => { + try { + await getInseeCode(26600, 'e') + } catch (error) { + expect(error).toEqual(errors.USER_ACTION_NEEDED) + } + }) }) it("should return insee code for: L'isle d'abeau", async () => { diff --git a/src/requests/insee.js b/src/requests/insee.js index 710560fa850c938258e8313b622877d9711570c6..04f4f99e589c0234f14d62bf8f0b29afd2b726e8 100644 --- a/src/requests/insee.js +++ b/src/requests/insee.js @@ -27,6 +27,12 @@ async function getInseeCode(postalCode, city) { sanitizeCity(commune.nomCommune).includes(parsedCity) ) + if (filteredResponse.length > 1) { + throw new Error( + 'Input city is not precise enough, more than one city was found' + ) + } + return filteredResponse[0].codeCommune } } catch (error) {