From 52730f0f758670fe9852ad8744cc1e81048a931a Mon Sep 17 00:00:00 2001
From: Bastien DUMONT <bdumont@grandlyon.com>
Date: Mon, 6 Mar 2023 15:47:47 +0100
Subject: [PATCH] throw new error

---
 __tests__/requests/insee.spec.js | 7 +++++++
 src/requests/insee.js            | 6 ++++++
 2 files changed, 13 insertions(+)

diff --git a/__tests__/requests/insee.spec.js b/__tests__/requests/insee.spec.js
index 935db10..057c0bd 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 710560f..04f4f99 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) {
-- 
GitLab