fix(medusa): Applying Discounts (with Conditions) on DraftOrders and Carts (#3197)
This commit is contained in:
@@ -14,7 +14,6 @@ const { useApi } = require("../../../../helpers/use-api")
|
||||
const { initDb, useDb } = require("../../../../helpers/use-db")
|
||||
|
||||
const cartSeeder = require("../../../helpers/cart-seeder")
|
||||
const productSeeder = require("../../../helpers/product-seeder")
|
||||
const swapSeeder = require("../../../helpers/swap-seeder")
|
||||
const {
|
||||
simpleCartFactory,
|
||||
@@ -980,16 +979,18 @@ describe("/store/carts", () => {
|
||||
it("fails on apply discount if limit has been reached", async () => {
|
||||
const api = useApi()
|
||||
|
||||
const code = "SPENT"
|
||||
|
||||
const err = await api
|
||||
.post("/store/carts/test-cart", {
|
||||
discounts: [{ code: "SPENT" }],
|
||||
discounts: [{ code }],
|
||||
})
|
||||
.catch((err) => err)
|
||||
|
||||
expect(err).toBeTruthy()
|
||||
expect(err.response.status).toEqual(400)
|
||||
expect(err.response.data.message).toEqual(
|
||||
"Discount has been used maximum allowed times"
|
||||
`Discount ${code} has been used maximum allowed times`
|
||||
)
|
||||
})
|
||||
|
||||
@@ -1330,14 +1331,15 @@ describe("/store/carts", () => {
|
||||
},
|
||||
})
|
||||
|
||||
const code = "TEST"
|
||||
try {
|
||||
await api.post("/store/carts/test-customer-discount", {
|
||||
discounts: [{ code: "TEST" }],
|
||||
discounts: [{ code }],
|
||||
})
|
||||
} catch (error) {
|
||||
expect(error.response.status).toEqual(400)
|
||||
expect(error.response.data.message).toEqual(
|
||||
"Discount is not valid for customer"
|
||||
`Discount ${code} is not valid for customer`
|
||||
)
|
||||
}
|
||||
})
|
||||
@@ -1399,14 +1401,15 @@ describe("/store/carts", () => {
|
||||
},
|
||||
})
|
||||
|
||||
const code = "TEST"
|
||||
try {
|
||||
await api.post("/store/carts/test-customer-discount", {
|
||||
discounts: [{ code: "TEST" }],
|
||||
discounts: [{ code }],
|
||||
})
|
||||
} catch (error) {
|
||||
expect(error.response.status).toEqual(400)
|
||||
expect(error.response.data.message).toEqual(
|
||||
"Discount is not valid for customer"
|
||||
`Discount ${code} is not valid for customer`
|
||||
)
|
||||
}
|
||||
})
|
||||
@@ -1415,41 +1418,49 @@ describe("/store/carts", () => {
|
||||
expect.assertions(2)
|
||||
const api = useApi()
|
||||
|
||||
try {
|
||||
await api.post("/store/carts/test-cart", {
|
||||
discounts: [{ code: "EXP_DISC" }],
|
||||
const code = "EXP_DISC"
|
||||
|
||||
const err = await api
|
||||
.post("/store/carts/test-cart", {
|
||||
discounts: [{ code }],
|
||||
})
|
||||
} catch (error) {
|
||||
expect(error.response.status).toEqual(400)
|
||||
expect(error.response.data.message).toEqual("Discount is expired")
|
||||
}
|
||||
.catch((e) => e)
|
||||
|
||||
expect(err.response.status).toEqual(400)
|
||||
expect(err.response.data.message).toEqual(`Discount ${code} is expired`)
|
||||
})
|
||||
|
||||
it("fails on discount before start day", async () => {
|
||||
expect.assertions(2)
|
||||
const api = useApi()
|
||||
|
||||
try {
|
||||
await api.post("/store/carts/test-cart", {
|
||||
discounts: [{ code: "PREM_DISC" }],
|
||||
const code = "PREM_DISC"
|
||||
|
||||
const err = await api
|
||||
.post("/store/carts/test-cart", {
|
||||
discounts: [{ code }],
|
||||
})
|
||||
} catch (error) {
|
||||
expect(error.response.status).toEqual(400)
|
||||
expect(error.response.data.message).toEqual("Discount is not valid yet")
|
||||
}
|
||||
.catch((e) => e)
|
||||
|
||||
expect(err.response.status).toEqual(400)
|
||||
expect(err.response.data.message).toEqual(
|
||||
`Discount ${code} is not valid yet`
|
||||
)
|
||||
})
|
||||
|
||||
it("fails on apply invalid dynamic discount", async () => {
|
||||
const api = useApi()
|
||||
|
||||
try {
|
||||
await api.post("/store/carts/test-cart", {
|
||||
discounts: [{ code: "INV_DYN_DISC" }],
|
||||
const code = "INV_DYN_DISC"
|
||||
|
||||
const err = await api
|
||||
.post("/store/carts/test-cart", {
|
||||
discounts: [{ code }],
|
||||
})
|
||||
} catch (error) {
|
||||
expect(error.response.status).toEqual(400)
|
||||
expect(error.response.data.message).toEqual("Discount is expired")
|
||||
}
|
||||
.catch((e) => e)
|
||||
|
||||
expect(err.response.status).toEqual(400)
|
||||
expect(err.response.data.message).toEqual(`Discount ${code} is expired`)
|
||||
})
|
||||
|
||||
it("Applies dynamic discount to cart correctly", async () => {
|
||||
|
||||
Reference in New Issue
Block a user