1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import * as Amplitude from '@amplitude/analytics-browser';
- import {ConfigFixture} from 'sentry-fixture/config';
- import {UserFixture} from 'sentry-fixture/user';
- import ConfigStore from 'sentry/stores/configStore';
- import trackAmplitudeEvent from 'getsentry/utils/trackAmplitudeEvent';
- jest.unmock('getsentry/utils/trackAmplitudeEvent');
- describe('trackAmplitudeEvent', function () {
- const user = UserFixture({});
- const data = {foo: 'bar'};
- const eventName = 'My Event';
- const orgId = 123;
- beforeEach(function () {
- ConfigStore.loadInitialData(
- ConfigFixture({
- enableAnalytics: true,
- user,
- })
- );
- });
- afterEach(function () {
- (Amplitude.setUserId as jest.Mock).mockClear();
- (Amplitude.track as jest.Mock).mockClear();
- (Amplitude.setGroup as jest.Mock).mockClear();
- });
- it('organization id is a number calls track', function () {
- trackAmplitudeEvent(eventName, orgId, data);
- expect(Amplitude.setUserId).toHaveBeenCalledWith(user.id);
- expect(Amplitude.track).toHaveBeenCalledWith(eventName, data, undefined);
- expect(Amplitude.setGroup).toHaveBeenCalledWith('organization_id', orgId.toString());
- });
- it('two track calls only call setGroup once', function () {
- trackAmplitudeEvent(eventName, 454, data);
- trackAmplitudeEvent(eventName, 454, data);
- expect(Amplitude.track).toHaveBeenCalledTimes(2);
- expect(Amplitude.setGroup).toHaveBeenCalledTimes(1);
- });
- it('organization id is null calls track', function () {
- trackAmplitudeEvent(eventName, null, data);
- expect(Amplitude.track).toHaveBeenCalledWith(eventName, data, undefined);
- expect(Amplitude.setGroup).toHaveBeenCalledWith('organization_id', '');
- });
- it('organization id is undefined does not call track', function () {
- trackAmplitudeEvent(eventName, undefined, data);
- expect(Amplitude.track).not.toHaveBeenCalled();
- });
- it('enableAnalytics is false', function () {
- ConfigStore.set('enableAnalytics', false);
- trackAmplitudeEvent(eventName, orgId, data);
- expect(Amplitude.track).not.toHaveBeenCalled();
- });
- });
|