diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-19 01:45:44 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-19 01:45:44 +0000 |
commit | 85dc423f7090da0a52c73eb66faf22ddb20efff9 (patch) | |
tree | 9160f299afd8c80c038f08e1545be119f5e3f1e1 /spec/controllers/projects/issue_links_controller_spec.rb | |
parent | 15c2c8c66dbe422588e5411eee7e68f1fa440bb8 (diff) | |
download | gitlab-ce-85dc423f7090da0a52c73eb66faf22ddb20efff9.tar.gz |
Add latest changes from gitlab-org/gitlab@13-4-stable-ee
Diffstat (limited to 'spec/controllers/projects/issue_links_controller_spec.rb')
-rw-r--r-- | spec/controllers/projects/issue_links_controller_spec.rb | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/spec/controllers/projects/issue_links_controller_spec.rb b/spec/controllers/projects/issue_links_controller_spec.rb new file mode 100644 index 00000000000..bce109b7c79 --- /dev/null +++ b/spec/controllers/projects/issue_links_controller_spec.rb @@ -0,0 +1,71 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Projects::IssueLinksController do + let_it_be(:namespace) { create(:group, :public) } + let_it_be(:project) { create(:project, :public, namespace: namespace) } + let_it_be(:user) { create(:user) } + let_it_be(:issue1) { create(:issue, project: project) } + let_it_be(:issue2) { create(:issue, project: project) } + + describe 'GET #index' do + let_it_be(:issue_link) { create(:issue_link, source: issue1, target: issue2, link_type: 'relates_to') } + + def get_link(user, issue) + sign_in(user) + + params = { + namespace_id: issue.project.namespace.to_param, + project_id: issue.project, + issue_id: issue.iid + } + + get :index, params: params, as: :json + end + + before do + project.add_developer(user) + end + + it 'returns success response' do + get_link(user, issue1) + + expect(response).to have_gitlab_http_status(:ok) + + link = json_response.first + expect(link['id']).to eq(issue2.id) + expect(link['link_type']).to eq('relates_to') + end + end + + describe 'POST #create' do + def create_link(user, issue, target) + sign_in(user) + + post_params = { + namespace_id: issue.project.namespace.to_param, + project_id: issue.project, + issue_id: issue.iid, + issuable_references: [target.to_reference], + link_type: 'relates_to' + } + + post :create, params: post_params, as: :json + end + + before do + project.add_developer(user) + end + + it 'returns success response' do + create_link(user, issue1, issue2) + + expect(response).to have_gitlab_http_status(:ok) + + link = json_response['issuables'].first + expect(link['id']).to eq(issue2.id) + expect(link['link_type']).to eq('relates_to') + end + end +end |