From bd6d0c61307cb2ebb678ad5c382fa997d1e6adbf Mon Sep 17 00:00:00 2001 From: --list Date: Thu, 10 Jun 2021 11:33:31 +0200 Subject: [PATCH] added tests to remaining components --- .../api/routes/admin/orders/create-order.js | 1 + .../api/routes/admin/orders/refund-payment.js | 6 +++++- .../api/routes/admin/orders/update-order.js | 3 ++- .../medusa/src/services/__tests__/claim.js | 21 +++++++++++++++++++ .../medusa/src/services/__tests__/order.js | 10 ++++++--- .../medusa/src/services/__tests__/swap.js | 18 +--------------- packages/medusa/src/services/claim.js | 2 +- packages/medusa/src/services/order.js | 2 +- 8 files changed, 39 insertions(+), 24 deletions(-) diff --git a/packages/medusa/src/api/routes/admin/orders/create-order.js b/packages/medusa/src/api/routes/admin/orders/create-order.js index e6ff1b36df..5adce02ad8 100644 --- a/packages/medusa/src/api/routes/admin/orders/create-order.js +++ b/packages/medusa/src/api/routes/admin/orders/create-order.js @@ -27,6 +27,7 @@ export default async (req, res) => { items: Validator.array().optional(), }) .required(), + no_notification: Validator.boolean().optional(), metadata: Validator.object().optional(), }) diff --git a/packages/medusa/src/api/routes/admin/orders/refund-payment.js b/packages/medusa/src/api/routes/admin/orders/refund-payment.js index c4629e0987..0bb0ccc616 100644 --- a/packages/medusa/src/api/routes/admin/orders/refund-payment.js +++ b/packages/medusa/src/api/routes/admin/orders/refund-payment.js @@ -25,6 +25,9 @@ import { defaultRelations, defaultFields } from "./" * note: * description: A not with additional details about the Refund. * type: string + * no_notification: + * description: If set to true no notification will be send related to this Swap. + * type: boolean * tags: * - Order * responses: @@ -47,6 +50,7 @@ export default async (req, res) => { note: Validator.string() .allow("") .optional(), + no_notification: Validator.boolean().optional(), }) const { value, error } = schema.validate(req.body) @@ -57,7 +61,7 @@ export default async (req, res) => { try { const orderService = req.scope.resolve("orderService") - await orderService.createRefund(id, value.amount, value.reason, value.note) + await orderService.createRefund(id, value.amount, value.reason, value.note, value.no_notification) const order = await orderService.retrieve(id, { select: defaultFields, diff --git a/packages/medusa/src/api/routes/admin/orders/update-order.js b/packages/medusa/src/api/routes/admin/orders/update-order.js index ba1ed0bf8c..582b1b9a81 100644 --- a/packages/medusa/src/api/routes/admin/orders/update-order.js +++ b/packages/medusa/src/api/routes/admin/orders/update-order.js @@ -22,7 +22,8 @@ export default async (req, res) => { price: Validator.number(), data: Validator.object(), items: Validator.array(), - }) + }), + no_notification: Validator.boolean(), }) const { value, error } = schema.validate(req.body) diff --git a/packages/medusa/src/services/__tests__/claim.js b/packages/medusa/src/services/__tests__/claim.js index cedc534746..ceebac20ed 100644 --- a/packages/medusa/src/services/__tests__/claim.js +++ b/packages/medusa/src/services/__tests__/claim.js @@ -22,6 +22,7 @@ describe("ClaimService", () => { order: { id: "1234", region_id: "order_region", + no_notification: true, items: [ { id: "itm_1", @@ -138,6 +139,7 @@ describe("ClaimService", () => { expect(claimRepo.create).toHaveBeenCalledTimes(1) expect(claimRepo.create).toHaveBeenCalledWith({ payment_status: "not_refunded", + no_notification: true, refund_amount: 1000, type: "refund", order_id: "1234", @@ -156,6 +158,7 @@ describe("ClaimService", () => { expect(eventBusService.emit).toHaveBeenCalledTimes(1) expect(eventBusService.emit).toHaveBeenCalledWith("claim.created", { id: "claim_134", + no_notification: true, }) }) @@ -208,6 +211,24 @@ describe("ClaimService", () => { }) ).rejects.toThrow(`Claims must have at least one claim item.`) }) + + it.each( + [ + [false, false], + [undefined, true] + ], + "passes correct no_notification status to event bus", async (input, expected) => { + await claimService.create({ + ...testClaim, + no_notification: input, + }) + + expect(eventBusService.emit).toHaveBeenCalledWith(expect.any(String),{ + id: expect.any(String), + no_notification: expected + }) + + }) }) describe("retrieve", () => { diff --git a/packages/medusa/src/services/__tests__/order.js b/packages/medusa/src/services/__tests__/order.js index 2536f014e7..a9526a8245 100644 --- a/packages/medusa/src/services/__tests__/order.js +++ b/packages/medusa/src/services/__tests__/order.js @@ -1081,6 +1081,7 @@ describe("OrderService", () => { paid_total: 100, refundable_amount: 100, refunded_total: 0, + no_notification: true, }) }, }) @@ -1130,18 +1131,21 @@ describe("OrderService", () => { ).rejects.toThrow("Cannot refund more than the original order amount") }) - it("emits correct no_notification option", async () => { + it.each([ + [false, false], + [undefined, true], + ],"emits correct no_notification option", async (input, expected) => { await orderService.createRefund( IdMap.getId("order_123"), 100, "discount", "note", - false + input ) expect(eventBusService.emit).toHaveBeenCalledWith(expect.any(String),{ id: expect.any(String), - no_notification: false, + no_notification: expected, refund_id: expect.any(String) } ) }) diff --git a/packages/medusa/src/services/__tests__/swap.js b/packages/medusa/src/services/__tests__/swap.js index 99d50f750d..4adb462748 100644 --- a/packages/medusa/src/services/__tests__/swap.js +++ b/packages/medusa/src/services/__tests__/swap.js @@ -344,6 +344,7 @@ describe("SwapService", () => { it.each([ [true, true], [false, false], + [undefined, true], ])( "passes correct no_notification to eventBus with %s", async (input, expected) => { await swapService.create( @@ -361,23 +362,6 @@ describe("SwapService", () => { expect.any(String), {"id": undefined, "no_notification": expected}) }) - - it("passes inherited value of order when no no_notification value is given ", async () => { - await swapService.create( - testOrder, - [{ item_id: IdMap.getId("line"), quantity: 1 }], - [{ variant_id: IdMap.getId("new-variant"), quantity: 1 }], - { - id: IdMap.getId("return-shipping"), - price: 20, - } - ) - - expect(eventBusService.emit).toHaveBeenCalledWith( - expect.anything(), - {"id": undefined, "no_notification": true}) - }) - }) }) diff --git a/packages/medusa/src/services/claim.js b/packages/medusa/src/services/claim.js index 80b5858331..7b13d6c561 100644 --- a/packages/medusa/src/services/claim.js +++ b/packages/medusa/src/services/claim.js @@ -235,7 +235,7 @@ class ClaimService extends BaseService { ) ) - const evaluatedNoNotification = no_notification ? no_notification : order.no_notification + const evaluatedNoNotification = no_notification !== undefined ? no_notification : order.no_notification const created = claimRepo.create({ shipping_address_id: addressId, diff --git a/packages/medusa/src/services/order.js b/packages/medusa/src/services/order.js index 9f4f117f99..b834bb634f 100644 --- a/packages/medusa/src/services/order.js +++ b/packages/medusa/src/services/order.js @@ -1132,7 +1132,7 @@ class OrderService extends BaseService { const result = await this.retrieve(orderId) - const evaluatedNoNotification = noNotification != undefined ? noNotification : order.no_notification + const evaluatedNoNotification = noNotification !== undefined ? noNotification : order.no_notification this.eventBus_.emit(OrderService.Events.REFUND_CREATED, { id: result.id,