From b458615ed50a7c637e9e77f29f21c7ab300ed5d8 Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Wed, 1 Mar 2023 13:22:25 +0100 Subject: [PATCH] fix(medusa): Delete all payment sessions when cart total is 0 (#3346) * Fix(medusa): On cart total amount at 0 the non initialised payment sessions are not delete * fix test * Create good-crews-pull.md --- .changeset/good-crews-pull.md | 5 +++++ packages/medusa/src/services/__tests__/cart.js | 16 ++++++++-------- packages/medusa/src/services/cart.ts | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 .changeset/good-crews-pull.md diff --git a/.changeset/good-crews-pull.md b/.changeset/good-crews-pull.md new file mode 100644 index 0000000000..da496a6ec4 --- /dev/null +++ b/.changeset/good-crews-pull.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +Fix(medusa): All payment sessions should be removed if cart total reach 0 diff --git a/packages/medusa/src/services/__tests__/cart.js b/packages/medusa/src/services/__tests__/cart.js index 9bab2f7538..2820514c58 100644 --- a/packages/medusa/src/services/__tests__/cart.js +++ b/packages/medusa/src/services/__tests__/cart.js @@ -1688,8 +1688,8 @@ describe("CartService", () => { expect(paymentSessionRepositoryMock.create).toHaveBeenCalledTimes(1) expect(paymentSessionRepositoryMock.save).toHaveBeenCalledTimes(2) // create and update - expect(paymentSessionRepositoryMock.delete).toHaveBeenCalledTimes(1) - expect(paymentSessionRepositoryMock.delete).toHaveBeenCalledWith({ + expect(paymentSessionRepositoryMock.remove).toHaveBeenCalledTimes(1) + expect(paymentSessionRepositoryMock.remove).toHaveBeenCalledWith({ provider_id: "not_in_region", }) }) @@ -1697,12 +1697,12 @@ describe("CartService", () => { it("removes if cart total === 0", async () => { await cartService.setPaymentSessions(IdMap.getId("cart-remove")) - expect(paymentSessionRepositoryMock.delete).toHaveBeenCalledTimes(2) + expect(paymentSessionRepositoryMock.remove).toHaveBeenCalledTimes(2) - expect(paymentSessionRepositoryMock.delete).toHaveBeenCalledWith({ + expect(paymentSessionRepositoryMock.remove).toHaveBeenCalledWith({ provider_id: provider1Id, }) - expect(paymentSessionRepositoryMock.delete).toHaveBeenCalledWith({ + expect(paymentSessionRepositoryMock.remove).toHaveBeenCalledWith({ provider_id: provider2Id, }) }) @@ -1710,12 +1710,12 @@ describe("CartService", () => { it("removes if cart total < 0", async () => { await cartService.setPaymentSessions(IdMap.getId("cart-negative")) - expect(paymentSessionRepositoryMock.delete).toHaveBeenCalledTimes(2) + expect(paymentSessionRepositoryMock.remove).toHaveBeenCalledTimes(2) - expect(paymentSessionRepositoryMock.delete).toHaveBeenCalledWith({ + expect(paymentSessionRepositoryMock.remove).toHaveBeenCalledWith({ provider_id: provider1Id, }) - expect(paymentSessionRepositoryMock.delete).toHaveBeenCalledWith({ + expect(paymentSessionRepositoryMock.remove).toHaveBeenCalledWith({ provider_id: provider2Id, }) }) diff --git a/packages/medusa/src/services/cart.ts b/packages/medusa/src/services/cart.ts index 9c0dda7648..e06000041f 100644 --- a/packages/medusa/src/services/cart.ts +++ b/packages/medusa/src/services/cart.ts @@ -1821,7 +1821,7 @@ class CartService extends TransactionBaseService { return paymentProviderServiceTx.deleteSession(session) } - return psRepo.delete(session) + return psRepo.remove(session) } // In the case of a cart that has a total <= 0 we can return prematurely.