import {OrganizationFixture} from 'sentry-fixture/organization'; import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription'; import {renderGlobalModal, screen, userEvent} from 'sentry-test/reactTestingLibrary'; import {openAdminConfirmModal} from 'admin/components/adminConfirmationModal'; import CancelSubscriptionAction from 'admin/components/cancelSubscriptionAction'; describe('Cancel Subscription', function () { it('cancels immediately', async function () { const onConfirm = jest.fn(); const organization = OrganizationFixture(); const subscription = SubscriptionFixture({organization}); openAdminConfirmModal({ onConfirm, renderModalSpecificContent: deps => ( ), }); renderGlobalModal(); await userEvent.click(screen.getByRole('radio', {name: 'Immediately'})); await userEvent.click(screen.getByRole('button', {name: 'Confirm'})); expect(onConfirm).toHaveBeenCalledWith({ applyBalance: true, cancelAtPeriodEnd: false, }); }); it('shows contract period if set', function () { const organization = OrganizationFixture(); const subscription = SubscriptionFixture({ organization, plan: 'mm2_a_100k_ac', isFree: false, canCancel: true, canSelfServe: true, billingPeriodEnd: '2022-09-08', contractPeriodEnd: '2023-09-08', }); openAdminConfirmModal({ renderModalSpecificContent: deps => ( ), }); renderGlobalModal(); expect(screen.getByLabelText('At period end (Sep 8, 2023)')).toBeInTheDocument(); }); });