October 2025 Updates / Tests Coverage #113
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #95.
Summary
Add comprehensive unit tests for
VoucherServiceand fix a production bug discovered during testing.Changes
Tests Added (20 tests, 327 assertions)
Complete test coverage for all public static methods in
VoucherService:findUniqueShortCodeForVoucher()(4 tests)calculateVoucherAmountRedeemed()(4 tests)calculateVoucherAmountRemaining()(5 tests)updateVoucherAmountRemaining()(3 tests)collateVoucherAggregates()(4 tests)Bug Fix
Fixed critical bug in
VoucherService::collateVoucherAggregates()(line 93)last_redemption_atwas being calculated without filtering byvoucher_idVoucherRedemption::where('voucher_id')->max('created_at')VoucherRedemption::where('voucher_id', $voucher->id)->max('created_at')Documentation
@seeannotations linking service methods to their testsTesting Notes
withoutEvents()for over-redemption edge case tests to isolate calculation logic from event-driven validationRefreshDatabasetrait