fix(medusa): Post /admin/discounts/:id not updating condition operator (#1573)
This commit is contained in:
@@ -640,6 +640,7 @@ describe("/admin/discounts", () => {
|
|||||||
conditions: [
|
conditions: [
|
||||||
{
|
{
|
||||||
id: condsToUpdate.id,
|
id: condsToUpdate.id,
|
||||||
|
operator: "not_in",
|
||||||
products: [product.id, anotherProduct.id],
|
products: [product.id, anotherProduct.id],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@@ -656,10 +657,10 @@ describe("/admin/discounts", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
expect(updated.status).toEqual(200)
|
expect(updated.status).toEqual(200)
|
||||||
expect(updated.data.discount.rule.conditions).toEqual([
|
expect(updated.data.discount.rule.conditions).toEqual(expect.arrayContaining([
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
type: "products",
|
type: "products",
|
||||||
operator: "in",
|
operator: "not_in",
|
||||||
products: expect.arrayContaining([
|
products: expect.arrayContaining([
|
||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
id: product.id,
|
id: product.id,
|
||||||
@@ -673,7 +674,7 @@ describe("/admin/discounts", () => {
|
|||||||
type: "product_types",
|
type: "product_types",
|
||||||
operator: "not_in",
|
operator: "not_in",
|
||||||
}),
|
}),
|
||||||
])
|
]))
|
||||||
})
|
})
|
||||||
|
|
||||||
it("fails to add condition on rule with existing comb. of type and operator", async () => {
|
it("fails to add condition on rule with existing comb. of type and operator", async () => {
|
||||||
|
|||||||
@@ -122,6 +122,13 @@ class DiscountConditionService extends BaseService {
|
|||||||
manager.getCustomRepository(this.discountConditionRepository_)
|
manager.getCustomRepository(this.discountConditionRepository_)
|
||||||
|
|
||||||
if (data.id) {
|
if (data.id) {
|
||||||
|
const resolvedCondition = await this.retrieve(data.id)
|
||||||
|
|
||||||
|
if (data.operator && data.operator !== resolvedCondition.operator) {
|
||||||
|
resolvedCondition.operator = data.operator
|
||||||
|
await discountConditionRepo.save(resolvedCondition)
|
||||||
|
}
|
||||||
|
|
||||||
return await discountConditionRepo.addConditionResources(
|
return await discountConditionRepo.addConditionResources(
|
||||||
data.id,
|
data.id,
|
||||||
resolvedConditionType.resource_ids,
|
resolvedConditionType.resource_ids,
|
||||||
|
|||||||
Reference in New Issue
Block a user