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: [
{
id: condsToUpdate.id,
operator: "not_in",
products: [product.id, anotherProduct.id],
},
],
@@ -656,10 +657,10 @@ describe("/admin/discounts", () => {
})
expect(updated.status).toEqual(200)
expect(updated.data.discount.rule.conditions).toEqual([
expect(updated.data.discount.rule.conditions).toEqual(expect.arrayContaining([
expect.objectContaining({
type: "products",
operator: "in",
operator: "not_in",
products: expect.arrayContaining([
expect.objectContaining({
id: product.id,
@@ -673,7 +674,7 @@ describe("/admin/discounts", () => {
type: "product_types",
operator: "not_in",
}),
])
]))
})
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_)
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(
data.id,
resolvedConditionType.resource_ids,