From 0957a4fd856ebe17c0046473e9447e5107654c70 Mon Sep 17 00:00:00 2001 From: Stephon Brown Date: Wed, 4 Feb 2026 18:36:59 -0500 Subject: [PATCH] feat(billing): add pre-condition checks for premium org upgrade dialog --- ...emium-org-upgrade-dialog.component.spec.ts | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/apps/web/src/app/billing/individual/upgrade/premium-org-upgrade-dialog/premium-org-upgrade-dialog.component.spec.ts b/apps/web/src/app/billing/individual/upgrade/premium-org-upgrade-dialog/premium-org-upgrade-dialog.component.spec.ts index f0ada3b632b..2e289d25181 100644 --- a/apps/web/src/app/billing/individual/upgrade/premium-org-upgrade-dialog/premium-org-upgrade-dialog.component.spec.ts +++ b/apps/web/src/app/billing/individual/upgrade/premium-org-upgrade-dialog/premium-org-upgrade-dialog.component.spec.ts @@ -396,6 +396,35 @@ describe("PremiumOrgUpgradeDialogComponent", () => { }); }); + describe("Premium and Feature Flag Requirements", () => { + it("should close dialog immediately if user does not have premium", async () => { + mockBillingAccountProfileStateService.hasPremiumPersonally$.mockReturnValue(of(false)); + mockConfigService.getFeatureFlag$.mockReturnValue(of(true)); + + await createComponentWithDialogData(defaultDialogData, true); + + expect(mockDialogRef.close).toHaveBeenCalledWith({ status: "closed" }); + }); + + it("should close dialog immediately if feature flag is not enabled", async () => { + mockBillingAccountProfileStateService.hasPremiumPersonally$.mockReturnValue(of(true)); + mockConfigService.getFeatureFlag$.mockReturnValue(of(false)); + + await createComponentWithDialogData(defaultDialogData, true); + + expect(mockDialogRef.close).toHaveBeenCalledWith({ status: "closed" }); + }); + + it("should close dialog immediately if user does not have premium and feature flag is not enabled", async () => { + mockBillingAccountProfileStateService.hasPremiumPersonally$.mockReturnValue(of(false)); + mockConfigService.getFeatureFlag$.mockReturnValue(of(false)); + + await createComponentWithDialogData(defaultDialogData, true); + + expect(mockDialogRef.close).toHaveBeenCalledWith({ status: "closed" }); + }); + }); + describe("Child Component Display Logic", () => { describe("Plan Selection Step", () => { it("should display app-premium-org-upgrade on plan selection step", async () => {