Skip to content

Commit

Permalink
test: add test case for coupon without maximum use
Browse files Browse the repository at this point in the history
  • Loading branch information
blaggacao committed Sep 5, 2024
1 parent 1d82b36 commit 63ba59e
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions erpnext/accounts/doctype/coupon_code/test_coupon_code.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,3 +142,52 @@ def test_sales_order_with_coupon_code(self):

so.submit()
self.assertEqual(frappe.db.get_value("Coupon Code", "SAVE30", "used"), 1)

def test_coupon_without_max_use(self):
from erpnext.accounts.doctype.pricing_rule.test_pricing_rule import (
make_pricing_rule,
)
from erpnext.accounts.doctype.pricing_rule.utils import (
update_coupon_code_count,
validate_coupon_code,
)

pricing_rule = make_pricing_rule(
discount_percentage=20,
selling=1,
priority=1,
apply_multiple_pricing_rules=1,
title="_Test Pricing Rule 1",
)
pricing_rule.save()

coupon = frappe.get_doc(
{
"doctype": "Coupon Code",
"coupon_name": "_Test Coupon Without Max Use",
"coupon_code": "TESTUNLIMITED",
"pricing_rule": pricing_rule.name,
"valid_from": frappe.utils.nowdate(),
"maximum_use": 0,
"used": 0,
}
)
coupon.insert(ignore_permissions=True)

# Validate initial state
self.assertEqual(coupon.used, 0)
self.assertEqual(coupon.maximum_use, 0)

# Use coupon multiple times
for _ in range(5):
validate_coupon_code(coupon.coupon_code)
update_coupon_code_count(coupon.coupon_code, "used")
coupon.reload()

# Check that the coupon is still valid and usage count increased
self.assertEqual(coupon.used, 5)
validate_coupon_code(coupon.coupon_code) # This should not raise an error

# Clean up
coupon.delete()
pricing_rule.delete()

0 comments on commit 63ba59e

Please sign in to comment.