From f7c46ab18ce83e0d939851077cfa442598f2adfd Mon Sep 17 00:00:00 2001 From: doubleface Date: Fri, 9 Dec 2022 15:41:36 +0100 Subject: [PATCH] fix: Error on bank accounts without connection relationship Some old bank accounts, without any associated running connector, may have no "connection" relationship. Adding a protection against this. --- .../cozy-doctypes/src/banking/BankAccount.js | 4 +++- .../src/banking/BankAccount.spec.js | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/cozy-doctypes/src/banking/BankAccount.js b/packages/cozy-doctypes/src/banking/BankAccount.js index 9fd2aec789..737eb4263e 100644 --- a/packages/cozy-doctypes/src/banking/BankAccount.js +++ b/packages/cozy-doctypes/src/banking/BankAccount.js @@ -64,7 +64,9 @@ class BankAccount extends Document { matchedAccountIds[localAccount._id] ) const newAccountId = - replacedCozyAccountIds[localAccount.relationships.connection.data._id] + replacedCozyAccountIds[ + localAccount?.relationships?.connection?.data?._id + ] if (foundInMatchedAccounts || !newAccountId) { continue } diff --git a/packages/cozy-doctypes/src/banking/BankAccount.spec.js b/packages/cozy-doctypes/src/banking/BankAccount.spec.js index fa0bd40a4f..72b64e59a1 100644 --- a/packages/cozy-doctypes/src/banking/BankAccount.spec.js +++ b/packages/cozy-doctypes/src/banking/BankAccount.spec.js @@ -1,7 +1,7 @@ const BankAccount = require('./BankAccount') describe('account reconciliation', () => { - it('should update relationship of disabled accounts associated to the same relationship as updated anabled accounts', () => { + it('should update relationship of disabled accounts associated to the same relationship as updated anabled accounts even with accounts without connection relationship', () => { const newAccounts = [ { number: '1', @@ -51,6 +51,21 @@ describe('account reconciliation', () => { metadata: { updatedAt: '2020-11-30' } + }, + { + _id: 'oldaccountnorelationship', + number: '10', + balance: 0, + relationships: { + other: { + data: { + some: 'data' + } + } + }, + metadata: { + updatedAt: '2012-11-30' + } } ] const matchedAccounts = BankAccount.reconciliate(