From 591668d33204054d479313b0de15eca937f03614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frane=20Poli=C4=87?= <16856471+fPolic@users.noreply.github.com> Date: Mon, 31 Oct 2022 13:24:59 +0100 Subject: [PATCH] fix(medusa): draft order set payment as captured (#2479) **What** - when an order is created from a draft order, set the payment of the order as captured FIXES CORE-592 --- .../api/__tests__/admin/draft-order.js | 13 +++++++------ .../routes/admin/draft-orders/register-payment.ts | 2 ++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/integration-tests/api/__tests__/admin/draft-order.js b/integration-tests/api/__tests__/admin/draft-order.js index 6a2f06bf24..4fc03c8605 100644 --- a/integration-tests/api/__tests__/admin/draft-order.js +++ b/integration-tests/api/__tests__/admin/draft-order.js @@ -649,18 +649,19 @@ describe("/admin/draft-orders", () => { ) expect(orderResponse.status).toEqual(200) - // expect newly created order to have id of draft order and system payment + // expect newly created order to have id of draft order expect(createdOrder.data.order.draft_order_id).toEqual("test-draft-order") - expect(createdOrder.data.order.payments).toEqual( - expect.arrayContaining([ - expect.objectContaining({ provider_id: "system" }), - ]) - ) + // expect system payment provider and the payment to be "captured" + expect(createdOrder.data.order.payments.length).toEqual(1) + expect(createdOrder.data.order.payments[0].provider_id).toEqual("system") + expect(createdOrder.data.order.payments[0].captured_at).not.toEqual(null) + // expect draft order to be complete expect(updatedDraftOrder.data.draft_order.status).toEqual("completed") expect(updatedDraftOrder.data.draft_order.completed_at).not.toEqual(null) }) }) + describe("GET /admin/draft-orders", () => { beforeEach(async () => { await adminSeeder(dbConnection) diff --git a/packages/medusa/src/api/routes/admin/draft-orders/register-payment.ts b/packages/medusa/src/api/routes/admin/draft-orders/register-payment.ts index fb8dce918b..53fa81d9ec 100644 --- a/packages/medusa/src/api/routes/admin/draft-orders/register-payment.ts +++ b/packages/medusa/src/api/routes/admin/draft-orders/register-payment.ts @@ -111,6 +111,8 @@ export default async (req, res) => { await draftOrderService .withTransaction(manager) .registerCartCompletion(draftOrder.id, result.id) + + await orderService.withTransaction(manager).capturePayment(result.id) }) const order = await orderService.retrieve(result.id, {