fix pr review

This commit is contained in:
olivermrbl
2021-03-11 11:38:16 +01:00
parent d55c24e28c
commit 83a7d7ec5a
11 changed files with 97 additions and 29 deletions

View File

@@ -46,7 +46,9 @@ describe("/admin/draft-orders", () => {
await manager.query(`DELETE FROM "product"`);
await manager.query(`DELETE FROM "shipping_method"`);
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`);
@@ -141,12 +143,13 @@ describe("/admin/draft-orders", () => {
expect(response.status).toEqual(200);
});
it("creates a draft order with product variant with custom price", async () => {
it("creates a draft order with product variant with custom price and custom item price set to 0", async () => {
const api = useApi();
const payload = {
email: "oli@test.dk",
shipping_address_id: "oli-shipping",
discounts: [{ code: "TEST" }],
items: [
{
variant_id: "test-variant",
@@ -154,6 +157,11 @@ describe("/admin/draft-orders", () => {
metadata: {},
unit_price: 10000000,
},
{
quantity: 2,
metadata: {},
unit_price: -1000,
},
],
region_id: "test-region",
customer_id: "oli-test",
@@ -185,10 +193,21 @@ describe("/admin/draft-orders", () => {
});
expect(response.status).toEqual(200);
expect(created.data.draft_order.cart.items[0]).toEqual(
expect(created.data.draft_order.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
variant_id: "test-variant",
unit_price: 10000000,
}),
expect.objectContaining({
unit_price: 0,
}),
])
);
// Check that discount is applied
expect(created.data.draft_order.cart.discounts[0]).toEqual(
expect.objectContaining({
variant_id: "test-variant",
unit_price: 10000000,
code: "TEST",
})
);
});
@@ -303,7 +322,9 @@ describe("/admin/draft-orders", () => {
await manager.query(`DELETE FROM "product"`);
await manager.query(`DELETE FROM "shipping_method"`);
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`);

View File

@@ -10,6 +10,8 @@ const {
Cart,
PaymentSession,
DraftOrder,
Discount,
DiscountRule,
} = require("@medusajs/medusa");
module.exports = async (connection, data = {}) => {
@@ -107,6 +109,33 @@ module.exports = async (connection, data = {}) => {
],
});
await manager.insert(DiscountRule, {
id: "discount_rule_id",
description: "test description",
value: 10,
allocation: "total",
type: "percentage",
});
const d = manager.create(Discount, {
id: "test-discount",
code: "TEST",
is_dynamic: false,
is_disabled: false,
rule_id: "discount_rule_id",
});
d.regions = [
{
id: "test-region",
name: "Test Region",
currency_code: "usd",
tax_rate: 0,
},
];
await manager.save(d);
await manager.query(
`UPDATE "country" SET region_id='test-region' WHERE iso_2 = 'us'`
);