fix: improves integration tests (#332)

* fix: improves integration tests

* fix: giftcard order with total 0

* fix: remove breaking eager
This commit is contained in:
Sebastian Rindom
2021-08-11 09:26:25 +02:00
committed by GitHub
parent 8edf8aacfa
commit 9a701ff229
23 changed files with 355 additions and 672 deletions
+39 -39
View File
@@ -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 () => {