[PM-38575] feat: hide payment modal for sales-assisted trials - #22805
Conversation
Sales-assisted trial organizations are invoiced through the customer's sales representative, so the self-serve TrialPaymentDialogComponent does not apply to them. Suppress it by filtering on the isSalesAssisted flag from PM-38574. - Guard is placed in OrganizationWarningsService rather than at the call sites, so both admin-console callers (members.component and collections/vault.component) are covered by the single change. - The trial countdown banner is intentionally untouched: getFreeTrialWarning$ still returns the warning for sales-assisted trials, so the banner keeps showing. Banner copy is handled separately in PM-38885. - Behavior is a no-op until server#8272 ships, since isSalesAssisted defaults to false when the server omits it.
🤖 Bitwarden Claude Code ReviewOverall Assessment: APPROVE Reviewed the No findings met the confidence threshold for posting. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## billing/pm-38574/set-trial-initiation-path-for-sales-assisted-trials #22805 +/- ##
========================================================================================================
- Coverage 55.05% 55.05% -0.01%
========================================================================================================
Files 4346 4346
Lines 138567 138567
Branches 21970 21970
========================================================================================================
- Hits 76292 76288 -4
- Misses 56723 56727 +4
Partials 5552 5552 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…sisted-trials' into billing/pm-38575/hide-payment-modal-for-sales-assisted-trials
🎟️ Tracking
PM-38575
📔 Objective
Suppress
TrialPaymentDialogComponentfor sales-assisted trial organizations — they're invoiced through their Bitwarden sales representative, so the self-serve card-entry modal doesn't apply. The trial countdown banner is intentionally unchanged (getFreeTrialWarning$untouched); banner copy is handled separately in PM-38885.A few notes for review:
showSubscribeBeforeFreeTrialEndsDialog$rather thangetWarning$because the banner must keep receiving the free-trial warning — only the modal path filters onisSalesAssisted.freeTrialwarning is omitted from the warnings response once a payment method exists, so the guard doesn't re-check it.isSalesAssistedis alwaysfalseand this change is a no-op.mainwhen it merges.