From 98e72028a2f1165e7b1bb26a152c23747e4874ce Mon Sep 17 00:00:00 2001 From: Carlo Date: Thu, 16 Dec 2021 11:18:17 +0100 Subject: [PATCH] fix: confirmation modal does not change the transaction in the edit fields --- .../pages/dashboard/prepare-submit.test.ts | 35 +++++++++++++++++++ .../src/pages/dashboard/prepare-submit.ts | 4 ++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 frontend/src/pages/dashboard/prepare-submit.test.ts diff --git a/frontend/src/pages/dashboard/prepare-submit.test.ts b/frontend/src/pages/dashboard/prepare-submit.test.ts new file mode 100644 index 0000000..3ddab2e --- /dev/null +++ b/frontend/src/pages/dashboard/prepare-submit.test.ts @@ -0,0 +1,35 @@ +import { Posting } from 'pta-tools'; + +import prepareSubmit from './prepare-submit'; + +import { FormData, OPTION_SPLITWISE } from './'; + +describe("prepareSubmit", () => { + test("Does not mutate the input trx", () => { + const trx: FormData = { + comment: "comment", + date: new Date("2019-01-01"), + description: "string", + entries: [{ account: "Bar", amount: "7" }], + payingAccount: "Cash", + }; + + expect(prepareSubmit(trx, []).entries.length).toBe(2); + expect(trx.entries.length).toBe(1); // trx.entries is not mutated + }); + test("Splits with Splitwise", () => { + const trx: FormData = { + comment: "comment", + date: new Date("2019-01-01"), + description: "string", + entries: [{ account: "Bar", amount: "7" }], + payingAccount: "Cash", + }; + + const result = prepareSubmit(trx, [OPTION_SPLITWISE]); + expect(result.entries.length).toBe(3); + expect((result.entries[0] as Posting).amount).toBe("3.5"); + expect((result.entries[1] as Posting).amount).toBe("3.5"); + expect((result.entries[2] as Posting).account).toBe("Cash"); + }); +}); diff --git a/frontend/src/pages/dashboard/prepare-submit.ts b/frontend/src/pages/dashboard/prepare-submit.ts index 83cee59..45b2ad7 100644 --- a/frontend/src/pages/dashboard/prepare-submit.ts +++ b/frontend/src/pages/dashboard/prepare-submit.ts @@ -31,7 +31,9 @@ function prepareSubmitData(data: FormData, options: string[]): Transaction { } if (payingAccount) { - transaction.entries.push({ account: payingAccount }); + transaction.entries = transaction.entries.concat({ + account: payingAccount, + }); } return transaction; }