trackMarketingEvent.spec.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import ConfigStore from 'sentry/stores/configStore';
  2. import trackMarketingEvent from 'getsentry/utils/trackMarketingEvent';
  3. jest.unmock('getsentry/utils/trackMarketingEvent');
  4. describe('trackMarketingEvent', function () {
  5. const eventName = 'my_event';
  6. beforeEach(function () {
  7. ConfigStore.set('enableAnalytics', true);
  8. window.ga = jest.fn();
  9. });
  10. afterEach(function () {
  11. window.ga.mockClear();
  12. });
  13. it('calls window.ga with event_label', function () {
  14. const data = {event_label: 'my_label'};
  15. trackMarketingEvent(eventName, data);
  16. expect(window.ga).toHaveBeenCalledWith('send', {
  17. hitType: 'event',
  18. eventCategory: 'User',
  19. eventAction: eventName,
  20. eventLabel: 'my_label',
  21. });
  22. });
  23. it('calls window.ga without event_label', function () {
  24. trackMarketingEvent(eventName);
  25. expect(window.ga).toHaveBeenCalledWith('send', {
  26. hitType: 'event',
  27. eventCategory: 'User',
  28. eventAction: eventName,
  29. eventLabel: undefined,
  30. });
  31. });
  32. it('enableAnalytics is false', function () {
  33. ConfigStore.set('enableAnalytics', false);
  34. trackMarketingEvent(eventName);
  35. expect(window.ga).not.toHaveBeenCalled();
  36. });
  37. });