diff options
Diffstat (limited to 'spec/frontend/static_site_editor/services/submit_content_changes_spec.js')
-rw-r--r-- | spec/frontend/static_site_editor/services/submit_content_changes_spec.js | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/spec/frontend/static_site_editor/services/submit_content_changes_spec.js b/spec/frontend/static_site_editor/services/submit_content_changes_spec.js index 9a0bd88b57d..a1e9ff4ec4c 100644 --- a/spec/frontend/static_site_editor/services/submit_content_changes_spec.js +++ b/spec/frontend/static_site_editor/services/submit_content_changes_spec.js @@ -1,11 +1,13 @@ import Api from '~/api'; import { convertObjectPropsToSnakeCase } from '~/lib/utils/common_utils'; +import { mockTracking, unmockTracking } from 'helpers/tracking_helper'; import { DEFAULT_TARGET_BRANCH, SUBMIT_CHANGES_BRANCH_ERROR, SUBMIT_CHANGES_COMMIT_ERROR, SUBMIT_CHANGES_MERGE_REQUEST_ERROR, + TRACKING_ACTION_CREATE_COMMIT, } from '~/static_site_editor/constants'; import generateBranchName from '~/static_site_editor/services/generate_branch_name'; import submitContentChanges from '~/static_site_editor/services/submit_content_changes'; @@ -13,10 +15,12 @@ import submitContentChanges from '~/static_site_editor/services/submit_content_c import { username, projectId, + commitBranchResponse, commitMultipleResponse, createMergeRequestResponse, sourcePath, sourceContent as content, + trackingCategory, } from '../mock_data'; jest.mock('~/static_site_editor/services/generate_branch_name'); @@ -24,15 +28,26 @@ jest.mock('~/static_site_editor/services/generate_branch_name'); describe('submitContentChanges', () => { const mergeRequestTitle = `Update ${sourcePath} file`; const branch = 'branch-name'; + let trackingSpy; + let origPage; beforeEach(() => { - jest.spyOn(Api, 'createBranch').mockResolvedValue(); + jest.spyOn(Api, 'createBranch').mockResolvedValue({ data: commitBranchResponse }); jest.spyOn(Api, 'commitMultiple').mockResolvedValue({ data: commitMultipleResponse }); jest .spyOn(Api, 'createProjectMergeRequest') .mockResolvedValue({ data: createMergeRequestResponse }); generateBranchName.mockReturnValue(branch); + + origPage = document.body.dataset.page; + document.body.dataset.page = trackingCategory; + trackingSpy = mockTracking(document.body.dataset.page, undefined, jest.spyOn); + }); + + afterEach(() => { + document.body.dataset.page = origPage; + unmockTracking(); }); it('creates a branch named after the username and target branch', () => { @@ -47,7 +62,7 @@ describe('submitContentChanges', () => { it('notifies error when branch could not be created', () => { Api.createBranch.mockRejectedValueOnce(); - expect(submitContentChanges({ username, projectId })).rejects.toThrow( + return expect(submitContentChanges({ username, projectId })).rejects.toThrow( SUBMIT_CHANGES_BRANCH_ERROR, ); }); @@ -68,10 +83,19 @@ describe('submitContentChanges', () => { }); }); + it('sends the correct tracking event when committing content changes', () => { + return submitContentChanges({ username, projectId, sourcePath, content }).then(() => { + expect(trackingSpy).toHaveBeenCalledWith( + document.body.dataset.page, + TRACKING_ACTION_CREATE_COMMIT, + ); + }); + }); + it('notifies error when content could not be committed', () => { Api.commitMultiple.mockRejectedValueOnce(); - expect(submitContentChanges({ username, projectId })).rejects.toThrow( + return expect(submitContentChanges({ username, projectId })).rejects.toThrow( SUBMIT_CHANGES_COMMIT_ERROR, ); }); @@ -92,7 +116,7 @@ describe('submitContentChanges', () => { it('notifies error when merge request could not be created', () => { Api.createProjectMergeRequest.mockRejectedValueOnce(); - expect(submitContentChanges({ username, projectId })).rejects.toThrow( + return expect(submitContentChanges({ username, projectId })).rejects.toThrow( SUBMIT_CHANGES_MERGE_REQUEST_ERROR, ); }); |