memberListHeader.spec.tsx 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import {MemberFixture} from 'sentry-fixture/member';
  2. import {OrganizationFixture} from 'sentry-fixture/organization';
  3. import {BillingConfigFixture} from 'getsentry-test/fixtures/billingConfig';
  4. import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
  5. import {act, render, screen} from 'sentry-test/reactTestingLibrary';
  6. import MemberListHeader from 'getsentry/hooks/memberListHeader';
  7. import SubscriptionStore from 'getsentry/stores/subscriptionStore';
  8. import {PlanTier} from 'getsentry/types';
  9. describe('MemberListHeader', function () {
  10. const organization = OrganizationFixture();
  11. const disabledMember = MemberFixture({
  12. flags: {
  13. 'idp:provisioned': false,
  14. 'idp:role-restricted': false,
  15. 'member-limit:restricted': true,
  16. 'sso:invalid': false,
  17. 'sso:linked': false,
  18. 'partnership:restricted': false,
  19. },
  20. });
  21. const enabledMember = MemberFixture({});
  22. const sub = SubscriptionFixture({
  23. organization,
  24. canTrial: false,
  25. isTrial: false,
  26. plan: 'am1_f',
  27. });
  28. SubscriptionStore.set(organization.slug, sub);
  29. beforeEach(() => {
  30. MockApiClient.addMockResponse({
  31. url: `/customers/${organization.slug}/billing-config/`,
  32. query: {tier: 'am2'},
  33. body: BillingConfigFixture(PlanTier.AM2),
  34. });
  35. });
  36. it('show upgrade if disabled member', async function () {
  37. const members = [disabledMember, enabledMember];
  38. render(<MemberListHeader organization={organization} members={members} />);
  39. expect(
  40. await screen.findByText('Multiple members requires Team Plan or above')
  41. ).toBeInTheDocument();
  42. expect(
  43. screen.getByTestId('member-settings-table-header-upsell-button')
  44. ).toBeInTheDocument();
  45. });
  46. it('do not show upgrade if no disabled member', async function () {
  47. const members = [enabledMember];
  48. render(<MemberListHeader organization={organization} members={members} />);
  49. await act(tick);
  50. expect(
  51. screen.queryByTestId('member-settings-table-header-upsell-button')
  52. ).not.toBeInTheDocument();
  53. });
  54. });