summaryrefslogtreecommitdiff
path: root/spec/frontend/projects/upload_file_experiment_tracking_spec.js
blob: 6817529e07ea0a62c356b875b2e81652488d1b13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import ExperimentTracking from '~/experimentation/experiment_tracking';
import { trackFileUploadEvent } from '~/projects/upload_file_experiment_tracking';

jest.mock('~/experimentation/experiment_tracking');

const eventName = 'click_upload_modal_form_submit';
const fixture = `<a class='js-upload-file-experiment-trigger'></a><div class='project-home-panel empty-project'></div>`;

beforeEach(() => {
  document.body.innerHTML = fixture;
});

afterEach(() => {
  document.body.innerHTML = '';
});

describe('trackFileUploadEvent', () => {
  it('initializes ExperimentTracking with the correct tracking event', () => {
    trackFileUploadEvent(eventName);

    expect(ExperimentTracking.prototype.event).toHaveBeenCalledWith(eventName);
  });

  it('calls ExperimentTracking with the correct arguments', () => {
    trackFileUploadEvent(eventName);

    expect(ExperimentTracking).toHaveBeenCalledWith('empty_repo_upload', {
      label: 'blob-upload-modal',
      property: 'empty',
    });
  });

  it('calls ExperimentTracking with the correct arguments when the project is not empty', () => {
    document.querySelector('.empty-project').remove();

    trackFileUploadEvent(eventName);

    expect(ExperimentTracking).toHaveBeenCalledWith('empty_repo_upload', {
      label: 'blob-upload-modal',
      property: 'nonempty',
    });
  });
});