cancelSubscriptionAction.spec.tsx 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import {OrganizationFixture} from 'sentry-fixture/organization';
  2. import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
  3. import {renderGlobalModal, screen, userEvent} from 'sentry-test/reactTestingLibrary';
  4. import {openAdminConfirmModal} from 'admin/components/adminConfirmationModal';
  5. import CancelSubscriptionAction from 'admin/components/cancelSubscriptionAction';
  6. describe('Cancel Subscription', function () {
  7. it('cancels immediately', async function () {
  8. const onConfirm = jest.fn();
  9. const organization = OrganizationFixture();
  10. const subscription = SubscriptionFixture({organization});
  11. openAdminConfirmModal({
  12. onConfirm,
  13. renderModalSpecificContent: deps => (
  14. <CancelSubscriptionAction subscription={subscription} {...deps} />
  15. ),
  16. });
  17. renderGlobalModal();
  18. await userEvent.click(screen.getByRole('radio', {name: 'Immediately'}));
  19. await userEvent.click(screen.getByRole('button', {name: 'Confirm'}));
  20. expect(onConfirm).toHaveBeenCalledWith({
  21. applyBalance: true,
  22. cancelAtPeriodEnd: false,
  23. });
  24. });
  25. it('shows contract period if set', function () {
  26. const organization = OrganizationFixture();
  27. const subscription = SubscriptionFixture({
  28. organization,
  29. plan: 'mm2_a_100k_ac',
  30. isFree: false,
  31. canCancel: true,
  32. canSelfServe: true,
  33. billingPeriodEnd: '2022-09-08',
  34. contractPeriodEnd: '2023-09-08',
  35. });
  36. openAdminConfirmModal({
  37. renderModalSpecificContent: deps => (
  38. <CancelSubscriptionAction subscription={subscription} {...deps} />
  39. ),
  40. });
  41. renderGlobalModal();
  42. expect(screen.getByLabelText('At period end (Sep 8, 2023)')).toBeInTheDocument();
  43. });
  44. });