- Notifications
You must be signed in to change notification settings - Fork1.5k
[PM-28100] families 2019 email#6645
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:main
Are you sure you want to change the base?
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Uh oh!
There was an error while loading.Please reload this page.
github-actionsbot commentedNov 25, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Great job! No new security vulnerabilities introduced in this pull request |
claudebot commentedNov 25, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Claude finished@kdenney's task ——View job Code Review CompleteSummary of Changes Since Last ReviewThe PR has been updated to address the critical issue identified in the previous review. The author confirmed they would throw exceptions instead of logging warnings for coupon validation failures. This change has been implemented correctly. Status of Previous FindingsFinding 1: Critical coupon validation timing issue ✅FIXED
Finding 2: Missing test coverage for coupon validation
New Issues FoundFinding 1: Test coverage for exception paths is incomplete The implementation now throws
However, the test suite does not verify these exception-throwing behaviors. Consider adding: Suggested test cases[Fact]publicasyncTaskHandleAsync_WhenMilestone3Enabled_AndCouponNotFound_ThrowsException(){// Arrange: Setup with null coupon_stripeFacade.GetCoupon(CouponIDs.Milestone3SubscriptionDiscount).Returns((Coupon)null);// Act & AssertawaitAssert.ThrowsAsync<InvalidOperationException>(()=>_sut.HandleAsync(parsedEvent));}[Fact]publicasyncTaskHandleAsync_WhenMilestone3Enabled_AndCouponPercentOffNull_ThrowsException(){// Arrange: Setup with coupon.PercentOff = nullvarcoupon=newCoupon{PercentOff=null,Id=CouponIDs.Milestone3SubscriptionDiscount};_stripeFacade.GetCoupon(CouponIDs.Milestone3SubscriptionDiscount).Returns(coupon);// Act & AssertawaitAssert.ThrowsAsync<InvalidOperationException>(()=>_sut.HandleAsync(parsedEvent));} Severity: Finding 2: ADR 0024 compliance for nullable reference types
Severity: ♻️ Technical debt - Pre-existing issue, not introduced by this PR. Consider tracking for future migration. Good Practices Observed
Action Items
ConclusionThe critical issue from the previous review has been properly resolved. The implementation now validates the coupon before making any state changes and throws exceptions for invalid cases, which is the correct approach for this scenario. The PR is ready for merge from a code review perspective. Test coverage for the exception paths would be nice to have but is not blocking. |
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
codecovbot commentedNov 25, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@## main #6645 +/- ##==========================================+ Coverage 53.27% 53.28% +0.01%========================================== Files 1906 1907 +1 Lines 84973 85010 +37 Branches 7639 7642 +3 ==========================================+ Hits 45268 45298 +30- Misses 37952 37957 +5- Partials 1753 1755 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
# Conflicts:#src/Billing/Services/Implementations/UpcomingInvoiceHandler.cs#test/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.




🎟️ Tracking
https://bitwarden.atlassian.net/browse/PM-28100
📔 Objective
Families 2019 email for milestone 3.
⏰ Reminders before review
🦮 Reviewer guidelines
:+1:) or similar for great changes:memo:) or ℹ️ (:information_source:) for notes or general info:question:) for questions:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion:art:) for suggestions / improvements:x:) or:warning:) for more significant problems or concerns needing attention:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt:pick:) for minor or nitpick changes