Files
vmall/apps/api
james d7fddf53ab fix(api): record an elapsed group as expired when its opener cancels
Cancelling the opening unpaid order ran the expiry sweep only implicitly, so a
group whose lifetime had already ended was relabelled cancelled instead of
expired. Both conditions hold in that case; sweep first so the lifetime ending
wins. The behaviour was invisible to shoppers (neither state is joinable) but it
matters to a future refund flow reading expired paid groups.

Add an integration test that reproduces the precedence.
2026-09-18 13:44:02 +00:00
..