From 472f96d7fb8668a15df6e6f9ea31291891b3e688 Mon Sep 17 00:00:00 2001 From: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com> Date: Fri, 10 Feb 2023 09:26:54 +0100 Subject: [PATCH] fix(medusa): Missing refund amount when creating claim (#3224) --- .changeset/gentle-pets-press.md | 5 +++ .../api/__tests__/claims/index.js | 43 ++++++++++++++++++- .../api/routes/admin/orders/create-claim.ts | 9 +--- 3 files changed, 48 insertions(+), 9 deletions(-) create mode 100644 .changeset/gentle-pets-press.md diff --git a/.changeset/gentle-pets-press.md b/.changeset/gentle-pets-press.md new file mode 100644 index 0000000000..08963b1584 --- /dev/null +++ b/.changeset/gentle-pets-press.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +fix(medusa): Missing refund amount when creating claim diff --git a/integration-tests/api/__tests__/claims/index.js b/integration-tests/api/__tests__/claims/index.js index b5552ad33c..7c06395dce 100644 --- a/integration-tests/api/__tests__/claims/index.js +++ b/integration-tests/api/__tests__/claims/index.js @@ -38,6 +38,48 @@ describe("Claims", () => { return await doAfterEach() }) + test("creates a refund claim with custom refund amount", async () => { + await adminSeeder(dbConnection) + + const order = await createReturnableOrder(dbConnection) + const api = useApi() + + const response = await api.post( + `/admin/orders/${order.id}/claims`, + { + type: "refund", + refund_amount: 1000, + claim_items: [ + { + item_id: "test-item", + reason: "missing_item", + quantity: 1, + }, + ], + }, + { + headers: { + authorization: "Bearer test_token", + }, + } + ) + + expect(response.status).toEqual(200) + expect(response.data.order.claims[0]).toEqual( + expect.objectContaining({ + order_id: expect.any(String), + refund_amount: 1000, + claim_items: expect.arrayContaining([ + expect.objectContaining({ + item: expect.any(Object), + item_id: "test-item", + quantity: 1, + }), + ]), + }) + ) + }) + test("creates a refund claim", async () => { await adminSeeder(dbConnection) @@ -66,7 +108,6 @@ describe("Claims", () => { expect(response.status).toEqual(200) expect(response.data.order.claims[0]).toEqual( expect.objectContaining({ - id: expect.stringMatching(/^claim_*/), order_id: expect.any(String), refund_amount: 1200, claim_items: expect.arrayContaining([ diff --git a/packages/medusa/src/api/routes/admin/orders/create-claim.ts b/packages/medusa/src/api/routes/admin/orders/create-claim.ts index 527d66afe4..5fecd6c2ee 100644 --- a/packages/medusa/src/api/routes/admin/orders/create-claim.ts +++ b/packages/medusa/src/api/routes/admin/orders/create-claim.ts @@ -157,14 +157,7 @@ export default async (req, res) => { await claimService.withTransaction(manager).create({ idempotency_key: idempotencyKey.idempotency_key, order, - type: value.type, - shipping_address: value.shipping_address, - claim_items: value.claim_items, - return_shipping: value.return_shipping, - additional_items: value.additional_items, - shipping_methods: value.shipping_methods, - no_notification: value.no_notification, - metadata: value.metadata, + ...value, }) return {