import {OrganizationFixture} from 'sentry-fixture/organization'; import {BillingConfigFixture} from 'getsentry-test/fixtures/billingConfig'; import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription'; import {render, screen} from 'sentry-test/reactTestingLibrary'; import PageUpsellOverlay from 'getsentry/components/features/pageUpsellOverlay'; import SubscriptionStore from 'getsentry/stores/subscriptionStore'; import {PlanTier} from 'getsentry/types'; describe('PageUpsellOverlay', function () { let wrapper: any; afterEach(function () { if (wrapper) { wrapper.unmount(); } wrapper = null; }); const org = OrganizationFixture({access: ['org:billing']}); MockApiClient.addMockResponse({ url: `/customers/${org.slug}/billing-config/?tier=am2`, body: BillingConfigFixture(PlanTier.AM2), }); it('renders customSecondaryCTA', function () { const subscription = SubscriptionFixture({ organization: org, canSelfServe: true, canTrial: false, }); SubscriptionStore.set(org.slug, subscription); wrapper = render( ); expect(screen.queryByText('Learn More')).not.toBeInTheDocument(); expect(screen.getByText('My Text')).toBeInTheDocument(); expect(screen.getByText('Upgrade Plan')).toBeInTheDocument(); }); it('renders learn more', function () { const subscription = SubscriptionFixture({ organization: org, canSelfServe: true, canTrial: false, }); SubscriptionStore.set(org.slug, subscription); wrapper = render( ); expect(screen.getByText('Learn More')).toBeInTheDocument(); expect(screen.getByText('Upgrade Plan')).toBeInTheDocument(); }); it('does not render CTA for non-self serve', function () { const subscription = SubscriptionFixture({ organization: org, canSelfServe: false, canTrial: false, }); SubscriptionStore.set(org.slug, subscription); wrapper = render( ); expect(screen.getByText('Learn More')).toBeInTheDocument(); expect(screen.queryByText('Upgrade Plan')).not.toBeInTheDocument(); }); });