subscriptionStore.spec.tsx 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import {OrganizationFixture} from 'sentry-fixture/organization';
  2. import {SubscriptionFixture} from 'getsentry-test/fixtures/subscription';
  3. import SubscriptionStore from './subscriptionStore';
  4. describe('SubscriptionStore', () => {
  5. const organization = OrganizationFixture();
  6. const subscription = SubscriptionFixture({organization});
  7. beforeEach(() => {
  8. SubscriptionStore.init();
  9. });
  10. it('should set data', () => {
  11. SubscriptionStore.set(organization.slug, subscription);
  12. expect(SubscriptionStore.getState()[organization.slug]).toEqual({
  13. ...subscription,
  14. setAt: expect.any(Number),
  15. });
  16. });
  17. it('should load data', async () => {
  18. MockApiClient.addMockResponse({
  19. url: `/subscriptions/${organization.slug}/`,
  20. body: subscription,
  21. });
  22. await SubscriptionStore.loadData(organization.slug);
  23. expect(SubscriptionStore.getState()[organization.slug]).toEqual({
  24. ...subscription,
  25. setAt: expect.any(Number),
  26. });
  27. });
  28. it('should mark trial started and clear trial', async () => {
  29. MockApiClient.addMockResponse({
  30. url: `/subscriptions/${organization.slug}/`,
  31. body: subscription,
  32. });
  33. const callback = jest.fn();
  34. await SubscriptionStore.loadData(organization.slug, callback, {
  35. markStartedTrial: true,
  36. });
  37. expect(SubscriptionStore.getState()[organization.slug]!.isTrialStarted).toBe(true);
  38. expect(callback).toHaveBeenCalledWith(
  39. SubscriptionStore.getState()[organization.slug]
  40. );
  41. SubscriptionStore.clearStartedTrial(organization.slug);
  42. expect(
  43. SubscriptionStore.getState()[organization.slug]!.isTrialStarted
  44. ).toBeUndefined();
  45. });
  46. it('should return stable reference from getState', () => {
  47. SubscriptionStore.set(organization.slug, subscription);
  48. const state = SubscriptionStore.getState();
  49. expect(Object.is(state, SubscriptionStore.getState())).toBe(true);
  50. });
  51. });