Welcome to mirror list, hosted at ThFree Co, Russian Federation.

upload_file_experiment_spec.js « projects « frontend « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 57abce779a53caa0a7551cd26bcc5723b106dfa7 (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
44
45
46
import ExperimentTracking from '~/experiment_tracking';
import * as UploadFileExperiment from '~/projects/upload_file_experiment';

const mockExperimentTrackingEvent = jest.fn();
jest.mock('~/experiment_tracking', () =>
  jest.fn().mockImplementation(() => ({
    event: mockExperimentTrackingEvent,
  })),
);

const fixture = `<a class='js-upload-file-experiment-trigger' data-toggle='modal' data-target='#modal-upload-blob'></a><div id='modal-upload-blob'></div>`;
const findModal = () => document.querySelector('[aria-modal="true"]');
const findTrigger = () => document.querySelector('.js-upload-file-experiment-trigger');

beforeEach(() => {
  ExperimentTracking.mockClear();
  mockExperimentTrackingEvent.mockClear();

  document.body.innerHTML = fixture;
});

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

describe('trackUploadFileFormSubmitted', () => {
  it('initializes ExperimentTracking with the correct arguments and calls the tracking event with correct arguments', () => {
    UploadFileExperiment.trackUploadFileFormSubmitted();

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

describe('initUploadFileTrigger', () => {
  it('calls modal and tracks event', () => {
    UploadFileExperiment.initUploadFileTrigger();

    expect(findModal()).not.toExist();
    findTrigger().click();
    expect(findModal()).toExist();
    expect(mockExperimentTrackingEvent).toHaveBeenCalledWith('click_upload_modal_trigger');
  });
});