-
Notifications
You must be signed in to change notification settings - Fork 1.5k
[PM-26044] Update Offboarding Survey for User and Organization #17472
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[PM-26044] Update Offboarding Survey for User and Organization #17472
Conversation
|
Claude finished @sbrown-livefront's task —— View job Code Review Complete
SummaryThis PR successfully implements dynamic offboarding survey reasons based on subscription type. The code is well-structured and previous review concerns have been properly addressed. However, test coverage remains critically low at 22.22% for the new logic. FindingsFinding 1: Missing test coverage for core business logic (apps/web/src/app/billing/shared/offboarding-survey.component.ts:131-149) The Recommended test casesdescribe('getSwitchingReason', () => {
it('should return switchToFreePlan text for User type', () => {
// Test user cancellation
});
it('should return switchToFreeOrg text for Families plans', () => {
// Test FamiliesAnnually, FamiliesAnnually2019, FamiliesAnnually2025
});
it('should return tooExpensive text for non-Family organization plans', () => {
// Test Teams, Enterprise, etc.
});
it('should always use too_expensive as the Stripe API value', () => {
// Verify Stripe API constraint is maintained
});
});Positive Observations👍 OnPush change detection safety issue properly addressed using optional chaining in the template (line 25) 👍 Correctly respects Stripe API 👍 Clean separation of concerns with 👍 Proper handling of all three Families plan enum values |
|
Great job! No new security vulnerabilities introduced in this pull request |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #17472 +/- ##
=======================================
Coverage 41.25% 41.25%
=======================================
Files 3546 3546
Lines 102040 102047 +7
Branches 15308 15310 +2
=======================================
+ Hits 42099 42104 +5
- Misses 58177 58179 +2
Partials 1764 1764 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
apps/web/src/app/billing/shared/offboarding-survey.component.ts
Outdated
Show resolved
Hide resolved
kdenney
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
amorask-bitwarden
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the quick fix!
bc177af

🎟️ Tracking
https://bitwarden.atlassian.net/browse/PM-26044
https://bitwarden.atlassian.net/browse/PM-26589
📔 Objective
The offboarding survey component is updated to dynamically include a "switching" reason based on whether the user is canceling an organization or personal plan. This involves modifying the reasons array to include either "switchToFreeOrg" or "switchToFreePlan" options. This change retains the "tooExpensive" message for organizations other than Families.
Changes
dialogParams.type("Organization" or personal).tooExpensivetranslation that is only used in this component📸 Screenshots
Families Cancellation
Screen.Recording.2025-11-18.at.3.23.15.PM.mov
Teams Cancellation
Screen.Recording.2025-11-20.at.9.52.39.AM.mov
User Cancellation
Screen.Recording.2025-11-18.at.3.22.49.PM.mov
⏰ 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