From 1a0d6dbdc2ac3047f4953a359ef27ba6e26074ae Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 1 Apr 2020 12:08:00 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- spec/frontend/api_spec.js | 61 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'spec/frontend/api_spec.js') diff --git a/spec/frontend/api_spec.js b/spec/frontend/api_spec.js index c0126b2330d..179aa3a49d7 100644 --- a/spec/frontend/api_spec.js +++ b/spec/frontend/api_spec.js @@ -570,4 +570,65 @@ describe('Api', () => { .catch(done.fail); }); }); + + describe('createReleaseLink', () => { + const dummyProjectPath = 'gitlab-org/gitlab'; + const dummyReleaseTag = 'v1.3'; + const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/projects/${encodeURIComponent( + dummyProjectPath, + )}/releases/${dummyReleaseTag}/assets/links`; + const expectedLink = { + url: 'https://example.com', + name: 'An example link', + }; + + describe('when the Release is successfully created', () => { + it('resolves the Promise', () => { + mock.onPost(expectedUrl, expectedLink).replyOnce(201); + + return Api.createReleaseLink(dummyProjectPath, dummyReleaseTag, expectedLink).then(() => { + expect(mock.history.post).toHaveLength(1); + }); + }); + }); + + describe('when an error occurs while creating the Release', () => { + it('rejects the Promise', () => { + mock.onPost(expectedUrl, expectedLink).replyOnce(500); + + return Api.createReleaseLink(dummyProjectPath, dummyReleaseTag, expectedLink).catch(() => { + expect(mock.history.post).toHaveLength(1); + }); + }); + }); + }); + + describe('deleteReleaseLink', () => { + const dummyProjectPath = 'gitlab-org/gitlab'; + const dummyReleaseTag = 'v1.3'; + const dummyLinkId = '4'; + const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/projects/${encodeURIComponent( + dummyProjectPath, + )}/releases/${dummyReleaseTag}/assets/links/${dummyLinkId}`; + + describe('when the Release is successfully deleted', () => { + it('resolves the Promise', () => { + mock.onDelete(expectedUrl).replyOnce(200); + + return Api.deleteReleaseLink(dummyProjectPath, dummyReleaseTag, dummyLinkId).then(() => { + expect(mock.history.delete).toHaveLength(1); + }); + }); + }); + + describe('when an error occurs while deleting the Release', () => { + it('rejects the Promise', () => { + mock.onDelete(expectedUrl).replyOnce(500); + + return Api.deleteReleaseLink(dummyProjectPath, dummyReleaseTag, dummyLinkId).catch(() => { + expect(mock.history.delete).toHaveLength(1); + }); + }); + }); + }); }); -- cgit v1.2.3