From 4cd94279af36ccf9cf4398faeb785dd7c65997e6 Mon Sep 17 00:00:00 2001 From: Joaquim d'Souza Date: Thu, 15 Jan 2026 14:26:37 +0100 Subject: [PATCH] fix: correctly fail geocoding jersey postcodes --- src/server/mapping/geocode.ts | 5 ++++- tests/feature/importDataSource.test.ts | 9 +++++++++ tests/resources/members.csv | 13 +++++++------ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/server/mapping/geocode.ts b/src/server/mapping/geocode.ts index 83da3a77..ad1d6437 100644 --- a/src/server/mapping/geocode.ts +++ b/src/server/mapping/geocode.ts @@ -91,7 +91,10 @@ const geocodeRecordByPostcode = async ( !(typeof postcodesData.result === "object") || !("postcode" in postcodesData.result) || !("latitude" in postcodesData.result) || - !("longitude" in postcodesData.result) + !("longitude" in postcodesData.result) || + !postcodesData.result.postcode || + !postcodesData.result.latitude || + !postcodesData.result.longitude ) { throw new Error( `Bad postcodes.io response: ${JSON.stringify(postcodesData)}`, diff --git a/tests/feature/importDataSource.test.ts b/tests/feature/importDataSource.test.ts index 03b5ae83..6ee853df 100644 --- a/tests/feature/importDataSource.test.ts +++ b/tests/feature/importDataSource.test.ts @@ -168,6 +168,15 @@ describe("importDataSource tests", () => { Postcode: "BT15 3ES", }, }, + { + externalId: "6", + geocodePoint: null, + geocodeResult: null, + json: { + Name: "Mysterion", + Postcode: "JE3 2DF", + }, + }, ]); }); diff --git a/tests/resources/members.csv b/tests/resources/members.csv index 41bc20e9..c5609d3c 100644 --- a/tests/resources/members.csv +++ b/tests/resources/members.csv @@ -1,6 +1,7 @@ -Name,Postcode -John,TN4 0PP -Paul,N76AS -George,G115RD -Ringo,HP20 2QB -Jane,BT15 3ES +Name,Postcode,Notes +John,TN4 0PP, +Paul,N76AS, +George,G115RD, +Ringo,HP20 2QB, +Jane,BT15 3ES,Test Belfast +Mysterion,JE3 2DF, Test Jersey (currently does not geocode as is missing in the database and postcodes.io)