fix(medusa): Post /admin/discounts/:id not updating condition operator (#1573)

This commit is contained in:
Kasper Fabricius Kristensen
2022-05-24 12:28:40 +02:00
committed by GitHub
parent a33c1cfb14
commit 5414148254
2 changed files with 11 additions and 3 deletions
@@ -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,