From 7a81a4c73387929fa6f5907dd3f1e43e5ebccc57 Mon Sep 17 00:00:00 2001 From: Thom Wiggers Date: Tue, 7 Jan 2025 20:53:44 +0100 Subject: [PATCH] Attempt to improve ABN parsing --- src/app-gocardless/banks/abnamro_abnanl2a.js | 2 +- .../banks/tests/abnamro_abnanl2a.spec.js | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/app-gocardless/banks/abnamro_abnanl2a.js b/src/app-gocardless/banks/abnamro_abnanl2a.js index 5d5332d32..a3c072c3c 100644 --- a/src/app-gocardless/banks/abnamro_abnanl2a.js +++ b/src/app-gocardless/banks/abnamro_abnanl2a.js @@ -30,7 +30,7 @@ export default { // Remove clutter to extract the payee from remittanceInformationUnstructured ... // ... when not otherwise provided. const payeeName = transaction.remittanceInformationUnstructuredArray - .map((el) => el.match(/^(?:.*\*)?(.+),PAS\d+$/)) + .map((el) => el.match(/^(?:((Google|Apple) Pay)?.*\*)?(.+),PAS\d+$/)) .find((match) => match)?.[1]; transaction.debtorName = transaction.debtorName || payeeName; transaction.creditorName = transaction.creditorName || payeeName; diff --git a/src/app-gocardless/banks/tests/abnamro_abnanl2a.spec.js b/src/app-gocardless/banks/tests/abnamro_abnanl2a.spec.js index db93bd2c7..08e2aa5d0 100644 --- a/src/app-gocardless/banks/tests/abnamro_abnanl2a.spec.js +++ b/src/app-gocardless/banks/tests/abnamro_abnanl2a.spec.js @@ -57,5 +57,33 @@ describe('AbnamroAbnanl2a', () => { ); expect(normalizedTransaction.payeeName).toEqual('Other Payee Name'); }); + it('correctly extracts the payee for Apple Pay without CCV*', () => { + const transaction = { + transactionId: '0123456789012345', + bookingDate: '2023-12-11', + valueDateTime: '2023-12-09T15:43:37.950', + transactionAmount: { + amount: '-10.00', + currency: 'EUR', + }, + remittanceInformationUnstructuredArray: [ + 'BEA, Apple Pay', + 'Other payee name,PAS123', + 'NR:123A4B, 09.12.23/15:43', + 'CITY', + ], + }; + + const normalizedTransaction = AbnamroAbnanl2a.normalizeTransaction( + transaction, + false, + ); + + expect(normalizedTransaction.remittanceInformationUnstructured).toEqual( + 'BEA, Apple Pay, Other payee name,PAS123, NR:123A4B, 09.12.23/15:43, CITY', + ); + expect(normalizedTransaction.payeeName).toEqual('Other Payee Name'); + }); + }); });