From 521d306b7126a820297d7374b9c16bea465fa643 Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Mon, 8 Mar 2021 15:44:37 +0100 Subject: [PATCH] fix: adds integration test to create endpoint --- .../api/__tests__/admin/gift-cards.js | 79 +++++++++++++++++++ integration-tests/api/__tests__/store/cart.js | 2 +- .../admin/gift-cards/create-gift-card.js | 7 +- 3 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 integration-tests/api/__tests__/admin/gift-cards.js diff --git a/integration-tests/api/__tests__/admin/gift-cards.js b/integration-tests/api/__tests__/admin/gift-cards.js new file mode 100644 index 0000000000..7a5f400728 --- /dev/null +++ b/integration-tests/api/__tests__/admin/gift-cards.js @@ -0,0 +1,79 @@ +const { dropDatabase } = require("pg-god"); +const path = require("path"); +const { Region } = require("@medusajs/medusa"); + +const setupServer = require("../../../helpers/setup-server"); +const { useApi } = require("../../../helpers/use-api"); +const { initDb } = require("../../../helpers/use-db"); +const adminSeeder = require("../../helpers/admin-seeder"); + +jest.setTimeout(30000); + +describe("/admin/gift-cards", () => { + let medusaProcess; + let dbConnection; + + beforeAll(async () => { + const cwd = path.resolve(path.join(__dirname, "..", "..")); + dbConnection = await initDb({ cwd }); + medusaProcess = await setupServer({ cwd }); + }); + + afterAll(async () => { + await dbConnection.close(); + await dropDatabase({ databaseName: "medusa-integration" }); + + medusaProcess.kill(); + }); + + describe("POST /admin/gift-cards", () => { + beforeEach(async () => { + const manager = dbConnection.manager; + try { + await adminSeeder(dbConnection); + await manager.insert(Region, { + id: "region", + name: "Test Region", + currency_code: "usd", + tax_rate: 0, + }); + } catch (err) { + console.log(err); + throw err; + } + }); + + afterEach(async () => { + const manager = dbConnection.manager; + await manager.query(`DELETE FROM "gift_card"`); + await manager.query(`DELETE FROM "region"`); + await manager.query(`DELETE FROM "user"`); + }); + + it("creates a gift card", async () => { + const api = useApi(); + + const response = await api + .post( + "/admin/gift-cards", + { + value: 1000, + region_id: "region", + }, + { + headers: { + Authorization: "Bearer test_token", + }, + } + ) + .catch((err) => { + console.log(err); + }); + + expect(response.status).toEqual(200); + expect(response.data.gift_card.value).toEqual(1000); + expect(response.data.gift_card.balance).toEqual(1000); + expect(response.data.gift_card.region_id).toEqual("region"); + }); + }); +}); diff --git a/integration-tests/api/__tests__/store/cart.js b/integration-tests/api/__tests__/store/cart.js index e924f26e42..e85a31b066 100644 --- a/integration-tests/api/__tests__/store/cart.js +++ b/integration-tests/api/__tests__/store/cart.js @@ -22,7 +22,7 @@ describe("/store/carts", () => { afterAll(async () => { dbConnection.close(); - dropDatabase({ databaseName: "medusa-integration" }); + await dropDatabase({ databaseName: "medusa-integration" }); medusaProcess.kill(); }); diff --git a/packages/medusa/src/api/routes/admin/gift-cards/create-gift-card.js b/packages/medusa/src/api/routes/admin/gift-cards/create-gift-card.js index 19734fef72..4aab253c55 100644 --- a/packages/medusa/src/api/routes/admin/gift-cards/create-gift-card.js +++ b/packages/medusa/src/api/routes/admin/gift-cards/create-gift-card.js @@ -20,9 +20,12 @@ export default async (req, res) => { try { const giftCardService = req.scope.resolve("giftCardService") - await giftCardService.create(value) + const newly = await giftCardService.create({ + ...value, + balance: value.value, + }) - const giftCard = await giftCardService.retrieve(id, { + const giftCard = await giftCardService.retrieve(newly.id, { select: defaultFields, relations: defaultRelations, })