From ca0de00d0b98601d9f2571f55671c609a1e2e800 Mon Sep 17 00:00:00 2001 From: Zakaria El Asri <33696020+zakariaelas@users.noreply.github.com> Date: Thu, 5 Aug 2021 15:44:19 +0100 Subject: [PATCH] add: is_discount filtering + unit tests (#330) --- .../discounts/__tests__/list-discounts.js | 70 ++++++++++++++++++- .../routes/admin/discounts/list-discounts.js | 4 ++ 2 files changed, 72 insertions(+), 2 deletions(-) diff --git a/packages/medusa/src/api/routes/admin/discounts/__tests__/list-discounts.js b/packages/medusa/src/api/routes/admin/discounts/__tests__/list-discounts.js index 9c9198f38a..643a9ae054 100644 --- a/packages/medusa/src/api/routes/admin/discounts/__tests__/list-discounts.js +++ b/packages/medusa/src/api/routes/admin/discounts/__tests__/list-discounts.js @@ -44,7 +44,7 @@ describe("GET /admin/discounts", () => { jest.clearAllMocks() subject = await request( "GET", - `/admin/discounts?q=OLI&limit=40&offset=20&is_dynamic=false`, + `/admin/discounts?q=OLI&limit=40&offset=20&is_dynamic=false&is_disabled=false`, { adminSession: { jwt: { @@ -62,7 +62,7 @@ describe("GET /admin/discounts", () => { it("calls service retrieve with config", () => { expect(DiscountServiceMock.listAndCount).toHaveBeenCalledTimes(1) expect(DiscountServiceMock.listAndCount).toHaveBeenCalledWith( - { q: "OLI", is_dynamic: false }, + { q: "OLI", is_dynamic: false, is_disabled: false }, { select: defaultFields, relations: defaultRelations, @@ -73,4 +73,70 @@ describe("GET /admin/discounts", () => { ) }) }) + + describe("successful retrieval of dynamic discounts", () => { + let subject + + beforeAll(async () => { + jest.clearAllMocks() + subject = await request("GET", `/admin/discounts?is_dynamic=true`, { + adminSession: { + jwt: { + userId: IdMap.getId("admin_user"), + }, + }, + }) + }) + + it("returns 200", () => { + expect(subject.status).toEqual(200) + }) + + it("calls service retrieve with corresponding config", () => { + expect(DiscountServiceMock.listAndCount).toHaveBeenCalledTimes(1) + expect(DiscountServiceMock.listAndCount).toHaveBeenCalledWith( + { is_dynamic: true }, + { + select: defaultFields, + relations: defaultRelations, + skip: 0, + take: 20, + order: { created_at: "DESC" }, + } + ) + }) + }) + + describe("successful retrieval of disabled discounts", () => { + let subject + + beforeAll(async () => { + jest.clearAllMocks() + subject = await request("GET", `/admin/discounts?is_disabled=true`, { + adminSession: { + jwt: { + userId: IdMap.getId("admin_user"), + }, + }, + }) + }) + + it("returns 200", () => { + expect(subject.status).toEqual(200) + }) + + it("calls service retrieve with corresponding config", () => { + expect(DiscountServiceMock.listAndCount).toHaveBeenCalledTimes(1) + expect(DiscountServiceMock.listAndCount).toHaveBeenCalledWith( + { is_disabled: true }, + { + select: defaultFields, + relations: defaultRelations, + skip: 0, + take: 20, + order: { created_at: "DESC" }, + } + ) + }) + }) }) diff --git a/packages/medusa/src/api/routes/admin/discounts/list-discounts.js b/packages/medusa/src/api/routes/admin/discounts/list-discounts.js index 1790df836e..bf4b982fed 100644 --- a/packages/medusa/src/api/routes/admin/discounts/list-discounts.js +++ b/packages/medusa/src/api/routes/admin/discounts/list-discounts.js @@ -34,6 +34,10 @@ export default async (req, res) => { selector.is_dynamic = req.query.is_dynamic === "true" } + if ("is_disabled" in req.query) { + selector.is_disabled = req.query.is_disabled === "true" + } + const listConfig = { select: defaultFields, relations: defaultRelations,