diff --git a/integration-tests/api/__tests__/admin/customer.js b/integration-tests/api/__tests__/admin/customer.js index 14c4222977..c208e3086f 100644 --- a/integration-tests/api/__tests__/admin/customer.js +++ b/integration-tests/api/__tests__/admin/customer.js @@ -3,7 +3,7 @@ const path = require("path"); const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { useDb, initDb } = require("../../../helpers/use-db"); const customerSeeder = require("../../helpers/customer-seeder"); const adminSeeder = require("../../helpers/admin-seeder"); @@ -21,8 +21,8 @@ describe("/admin/customers", () => { }); afterAll(async () => { - await dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -39,10 +39,8 @@ describe("/admin/customers", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "address"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("lists customers and query count", async () => { @@ -115,7 +113,6 @@ describe("/admin/customers", () => { expect(response.status).toEqual(200); expect(response.data.count).toEqual(1); - console.log(response.data.customers); expect(response.data.customers).toEqual( expect.arrayContaining([ expect.objectContaining({ diff --git a/integration-tests/api/__tests__/admin/discount.js b/integration-tests/api/__tests__/admin/discount.js index a8472b88bf..44bf7f0a1e 100644 --- a/integration-tests/api/__tests__/admin/discount.js +++ b/integration-tests/api/__tests__/admin/discount.js @@ -1,10 +1,9 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); const { Region, DiscountRule, Discount } = require("@medusajs/medusa"); const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); const adminSeeder = require("../../helpers/admin-seeder"); jest.setTimeout(30000); @@ -20,9 +19,8 @@ describe("/admin/discounts", () => { }); afterAll(async () => { - await dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); - + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -37,10 +35,8 @@ describe("/admin/discounts", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "discount_rule"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("creates a discount and updates it", async () => { @@ -129,10 +125,8 @@ describe("/admin/discounts", () => { }); afterEach(async () => { - manager = dbConnection.manager; - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "discount_rule"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("successfully creates discount with soft-deleted discount code", async () => { @@ -209,10 +203,8 @@ describe("/admin/discounts", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "discount_rule"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("creates a dynamic discount", async () => { diff --git a/integration-tests/api/__tests__/admin/draft-order.js b/integration-tests/api/__tests__/admin/draft-order.js index 858d57833a..89898b10a2 100644 --- a/integration-tests/api/__tests__/admin/draft-order.js +++ b/integration-tests/api/__tests__/admin/draft-order.js @@ -1,9 +1,8 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); const draftOrderSeeder = require("../../helpers/draft-order-seeder"); const adminSeeder = require("../../helpers/admin-seeder"); @@ -21,8 +20,8 @@ describe("/admin/draft-orders", () => { }); afterAll(async () => { - await dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -39,36 +38,8 @@ describe("/admin/draft-orders", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "shipping_option_requirement"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`UPDATE "discount" SET rule_id=NULL`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "discount_rule"`); - await manager.query(`DELETE FROM "payment_provider"`); - await manager.query(`DELETE FROM "payment_session"`); - await manager.query(`UPDATE "payment" SET order_id=NULL`); - await manager.query(`UPDATE "draft_order" SET order_id=NULL`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "draft_order"`); - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query(`DELETE FROM "address"`); - - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'de'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("creates a draft order cart", async () => { @@ -390,36 +361,8 @@ describe("/admin/draft-orders", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "shipping_option_requirement"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`UPDATE "discount" SET rule_id=NULL`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "discount_rule"`); - await manager.query(`DELETE FROM "payment_provider"`); - await manager.query(`DELETE FROM "payment_session"`); - await manager.query(`UPDATE "payment" SET order_id=NULL`); - await manager.query(`UPDATE "draft_order" SET order_id=NULL`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "draft_order"`); - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query(`DELETE FROM "address"`); - - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'de'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("lists draft orders", async () => { @@ -500,36 +443,8 @@ describe("/admin/draft-orders", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "shipping_option_requirement"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`UPDATE "discount" SET rule_id=NULL`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "discount_rule"`); - await manager.query(`DELETE FROM "payment_provider"`); - await manager.query(`DELETE FROM "payment_session"`); - await manager.query(`UPDATE "payment" SET order_id=NULL`); - await manager.query(`UPDATE "draft_order" SET order_id=NULL`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "draft_order"`); - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query(`DELETE FROM "address"`); - - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'de'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("deletes a draft order", async () => { @@ -566,36 +481,8 @@ describe("/admin/draft-orders", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "shipping_option_requirement"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`UPDATE "discount" SET rule_id=NULL`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "discount_rule"`); - await manager.query(`DELETE FROM "payment_provider"`); - await manager.query(`DELETE FROM "payment_session"`); - await manager.query(`UPDATE "payment" SET order_id=NULL`); - await manager.query(`UPDATE "draft_order" SET order_id=NULL`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "draft_order"`); - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query(`DELETE FROM "address"`); - - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'de'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("updates a line item on the draft order", async () => { @@ -683,36 +570,8 @@ describe("/admin/draft-orders", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "shipping_option_requirement"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`UPDATE "discount" SET rule_id=NULL`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "discount_rule"`); - await manager.query(`DELETE FROM "payment_provider"`); - await manager.query(`DELETE FROM "payment_session"`); - await manager.query(`UPDATE "payment" SET order_id=NULL`); - await manager.query(`UPDATE "draft_order" SET order_id=NULL`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "draft_order"`); - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query(`DELETE FROM "address"`); - - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'de'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("updates a line item on the draft order", async () => { diff --git a/integration-tests/api/__tests__/admin/gift-cards.js b/integration-tests/api/__tests__/admin/gift-cards.js index 7a5f400728..5b71d5bc5c 100644 --- a/integration-tests/api/__tests__/admin/gift-cards.js +++ b/integration-tests/api/__tests__/admin/gift-cards.js @@ -1,10 +1,9 @@ -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 { initDb, useDb } = require("../../../helpers/use-db"); const adminSeeder = require("../../helpers/admin-seeder"); jest.setTimeout(30000); @@ -20,8 +19,8 @@ describe("/admin/gift-cards", () => { }); afterAll(async () => { - await dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -44,10 +43,8 @@ describe("/admin/gift-cards", () => { }); 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"`); + const db = useDb(); + await db.teardown(); }); it("creates a gift card", async () => { diff --git a/integration-tests/api/__tests__/admin/order.js b/integration-tests/api/__tests__/admin/order.js index fe7265ed3d..d21591b963 100644 --- a/integration-tests/api/__tests__/admin/order.js +++ b/integration-tests/api/__tests__/admin/order.js @@ -1,4 +1,3 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); const { ReturnReason, @@ -9,7 +8,7 @@ const { const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); const orderSeeder = require("../../helpers/order-seeder"); const swapSeeder = require("../../helpers/swap-seeder"); @@ -28,8 +27,8 @@ describe("/admin/orders", () => { }); afterAll(async () => { - await dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -46,30 +45,8 @@ describe("/admin/orders", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "fulfillment"`); - await manager.query(`DELETE FROM "swap"`); - await manager.query(`DELETE FROM "return"`); - await manager.query(`DELETE FROM "claim_image"`); - await manager.query(`DELETE FROM "claim_tag"`); - await manager.query(`DELETE FROM "claim_item"`); - await manager.query(`DELETE FROM "claim_order"`); - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("gets orders", async () => { @@ -170,30 +147,8 @@ describe("/admin/orders", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "fulfillment"`); - await manager.query(`DELETE FROM "swap"`); - await manager.query(`DELETE FROM "return"`); - await manager.query(`DELETE FROM "claim_image"`); - await manager.query(`DELETE FROM "claim_tag"`); - await manager.query(`DELETE FROM "claim_item"`); - await manager.query(`DELETE FROM "claim_order"`); - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("cancels an order and increments inventory_quantity", async () => { @@ -269,32 +224,8 @@ describe("/admin/orders", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "fulfillment_item"`); - await manager.query(`DELETE FROM "fulfillment"`); - await manager.query(`DELETE FROM "swap"`); - await manager.query(`DELETE FROM "claim_image"`); - await manager.query(`DELETE FROM "claim_tag"`); - await manager.query(`DELETE FROM "claim_item"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "return_item"`); - await manager.query(`DELETE FROM "return"`); - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "claim_order"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("creates a claim", async () => { @@ -866,33 +797,8 @@ describe("/admin/orders", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "fulfillment_item"`); - await manager.query(`DELETE FROM "fulfillment"`); - await manager.query(`DELETE FROM "swap"`); - await manager.query(`DELETE FROM "return_item"`); - await manager.query(`DELETE FROM "return_reason"`); - await manager.query(`DELETE FROM "return"`); - await manager.query(`DELETE FROM "claim_image"`); - await manager.query(`DELETE FROM "claim_tag"`); - await manager.query(`DELETE FROM "claim_item"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "claim_order"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("creates a return", async () => { @@ -1011,31 +917,8 @@ describe("/admin/orders", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "fulfillment_item"`); - await manager.query(`DELETE FROM "fulfillment"`); - await manager.query(`DELETE FROM "swap"`); - await manager.query(`DELETE FROM "return"`); - await manager.query(`DELETE FROM "claim_image"`); - await manager.query(`DELETE FROM "claim_tag"`); - await manager.query(`DELETE FROM "claim_item"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "claim_order"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("lists all orders", async () => { @@ -1161,34 +1044,8 @@ describe("/admin/orders", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "fulfillment_item"`); - await manager.query(`DELETE FROM "fulfillment"`); - await manager.query(`DELETE FROM "return_item"`); - await manager.query(`DELETE FROM "return_reason"`); - await manager.query(`DELETE FROM "return"`); - await manager.query(`DELETE FROM "claim_image"`); - await manager.query(`DELETE FROM "claim_tag"`); - await manager.query(`DELETE FROM "claim_item"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "swap"`); - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "claim_order"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "refund"`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("creates a swap", async () => { diff --git a/integration-tests/api/__tests__/admin/product.js b/integration-tests/api/__tests__/admin/product.js index af1b5b9a2d..f7bf61d78e 100644 --- a/integration-tests/api/__tests__/admin/product.js +++ b/integration-tests/api/__tests__/admin/product.js @@ -1,9 +1,8 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); const adminSeeder = require("../../helpers/admin-seeder"); const productSeeder = require("../../helpers/product-seeder"); @@ -21,8 +20,8 @@ describe("/admin/products", () => { }); afterAll(async () => { - await dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -39,21 +38,8 @@ describe("/admin/products", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "product_option_value"`); - await manager.query(`DELETE FROM "product_option"`); - await manager.query(`DELETE FROM "image"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "product_collection"`); - await manager.query(`DELETE FROM "product_tag"`); - await manager.query(`DELETE FROM "product_type"`); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("creates a product", async () => { @@ -275,21 +261,8 @@ describe("/admin/products", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "product_option_value"`); - await manager.query(`DELETE FROM "product_option"`); - await manager.query(`DELETE FROM "image"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "product_collection"`); - await manager.query(`DELETE FROM "product_tag"`); - await manager.query(`DELETE FROM "product_type"`); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("successfully deletes a product", async () => { diff --git a/integration-tests/api/__tests__/admin/return-reason.js b/integration-tests/api/__tests__/admin/return-reason.js index 57857edead..6255c3bfac 100644 --- a/integration-tests/api/__tests__/admin/return-reason.js +++ b/integration-tests/api/__tests__/admin/return-reason.js @@ -1,9 +1,8 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); const adminSeeder = require("../../helpers/admin-seeder"); @@ -20,8 +19,8 @@ describe("/admin/return-reasons", () => { }); afterAll(async () => { - await dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -37,9 +36,8 @@ describe("/admin/return-reasons", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "return_reason"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("creates a return_reason", async () => { @@ -157,9 +155,6 @@ describe("/admin/return-reasons", () => { }); expect(response.status).toEqual(200); - - console.log(response.data); - expect(response.data.return_reasons).toEqual([ expect.objectContaining({ value: "too_big", diff --git a/integration-tests/api/__tests__/admin/swaps.js b/integration-tests/api/__tests__/admin/swaps.js index 7c3ae863f1..efcc142e65 100644 --- a/integration-tests/api/__tests__/admin/swaps.js +++ b/integration-tests/api/__tests__/admin/swaps.js @@ -1,9 +1,8 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); const orderSeeder = require("../../helpers/order-seeder"); const swapSeeder = require("../../helpers/swap-seeder"); @@ -22,9 +21,8 @@ describe("/admin/swaps", () => { }); afterAll(async () => { - await dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); - + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -40,26 +38,8 @@ describe("/admin/swaps", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "return_item"`); - await manager.query(`DELETE FROM "return"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "swap"`); - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("gets a swap with cart and totals", async () => { @@ -106,26 +86,8 @@ describe("/admin/swaps", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "return_item"`); - await manager.query(`DELETE FROM "return"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "swap"`); - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("lists all swaps", async () => { diff --git a/integration-tests/api/__tests__/store/cart.js b/integration-tests/api/__tests__/store/cart.js index 095e75a94f..8e6371d28c 100644 --- a/integration-tests/api/__tests__/store/cart.js +++ b/integration-tests/api/__tests__/store/cart.js @@ -1,10 +1,9 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); -const { Region, LineItem, Payment } = require("@medusajs/medusa"); +const { Region, LineItem, GiftCard } = require("@medusajs/medusa"); const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); const cartSeeder = require("../../helpers/cart-seeder"); @@ -14,40 +13,20 @@ describe("/store/carts", () => { let medusaProcess; let dbConnection; - const doAfterEach = async (manager) => { - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "discount_rule"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`DELETE FROM "payment_provider"`); - await manager.query(`DELETE FROM "payment_session"`); - await manager.query(`UPDATE "payment" SET order_id=NULL`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`UPDATE "payment" SET cart_id=NULL`); - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "address"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query(`DELETE FROM "region"`); + const doAfterEach = async () => { + const db = useDb(); + return await db.teardown(); }; beforeAll(async () => { const cwd = path.resolve(path.join(__dirname, "..", "..")); dbConnection = await initDb({ cwd }); - medusaProcess = await setupServer({ cwd }); + medusaProcess = await setupServer({ cwd, verbose: true }); }); afterAll(async () => { - dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); - + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -66,8 +45,7 @@ describe("/store/carts", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await doAfterEach(manager); + await doAfterEach(); }); it("creates a cart", async () => { @@ -125,8 +103,7 @@ describe("/store/carts", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await doAfterEach(manager); + await doAfterEach(); }); it("fails on apply discount if limit has been reached", async () => { @@ -215,6 +192,32 @@ describe("/store/carts", () => { expect(cart.status).toEqual(200); }); + it("complete cart with giftcard total 0", async () => { + const manager = dbConnection.manager; + await manager.insert(GiftCard, { + id: "gift_test", + code: "GC_TEST", + value: 20000, + balance: 20000, + region_id: "test-region", + }); + + const api = useApi(); + + await api.post(`/store/carts/test-cart-3`, { + gift_cards: [{ code: "GC_TEST" }], + }); + + const getRes = await api + .post(`/store/carts/test-cart-3/complete`) + .catch((err) => { + console.log(err.response.data); + }); + + expect(getRes.status).toEqual(200); + expect(getRes.data.type).toEqual("order"); + }); + it("complete cart with items inventory covered", async () => { const api = useApi(); const getRes = await api.post(`/store/carts/test-cart-2/complete-cart`); @@ -281,8 +284,7 @@ describe("/store/carts", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await doAfterEach(manager); + await doAfterEach(); }); it("adds a shipping method to cart", async () => { @@ -386,8 +388,7 @@ describe("/store/carts", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await doAfterEach(manager); + await doAfterEach(); }); it("removes free shipping and updates shipping total", async () => { @@ -424,8 +425,7 @@ describe("/store/carts", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await doAfterEach(manager); + await doAfterEach(); }); it("updates empty cart.customer_id on cart retrieval", async () => { diff --git a/integration-tests/api/__tests__/store/customer.js b/integration-tests/api/__tests__/store/customer.js index 2ed0f18ca4..6f3b25f301 100644 --- a/integration-tests/api/__tests__/store/customer.js +++ b/integration-tests/api/__tests__/store/customer.js @@ -1,10 +1,9 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); const { Address, Customer } = require("@medusajs/medusa"); const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); const customerSeeder = require("../../helpers/customer-seeder"); @@ -14,9 +13,9 @@ describe("/store/customers", () => { let medusaProcess; let dbConnection; - const doAfterEach = async (manager) => { - await manager.query(`DELETE FROM "customer"`); - await manager.query(`DELETE FROM "address"`); + const doAfterEach = async () => { + const db = useDb(); + await db.teardown(); }; beforeAll(async () => { @@ -26,9 +25,8 @@ describe("/store/customers", () => { }); afterAll(async () => { - dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); - + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -46,8 +44,7 @@ describe("/store/customers", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await doAfterEach(manager); + await doAfterEach(); }); it("creates a customer", async () => { @@ -106,8 +103,7 @@ describe("/store/customers", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await doAfterEach(manager); + await doAfterEach(); }); it("updates a customer", async () => { diff --git a/integration-tests/api/__tests__/store/draft-order.js b/integration-tests/api/__tests__/store/draft-order.js index de67d017fd..4039b81b84 100644 --- a/integration-tests/api/__tests__/store/draft-order.js +++ b/integration-tests/api/__tests__/store/draft-order.js @@ -1,9 +1,8 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); const draftOrderSeeder = require("../../helpers/draft-order-seeder"); const { create } = require("domain"); @@ -21,8 +20,8 @@ describe("/store/carts (draft-orders)", () => { }); afterAll(async () => { - await dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -38,36 +37,8 @@ describe("/store/carts (draft-orders)", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "shipping_option_requirement"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`UPDATE "discount" SET rule_id=NULL`); - await manager.query(`DELETE FROM "discount"`); - await manager.query(`DELETE FROM "discount_rule"`); - await manager.query(`DELETE FROM "payment_provider"`); - await manager.query(`DELETE FROM "payment_session"`); - await manager.query(`UPDATE "payment" SET order_id=NULL`); - await manager.query(`UPDATE "draft_order" SET order_id=NULL`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "draft_order"`); - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query(`DELETE FROM "address"`); - - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'de'` - ); - await manager.query(`DELETE FROM "region"`); - await manager.query(`DELETE FROM "user"`); + const db = useDb(); + await db.teardown(); }); it("completes a cart for a draft order thereby creating an order for the draft order", async () => { diff --git a/integration-tests/api/__tests__/store/gift-cards.js b/integration-tests/api/__tests__/store/gift-cards.js index 4be1a147ec..7b69120fa2 100644 --- a/integration-tests/api/__tests__/store/gift-cards.js +++ b/integration-tests/api/__tests__/store/gift-cards.js @@ -1,10 +1,9 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); const { Region, GiftCard } = require("@medusajs/medusa"); const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); jest.setTimeout(30000); @@ -19,9 +18,8 @@ describe("/store/gift-cards", () => { }); afterAll(async () => { - dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); - + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -44,9 +42,8 @@ describe("/store/gift-cards", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "gift_card"`); - await manager.query(`DELETE FROM "region"`); + const db = useDb(); + await db.teardown(); }); it("retrieves a gift card", async () => { diff --git a/integration-tests/api/__tests__/store/orders.js b/integration-tests/api/__tests__/store/orders.js index 76b0597420..2a7e9f1071 100644 --- a/integration-tests/api/__tests__/store/orders.js +++ b/integration-tests/api/__tests__/store/orders.js @@ -1,4 +1,3 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); const { Region, @@ -17,7 +16,7 @@ const { const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); const swapSeeder = require("../../helpers/swap-seeder"); const cartSeeder = require("../../helpers/cart-seeder"); @@ -35,9 +34,8 @@ describe("/store/carts", () => { }); afterAll(async () => { - dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); - + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -61,33 +59,8 @@ describe("/store/carts", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query( - `UPDATE "swap" SET cart_id=NULL WHERE id = 'test-swap'` - ); - - await manager.query(`DELETE FROM "payment_session"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "return_item"`); - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "cart"`); - await manager.query(`DELETE FROM "payment"`); - await manager.query(`DELETE FROM "return"`); - await manager.query(`DELETE FROM "swap"`); - await manager.query(`DELETE FROM "fulfillment_item"`); - await manager.query(`DELETE FROM "fulfillment"`); - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "address"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query( - `UPDATE "country" SET region_id=NULL WHERE iso_2 = 'us'` - ); - await manager.query(`DELETE FROM "region"`); + const db = useDb(); + await db.teardown(); }); it("creates a swap from a cart id", async () => { @@ -189,18 +162,8 @@ describe("/store/carts", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "line_item"`); - - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query(`DELETE FROM "region"`); - - await manager.query(`DELETE FROM "product_option_value"`); - await manager.query(`DELETE FROM "product_option"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); + const db = useDb(); + await db.teardown(); }); it("looks up order", async () => { diff --git a/integration-tests/api/__tests__/store/return-reason.js b/integration-tests/api/__tests__/store/return-reason.js index 76707b5358..4698fb86d6 100644 --- a/integration-tests/api/__tests__/store/return-reason.js +++ b/integration-tests/api/__tests__/store/return-reason.js @@ -1,11 +1,10 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); const { ReturnReason } = require("@medusajs/medusa"); const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); jest.setTimeout(30000); @@ -20,9 +19,8 @@ describe("/store/return-reasons", () => { }); afterAll(async () => { - await dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); - + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -45,8 +43,8 @@ describe("/store/return-reasons", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "return_reason"`); + const db = useDb(); + await db.teardown(); }); it("list return reasons", async () => { diff --git a/integration-tests/api/__tests__/store/returns.js b/integration-tests/api/__tests__/store/returns.js index 7de4e9463b..9a30dabf41 100644 --- a/integration-tests/api/__tests__/store/returns.js +++ b/integration-tests/api/__tests__/store/returns.js @@ -1,4 +1,3 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); const { Region, @@ -14,7 +13,7 @@ const { const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); jest.setTimeout(30000); @@ -29,9 +28,8 @@ describe("/store/carts", () => { }); afterAll(async () => { - dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); - + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -124,22 +122,8 @@ describe("/store/carts", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "shipping_method"`); - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`DELETE FROM "return_item"`); - await manager.query(`DELETE FROM "return_reason"`); - await manager.query(`DELETE FROM "return"`); - await manager.query(`DELETE FROM "line_item"`); - await manager.query(`DELETE FROM "order"`); - await manager.query(`DELETE FROM "customer"`); - await manager.query(`DELETE FROM "region"`); - - await manager.query(`DELETE FROM "product_option_value"`); - await manager.query(`DELETE FROM "product_option"`); - await manager.query(`DELETE FROM "money_amount"`); - await manager.query(`DELETE FROM "product_variant"`); - await manager.query(`DELETE FROM "product"`); + const db = useDb(); + await db.teardown(); }); it("creates a return", async () => { diff --git a/integration-tests/api/__tests__/store/shipping-options.js b/integration-tests/api/__tests__/store/shipping-options.js index 0aa9e33cf3..2a9858facd 100644 --- a/integration-tests/api/__tests__/store/shipping-options.js +++ b/integration-tests/api/__tests__/store/shipping-options.js @@ -1,10 +1,9 @@ -const { dropDatabase } = require("pg-god"); const path = require("path"); const { Region, ShippingProfile, ShippingOption } = require("@medusajs/medusa"); const setupServer = require("../../../helpers/setup-server"); const { useApi } = require("../../../helpers/use-api"); -const { initDb } = require("../../../helpers/use-db"); +const { initDb, useDb } = require("../../../helpers/use-db"); jest.setTimeout(30000); @@ -19,9 +18,8 @@ describe("/store/shipping-options", () => { }); afterAll(async () => { - dbConnection.close(); - await dropDatabase({ databaseName: "medusa-integration" }); - + const db = useDb(); + await db.shutdown(); medusaProcess.kill(); }); @@ -87,9 +85,8 @@ describe("/store/shipping-options", () => { }); afterEach(async () => { - const manager = dbConnection.manager; - await manager.query(`DELETE FROM "shipping_option"`); - await manager.query(`DELETE FROM "region"`); + const db = useDb(); + await db.teardown(); }); it("retrieves all shipping options", async () => { diff --git a/integration-tests/api/helpers/cart-seeder.js b/integration-tests/api/helpers/cart-seeder.js index 19697cc14e..1d769fb0c0 100644 --- a/integration-tests/api/helpers/cart-seeder.js +++ b/integration-tests/api/helpers/cart-seeder.js @@ -303,4 +303,40 @@ module.exports = async (connection, data = {}) => { cart_id: "test-cart-2", }); await manager.save(li); + + const cart3 = manager.create(Cart, { + id: "test-cart-3", + customer_id: "some-customer", + email: "some-customer@email.com", + shipping_address: { + id: "test-shipping-address", + first_name: "lebron", + country_code: "us", + }, + region_id: "test-region", + currency_code: "usd", + completed_at: null, + items: [], + }); + await manager.save(cart3); + + await manager.insert(ShippingMethod, { + id: "test-method-2", + shipping_option_id: "test-option", + cart_id: "test-cart-3", + price: 0, + data: {}, + }); + + const li2 = manager.create(LineItem, { + id: "test-item-2", + title: "Line Item", + description: "Line Item Desc", + thumbnail: "https://test.js/1234", + unit_price: 8000, + quantity: 1, + variant_id: "test-variant", + cart_id: "test-cart-3", + }); + await manager.save(li2); }; diff --git a/integration-tests/api/package.json b/integration-tests/api/package.json index 06c9f43c20..0ea9a23633 100644 --- a/integration-tests/api/package.json +++ b/integration-tests/api/package.json @@ -8,15 +8,15 @@ "build": "babel src -d dist --extensions \".ts,.js\"" }, "dependencies": { - "@medusajs/medusa": "1.1.33-dev-1628079986095", - "medusa-interfaces": "^1.1.18", + "@medusajs/medusa": "1.1.34-dev-1628665194353", + "medusa-interfaces": "1.1.21-dev-1628665194353", "typeorm": "^0.2.31" }, "devDependencies": { "@babel/cli": "^7.12.10", "@babel/core": "^7.12.10", "@babel/node": "^7.12.10", - "babel-preset-medusa-package": "^1.1.11", + "babel-preset-medusa-package": "1.1.13-dev-1628665194353", "jest": "^26.6.3" } -} \ No newline at end of file +} diff --git a/integration-tests/api/yarn.lock b/integration-tests/api/yarn.lock index 93166fad13..790604814c 100644 --- a/integration-tests/api/yarn.lock +++ b/integration-tests/api/yarn.lock @@ -1230,10 +1230,10 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@medusajs/medusa-cli@^1.1.14": - version "1.1.14" - resolved "http://localhost:4873/@medusajs%2fmedusa-cli/-/medusa-cli-1.1.14.tgz#3abe5ae2aeba9126a83912d73f4212a259513aad" - integrity sha512-rmC54zBn5Sz+03/i+CzKzIdiCP3YJi/aQhhnJG80+w4nMkH/9lt///4NlbySYFYtIw7ORq8zkOza3//LVKRk4A== +"@medusajs/medusa-cli@1.1.15-dev-1628665194353": + version "1.1.15-dev-1628665194353" + resolved "http://localhost:4873/@medusajs%2fmedusa-cli/-/medusa-cli-1.1.15-dev-1628665194353.tgz#5a3b69e7f806a5f4fc48be675955c213657bbbcb" + integrity sha512-nFaQH1NECfzfpSqnUuSTaztK5aqGqsTWbTg4wxu/r6SMPafr0sjRQBWA5xQcSiHnmEK9cQDrfWIflEim0Jq7RA== dependencies: "@babel/polyfill" "^7.8.7" "@babel/runtime" "^7.9.6" @@ -1251,7 +1251,8 @@ is-valid-path "^0.1.1" joi-objectid "^3.0.1" meant "^1.0.1" - medusa-core-utils "^0.1.27" + medusa-core-utils "1.1.20-dev-1628665194353" + medusa-telemetry "0.0.2-dev-1628665194353" netrc-parser "^3.1.6" open "^8.0.6" ora "^5.4.1" @@ -1265,13 +1266,13 @@ winston "^3.3.3" yargs "^15.3.1" -"@medusajs/medusa@1.1.33-dev-1628079986095": - version "1.1.33-dev-1628079986095" - resolved "http://localhost:4873/@medusajs%2fmedusa/-/medusa-1.1.33-dev-1628079986095.tgz#0e8aa3bd83174366d1266823f093f21968b0f6e4" - integrity sha512-zqvz8+NL5+3Ba5uRS6Z2SaXpRTF2r6B+o0HGY8TjkAmvf2pMKyfIOGpBLtnhezDpDb9mkLdiHqrV23lNE+5pAw== +"@medusajs/medusa@1.1.34-dev-1628665194353": + version "1.1.34-dev-1628665194353" + resolved "http://localhost:4873/@medusajs%2fmedusa/-/medusa-1.1.34-dev-1628665194353.tgz#f939756ac196f63d28203f4381d346db77d900a0" + integrity sha512-neoxIH05nUfxoC3stIENLZPpiDBLgPHc7Cmx7q6uhcKjNGYGi9+dok7lIlMrjWfF4BpaRBPPIkNDiZSGY0pAig== dependencies: "@hapi/joi" "^16.1.8" - "@medusajs/medusa-cli" "^1.1.14" + "@medusajs/medusa-cli" "1.1.15-dev-1628665194353" "@types/lodash" "^4.14.168" awilix "^4.2.3" body-parser "^1.19.0" @@ -1290,8 +1291,8 @@ joi "^17.3.0" joi-objectid "^3.0.1" jsonwebtoken "^8.5.1" - medusa-core-utils "^1.1.19" - medusa-test-utils "^1.1.22" + medusa-core-utils "1.1.20-dev-1628665194353" + medusa-test-utils "1.1.23-dev-1628665194353" morgan "^1.9.1" multer "^1.4.2" passport "^0.4.0" @@ -1603,6 +1604,13 @@ agent-base@6: dependencies: debug "4" +ansi-align@^3.0.0: + version "3.0.0" + resolved "http://localhost:4873/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + ansi-escapes@^3.1.0: version "3.2.0" resolved "http://localhost:4873/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" @@ -1625,6 +1633,11 @@ ansi-regex@^3.0.0: resolved "http://localhost:4873/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +ansi-regex@^4.1.0: + version "4.1.0" + resolved "http://localhost:4873/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" @@ -1760,6 +1773,13 @@ awilix@^4.2.3: camel-case "^4.1.2" glob "^7.1.6" +axios-retry@^3.1.9: + version "3.1.9" + resolved "http://localhost:4873/axios-retry/-/axios-retry-3.1.9.tgz#6c30fc9aeb4519aebaec758b90ef56fa03fe72e8" + integrity sha512-NFCoNIHq8lYkJa6ku4m+V1837TP6lCa7n79Iuf8/AqATAHYB0ISaAS1eyIenDOfHOLtym34W65Sjke2xjg2fsA== + dependencies: + is-retry-allowed "^1.1.0" + axios@^0.21.1: version "0.21.1" resolved "http://localhost:4873/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" @@ -1866,10 +1886,10 @@ babel-preset-jest@^26.6.2: babel-plugin-jest-hoist "^26.6.2" babel-preset-current-node-syntax "^1.0.0" -babel-preset-medusa-package@^1.1.11: - version "1.1.12" - resolved "https://registry.yarnpkg.com/babel-preset-medusa-package/-/babel-preset-medusa-package-1.1.12.tgz#d2acba935813ff080ecac40664bad413432bfcc8" - integrity sha512-haNteSlZu6uZUbUr+361JDi+h5Ky1WAzThJe0Q6EswfdvsqEbmGRibCQHZXW4S2LLr9d5UAoeX7azPDRWC2u0A== +babel-preset-medusa-package@1.1.13-dev-1628665194353: + version "1.1.13-dev-1628665194353" + resolved "http://localhost:4873/babel-preset-medusa-package/-/babel-preset-medusa-package-1.1.13-dev-1628665194353.tgz#d0401b36156ef49a1843f8155d247a7d5c478568" + integrity sha512-a22ODezW26cSwPPLTkkcVnOpoJCpcl5haS9LUK1Lg6a//S33PDXBWe3tBe1qdJKvTlIeQkJEbaSFLr25QT+gew== dependencies: "@babel/plugin-proposal-class-properties" "^7.12.1" "@babel/plugin-proposal-decorators" "^7.12.1" @@ -1946,6 +1966,20 @@ body-parser@1.19.0, body-parser@^1.19.0: raw-body "2.4.0" type-is "~1.6.17" +boxen@^5.0.1: + version "5.0.1" + resolved "http://localhost:4873/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" + integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.0" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -2101,7 +2135,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0: +camelcase@^6.0.0, camelcase@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== @@ -2192,6 +2226,11 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-info@^3.2.0: + version "3.2.0" + resolved "http://localhost:4873/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" + integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== + cjs-module-lexer@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" @@ -2214,6 +2253,11 @@ clean-stack@^3.0.0: dependencies: escape-string-regexp "4.0.0" +cli-boxes@^2.2.1: + version "2.2.1" + resolved "http://localhost:4873/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + cli-cursor@^3.1.0: version "3.1.0" resolved "http://localhost:4873/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -2770,6 +2814,11 @@ emittery@^0.7.1: resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== +emoji-regex@^7.0.1: + version "7.0.3" + resolved "http://localhost:4873/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -3737,7 +3786,7 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-docker@^2.0.0, is-docker@^2.1.1: +is-docker@^2.0.0, is-docker@^2.1.1, is-docker@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== @@ -3865,6 +3914,11 @@ is-regex@^1.1.3: call-bind "^1.0.2" has-symbols "^1.0.2" +is-retry-allowed@^1.1.0: + version "1.2.0" + resolved "http://localhost:4873/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -4726,44 +4780,42 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -medusa-core-utils@^0.1.27: - version "0.1.39" - resolved "http://localhost:4873/medusa-core-utils/-/medusa-core-utils-0.1.39.tgz#d57816c9bd43f9a92883650c1e66add1665291df" - integrity sha512-R8+U1ile7if+nR6Cjh5exunx0ETV0OfkWUUBUpz1KmHSDv0V0CcvQqU9lcZesPFDEbu3Y2iEjsCqidVA4nG2nQ== - dependencies: - "@hapi/joi" "^16.1.8" - joi-objectid "^3.0.1" - -medusa-core-utils@^1.1.18: - version "1.1.18" - resolved "https://registry.yarnpkg.com/medusa-core-utils/-/medusa-core-utils-1.1.18.tgz#2c2c49eeee796493a81bfab58db3f1ef164e6b1b" - integrity sha512-xPE+yrC2cvcWdVQwDUDGJGF0WeRYEdkt/qDtzMCtxsed772YPQ+g2DB1IRi9Kae88P127w8pj9XNGQWPYDsOBA== +medusa-core-utils@1.1.20-dev-1628665194353: + version "1.1.20-dev-1628665194353" + resolved "http://localhost:4873/medusa-core-utils/-/medusa-core-utils-1.1.20-dev-1628665194353.tgz#25d8ab74386e3691bda25a68b811031907f1ec08" + integrity sha512-VUdf9ynG01fVW4hIfCX2cLasWAqwX5ZcBNGVJhrCO+7+Htt+Sk//G6yYFhUDwlgZ9jTNp1qcc3t2TLSZoiEQLQ== dependencies: joi "^17.3.0" joi-objectid "^3.0.1" -medusa-core-utils@^1.1.19: - version "1.1.19" - resolved "http://localhost:4873/medusa-core-utils/-/medusa-core-utils-1.1.19.tgz#d792cfd487e9fd80c41fed0ffbfdf6d677777c22" - integrity sha512-tNEpRFh0siqHSyTNtvMzsckyar2+TcM78xdoiC9qtkdYvNEgou5dXm4YRH0pBtYQSOyOaSll6nUwqFM1p2zhOg== +medusa-interfaces@1.1.21-dev-1628665194353: + version "1.1.21-dev-1628665194353" + resolved "http://localhost:4873/medusa-interfaces/-/medusa-interfaces-1.1.21-dev-1628665194353.tgz#c85cd8e2ce8182baf192bc5fda321892aac9ca62" + integrity sha512-KcItrHJBHtFHbj47moLdGL4NoitKvHV5M4Y4RtMMAngo+iuw8mGHesBlSfg0DwrQwZU0kNWl7kE3S2VgsZVaRw== dependencies: - joi "^17.3.0" - joi-objectid "^3.0.1" + medusa-core-utils "1.1.20-dev-1628665194353" -medusa-interfaces@^1.1.18: - version "1.1.19" - resolved "https://registry.yarnpkg.com/medusa-interfaces/-/medusa-interfaces-1.1.19.tgz#8fa162bbc40a6ad4c632f65dfa531a01a0157ab8" - integrity sha512-lSebIMjg3JMjmY+wkdvKN1feb5R1p+ZaVNUpBGFh9MQpf5Lgb20OUTpuSoofVYjN0+/nTKHTuyQan6uDuDaP4Q== +medusa-telemetry@0.0.2-dev-1628665194353: + version "0.0.2-dev-1628665194353" + resolved "http://localhost:4873/medusa-telemetry/-/medusa-telemetry-0.0.2-dev-1628665194353.tgz#5fa577e48683441f5b4c15ed8f1f903f4ec9f8b7" + integrity sha512-ynROEMTDGuHTy1k7narmZvLMe6v2EoQD+5LRUaypJOPpTzwDSdTp6RRKZq+BxNilOYK6Eklshbr3uXwM34pIzA== dependencies: - medusa-core-utils "^1.1.18" + axios "^0.21.1" + axios-retry "^3.1.9" + boxen "^5.0.1" + ci-info "^3.2.0" + configstore "5.0.1" + is-docker "^2.2.1" + remove-trailing-slash "^0.1.1" + uuid "^8.3.2" -medusa-test-utils@^1.1.22: - version "1.1.22" - resolved "http://localhost:4873/medusa-test-utils/-/medusa-test-utils-1.1.22.tgz#2839fa8023f6f4a7a1170bfdb3a27443923efe3b" - integrity sha512-ZaQmQ+hjrQNs9XsmmROXKJ2QZ23FAD29jLAhUVIwxd11NQ/gZof2F2dgqWyA6sIXKn82tMCTgpiE3KWDtnbA7Q== +medusa-test-utils@1.1.23-dev-1628665194353: + version "1.1.23-dev-1628665194353" + resolved "http://localhost:4873/medusa-test-utils/-/medusa-test-utils-1.1.23-dev-1628665194353.tgz#e07d1f0eb469094d218c56c0a13b4c68718eee68" + integrity sha512-eeUTdy18iq6SGT9fofVkVeQXaVfRuDk8FoMRE3PMOO/wGzgGkKAHF88Z4foFfzIFjA2bwb/pCt8vVJJ4mpEXfw== dependencies: "@babel/plugin-transform-classes" "^7.9.5" - medusa-core-utils "^1.1.19" + medusa-core-utils "1.1.20-dev-1628665194353" randomatic "^3.1.1" merge-descriptors@1.0.1: @@ -5827,6 +5879,11 @@ remove-trailing-separator@^1.0.1: resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= +remove-trailing-slash@^0.1.1: + version "0.1.1" + resolved "http://localhost:4873/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz#be2285a59f39c74d1bce4f825950061915e3780d" + integrity sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA== + repeat-element@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" @@ -6289,6 +6346,15 @@ string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^3.0.0: + version "3.1.0" + resolved "http://localhost:4873/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" @@ -6347,6 +6413,13 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^5.1.0: + version "5.2.0" + resolved "http://localhost:4873/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -6556,6 +6629,11 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.20.2: + version "0.20.2" + resolved "http://localhost:4873/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -6743,7 +6821,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^8.3.0, uuid@^8.3.1: +uuid@^8.3.0, uuid@^8.3.1, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== diff --git a/integration-tests/helpers/setup-server.js b/integration-tests/helpers/setup-server.js index 450279d1e7..053ed4f5fb 100644 --- a/integration-tests/helpers/setup-server.js +++ b/integration-tests/helpers/setup-server.js @@ -3,7 +3,7 @@ const { spawn } = require("child_process"); const { setPort } = require("./use-api"); -module.exports = ({ cwd }) => { +module.exports = ({ cwd, verbose }) => { const serverPath = path.join(__dirname, "test-server.js"); return new Promise((resolve, reject) => { @@ -15,7 +15,9 @@ module.exports = ({ cwd }) => { JWT_SECRET: "test", COOKIE_SECRET: "test", }, - stdio: ["ignore", "ignore", "inherit", "ipc"], + stdio: verbose + ? ["inherit", "inherit", "inherit", "ipc"] + : ["ignore", "ignore", "ignore", "ipc"], }); medusaProcess.on("uncaughtException", (err) => { diff --git a/integration-tests/helpers/use-db.js b/integration-tests/helpers/use-db.js index fa284d1848..5f73ebc4ee 100644 --- a/integration-tests/helpers/use-db.js +++ b/integration-tests/helpers/use-db.js @@ -12,6 +12,15 @@ const pgGodCredentials = { password: DB_PASSWORD, }; +const keepTables = [ + "staged_job", + "shipping_profile", + "fulfillment_provider", + "payment_provider", + "country", + "currency", +]; + const DbTestUtil = { db_: null, @@ -19,13 +28,29 @@ const DbTestUtil = { this.db_ = connection; }, - clear: function () { - return this.db_.synchronize(true); + clear: async function () { + this.db_.synchronize(true); + }, + + teardown: async function () { + const entities = this.db_.entityMetadatas; + const manager = this.db_.manager; + + await manager.query(`SET session_replication_role = 'replica';`); + for (const entity of entities) { + if (keepTables.includes(entity.tableName)) { + continue; + } + + await manager.query(`DELETE FROM "${entity.tableName}";`); + } + await manager.query(`SET session_replication_role = 'origin';`); }, shutdown: async function () { await this.db_.close(); - return dropDatabase({ databaseName }, pgGodCredentials); + const databaseName = "medusa-integration"; + return await dropDatabase({ databaseName }, pgGodCredentials); }, }; diff --git a/packages/medusa/src/models/return-item.ts b/packages/medusa/src/models/return-item.ts index 1e1db9b5e7..942528a3ae 100644 --- a/packages/medusa/src/models/return-item.ts +++ b/packages/medusa/src/models/return-item.ts @@ -51,7 +51,7 @@ export class ReturnItem { @Column({ nullable: true }) reason_id: string - @ManyToOne(() => ReturnReason, { eager: true }) + @ManyToOne(() => ReturnReason) @JoinColumn({ name: "reason_id" }) reason: ReturnReason diff --git a/packages/medusa/src/services/order.js b/packages/medusa/src/services/order.js index a252a87a26..6477f4c0db 100644 --- a/packages/medusa/src/services/order.js +++ b/packages/medusa/src/services/order.js @@ -464,9 +464,11 @@ class OrderService extends BaseService { .withTransaction(manager) .confirmInventory(item.variant_id, item.quantity) } catch (err) { - await this.paymentProviderService_ - .withTransaction(manager) - .cancelPayment(payment) + if (payment) { + await this.paymentProviderService_ + .withTransaction(manager) + .cancelPayment(payment) + } throw err } } @@ -534,11 +536,13 @@ class OrderService extends BaseService { const result = await orderRepo.save(o) - await this.paymentProviderService_ - .withTransaction(manager) - .updatePayment(payment.id, { - order_id: result.id, - }) + if (total !== 0) { + await this.paymentProviderService_ + .withTransaction(manager) + .updatePayment(payment.id, { + order_id: result.id, + }) + } let gcBalance = cart.subtotal for (const g of cart.gift_cards) {