Commit Graph
4 Commits
Author SHA1 Message Date
uzairarslan fc9ceaad09 Split update logic into one updater class per item type
ItemUpdater has the normal rules. Brie, backstage passes and Sulfuras
subclass it and override only what differs. GildedRose picks the right
one through updater_for. Tests and approved output unchanged.
2026-09-24 03:21:18 +05:00
uzairarslan 19011580f5 Extract constants and return early for Sulfuras
No behaviour change. Named the item strings and the 0/50 bounds, moved
the body into _update_item and return early for Sulfuras so the rest of
the ladder only deals with items that actually change.
2026-09-24 03:21:18 +05:00
uzairarslan 3809be0b03 Add unit tests for the existing rules
One test per rule from the requirements, replacing test_foo. Tier
boundaries are checked on both sides, e.g. backstage passes at 11 and 10,
so an off-by-one can't slip through. All pass against the original code
with 100% branch coverage.
2026-09-24 03:21:18 +05:00
uzairarslan 5f113a1d2f Approve current output and fix the approval test reporter
Approved the 30 day fixture output as-is so there is a baseline before
refactoring. Conjured Mana Cake is still wrong here, that changes later.

The approval test was also crashing with "no reporter configuration"
instead of showing a diff. pytest-approvaltests 0.2.4 doesn't work with
approvaltests 19, so pass PythonNativeReporter directly.
2026-09-16 13:54:27 -04:00