From 9cc3e1f9d7b5275b7669d980546c9a5547de3a38 Mon Sep 17 00:00:00 2001 From: brettmortensen <11483419+brettmortensen@users.noreply.github.com> Date: Tue, 30 Oct 2018 19:36:52 -0600 Subject: [PATCH 1/3] Add 'List merge requests that will close issue on merge' endpoint Adds missing 'List merge requests that will close issue on merge' endpoint and corresponding spec. --- lib/gitlab/client/issues.rb | 11 +++++++++++ spec/gitlab/client/issues_spec.rb | 16 ++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/lib/gitlab/client/issues.rb b/lib/gitlab/client/issues.rb index 3ff3831d2..87b3e2f25 100644 --- a/lib/gitlab/client/issues.rb +++ b/lib/gitlab/client/issues.rb @@ -205,5 +205,16 @@ def reset_time_spent_on_issue(project, id) def time_stats_for_issue(project, id) get("/projects/#{url_encode project}/issues/#{id}/time_stats") end + + # List merge requests that will close issue on merge + # + # @example + # Gitlab.merge_requests_closing_issue_on_merge(3, 42) + # + # @param [Integer, String] project The ID or name of a project. + # @param [Integer] id The ID of an issue. + def merge_requests_closing_issue_on_merge(project, id) + get("/projects/#{url_encode project}/issues/#{id}/closed_by") + end end end diff --git a/spec/gitlab/client/issues_spec.rb b/spec/gitlab/client/issues_spec.rb index e4c011920..443ad410e 100644 --- a/spec/gitlab/client/issues_spec.rb +++ b/spec/gitlab/client/issues_spec.rb @@ -284,4 +284,20 @@ expect(@issue.assignee.name).to eq('Jack Smith') end end + + describe '.merge_requests_closing_issue_on_merge' do + before do + stub_get('/projects/3/issues/33/closed_by', 'issue') + @issue = Gitlab.merge_requests_closing_issue_on_merge(3, 33) + end + + it 'gets the correct resource' do + expect(a_get('/projects/3/issues/33/closed_by')).to have_been_made + end + + it 'returns information about the issue' do + expect(@issue.project_id).to eq(3) + expect(@issue.assignee.name).to eq('Jack Smith') + end + end end From db63b7587885a29eaa6019cd2a6267f0e2c6310f Mon Sep 17 00:00:00 2001 From: brettmortensen <11483419+brettmortensen@users.noreply.github.com> Date: Tue, 30 Oct 2018 21:23:38 -0600 Subject: [PATCH 2/3] Update merge_requests_closing_issue_on_merge spec message Provide detailed endpoint response spec message. --- spec/gitlab/client/issues_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/gitlab/client/issues_spec.rb b/spec/gitlab/client/issues_spec.rb index 443ad410e..0c033c563 100644 --- a/spec/gitlab/client/issues_spec.rb +++ b/spec/gitlab/client/issues_spec.rb @@ -295,7 +295,7 @@ expect(a_get('/projects/3/issues/33/closed_by')).to have_been_made end - it 'returns information about the issue' do + it 'returns list of merge requests closing issue on merge' do expect(@issue.project_id).to eq(3) expect(@issue.assignee.name).to eq('Jack Smith') end From 5f80bd73662d6941bc5d751f901b9e7315fbf8fb Mon Sep 17 00:00:00 2001 From: brettmortensen <11483419+brettmortensen@users.noreply.github.com> Date: Tue, 30 Oct 2018 22:18:44 -0600 Subject: [PATCH 3/3] Refactor spec to follow existing pattern --- spec/fixtures/merge_requests_closing_issue_on_merge.json | 1 + spec/gitlab/client/issues_spec.rb | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 spec/fixtures/merge_requests_closing_issue_on_merge.json diff --git a/spec/fixtures/merge_requests_closing_issue_on_merge.json b/spec/fixtures/merge_requests_closing_issue_on_merge.json new file mode 100644 index 000000000..0217ab369 --- /dev/null +++ b/spec/fixtures/merge_requests_closing_issue_on_merge.json @@ -0,0 +1 @@ +[{"id":1,"target_branch":"master","source_branch":"api","project_id":3,"title":"New feature","closed":false,"merged":false,"author":{"id":2,"email":"john2@example.com","name":"John Smith 2","blocked":false,"created_at":"2012-10-19T05:56:05Z"},"assignee":{"id":2,"email":"jack@example.com","name":"Jack Smith 2","blocked":false,"created_at":"2012-10-19T05:56:14Z"}},{"id":2,"target_branch":"master","source_branch":"api","project_id":2,"title":"New feature 2","closed":false,"merged":false,"author":{"id":2,"email":"john@example.com","name":"John Smith","blocked":false,"created_at":"2012-10-19T05:56:05Z"},"assignee":{"id":4,"email":"jack@example.com","name":"Jack Smith","blocked":false,"created_at":"2012-10-19T05:56:14Z"}}] diff --git a/spec/gitlab/client/issues_spec.rb b/spec/gitlab/client/issues_spec.rb index 0c033c563..e03c832a3 100644 --- a/spec/gitlab/client/issues_spec.rb +++ b/spec/gitlab/client/issues_spec.rb @@ -287,8 +287,8 @@ describe '.merge_requests_closing_issue_on_merge' do before do - stub_get('/projects/3/issues/33/closed_by', 'issue') - @issue = Gitlab.merge_requests_closing_issue_on_merge(3, 33) + stub_get('/projects/3/issues/33/closed_by', 'merge_requests_closing_issue_on_merge') + @merge_requests = Gitlab.merge_requests_closing_issue_on_merge(3, 33) end it 'gets the correct resource' do @@ -296,8 +296,8 @@ end it 'returns list of merge requests closing issue on merge' do - expect(@issue.project_id).to eq(3) - expect(@issue.assignee.name).to eq('Jack Smith') + expect(@merge_requests.first.title).to eq('New feature') + expect(@merge_requests.size).to eq(2) end end end