diff --git a/.changeset/funny-shoes-sip.md b/.changeset/funny-shoes-sip.md new file mode 100644 index 0000000000..1d3af81a55 --- /dev/null +++ b/.changeset/funny-shoes-sip.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +Decorate orders returned by /store/orders/:id with totals. diff --git a/integration-tests/api/__tests__/store/orders.js b/integration-tests/api/__tests__/store/orders.js index b01b1bf376..ccf9a2bd7a 100644 --- a/integration-tests/api/__tests__/store/orders.js +++ b/integration-tests/api/__tests__/store/orders.js @@ -106,6 +106,55 @@ describe("/store/carts", () => { await db.teardown() }) + it("retrieves an order by id, with totals", async () => { + const api = useApi() + + const region = await simpleRegionFactory(dbConnection) + const product = await simpleProductFactory(dbConnection) + + const cartRes = await api.post("/store/carts", { + region_id: region.id, + }) + + const cartId = cartRes.data.cart.id + + await api.post(`/store/carts/${cartId}/line-items`, { + variant_id: product.variants[0].id, + quantity: 1, + }) + + await api.post(`/store/carts/${cartId}`, { + email: "testmailer@medusajs.com", + }) + + await api.post(`/store/carts/${cartId}/payment-sessions`).catch((err) => { + console.error("Error creating payment session: ", err.response.data) + return err.response + }) + + const responseSuccess = await api.post(`/store/carts/${cartId}/complete`) + + const orderId = responseSuccess.data.data.id + + const response = await api.get("/store/orders/" + orderId) + + expect(response.status).toEqual(200) + expect(response.data.order).toEqual( + expect.objectContaining({ + id: orderId, + total: 100, + gift_card_total: 0, + gift_card_tax_total: 0, + tax_total: 0, + subtotal: 100, + discount_total: 0, + shipping_total: 0, + refunded_total: 0, + paid_total: 100, + }) + ) + }) + it("looks up order", async () => { const api = useApi() diff --git a/packages/medusa/src/api/routes/store/orders/__tests__/get-order.js b/packages/medusa/src/api/routes/store/orders/__tests__/get-order.js index 0854517865..0373d3dcb1 100644 --- a/packages/medusa/src/api/routes/store/orders/__tests__/get-order.js +++ b/packages/medusa/src/api/routes/store/orders/__tests__/get-order.js @@ -19,8 +19,8 @@ describe("GET /store/orders", () => { }) it("calls orderService retrieve", () => { - expect(OrderServiceMock.retrieve).toHaveBeenCalledTimes(1) - expect(OrderServiceMock.retrieve).toHaveBeenCalledWith( + expect(OrderServiceMock.retrieveWithTotals).toHaveBeenCalledTimes(1) + expect(OrderServiceMock.retrieveWithTotals).toHaveBeenCalledWith( IdMap.getId("test-order"), { select: defaultStoreOrdersFields, diff --git a/packages/medusa/src/api/routes/store/orders/get-order.ts b/packages/medusa/src/api/routes/store/orders/get-order.ts index 4ff7e901df..703d3b4f41 100644 --- a/packages/medusa/src/api/routes/store/orders/get-order.ts +++ b/packages/medusa/src/api/routes/store/orders/get-order.ts @@ -50,7 +50,7 @@ export default async (req, res) => { const { id } = req.params const orderService: OrderService = req.scope.resolve("orderService") - const order = await orderService.retrieve(id, { + const order = await orderService.retrieveWithTotals(id, { select: defaultStoreOrdersFields, relations: defaultStoreOrdersRelations, })