diff options
Diffstat (limited to 'spec/frontend/projects/upload_file_experiment_tracking_spec.js')
-rw-r--r-- | spec/frontend/projects/upload_file_experiment_tracking_spec.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/spec/frontend/projects/upload_file_experiment_tracking_spec.js b/spec/frontend/projects/upload_file_experiment_tracking_spec.js new file mode 100644 index 00000000000..6817529e07e --- /dev/null +++ b/spec/frontend/projects/upload_file_experiment_tracking_spec.js @@ -0,0 +1,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', + }); + }); +}); |