subscriptionContext.spec.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import {OrganizationFixture} from 'sentry-fixture/organization';
  2. import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
  3. import {render, screen} from 'sentry-test/reactTestingLibrary';
  4. import SubscriptionContext from 'getsentry/components/subscriptionContext';
  5. import SubscriptionStore from 'getsentry/stores/subscriptionStore';
  6. describe('SubscriptionContext', function () {
  7. beforeEach(() => {
  8. const organization = OrganizationFixture();
  9. MockApiClient.clearMockResponses();
  10. MockApiClient.addMockResponse({
  11. url: `/organizations/${organization.slug}/members/`,
  12. method: 'GET',
  13. body: [],
  14. });
  15. });
  16. it('render children if billing user', function () {
  17. const organization = OrganizationFixture({access: ['org:billing']});
  18. const subscription = SubscriptionFixture({organization});
  19. SubscriptionStore.set(organization.slug, subscription);
  20. render(<SubscriptionContext>Hi</SubscriptionContext>, {organization});
  21. expect(screen.getByText('Hi')).toBeInTheDocument();
  22. });
  23. it('renders contact billing members if not billing user', function () {
  24. const organization = OrganizationFixture({access: []});
  25. const subscription = SubscriptionFixture({organization});
  26. SubscriptionStore.set(organization.slug, subscription);
  27. render(<SubscriptionContext>Hi</SubscriptionContext>, {organization});
  28. expect(screen.queryByText('Hi')).not.toBeInTheDocument();
  29. expect(screen.getByText('Insufficient Access')).toBeInTheDocument();
  30. });
  31. });