Extract EE specific files/lines for Discussion spec/requests/api
We have the following files containing EE specific code. We should move them to ee/
spec/requests/api/discussions_spec.rb
diff --git a/spec/requests/api/discussions_spec.rb b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/requests/api/discussions_spec.rb
index 35c448d187d..2f868d0cfa0 100644
--- a/spec/requests/api/discussions_spec.rb
+++ b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/requests/api/discussions_spec.rb
@@ -31,6 +31,24 @@ describe API::Discussions do
end
end
+ context 'when noteable is an Epic' do
+ let(:group) { create(:group, :public) }
+ let(:ext_group) { create(:group, :public) }
+ let(:epic) { create(:epic, group: group, author: user) }
+ let!(:epic_note) { create(:discussion_note, noteable: epic, project: project, author: user) }
+
+ before do
+ group.add_owner(user)
+ stub_licensed_features(epics: true)
+ end
+
+ it_behaves_like 'discussions API', 'groups', 'epics', 'id' do
+ let(:parent) { group }
+ let(:noteable) { epic }
+ let(:note) { epic_note }
+ end
+ end
+
context 'when noteable is a Merge Request' do
let!(:noteable) { create(:merge_request_with_diffs, source_project: project, target_project: project, author: user) }
let!(:note) { create(:discussion_note_on_merge_request, noteable: noteable, project: project, author: user) }
spec/requests/api/issues_spec.rb
diff --git a/spec/requests/api/issues_spec.rb b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/requests/api/issues_spec.rb
index d10ee6cc320..dd3628fecda 100644
--- a/spec/requests/api/issues_spec.rb
+++ b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/requests/api/issues_spec.rb
@@ -63,6 +63,10 @@ describe API::Issues do
project.add_guest(guest)
end
+ before do
+ stub_licensed_features(multiple_issue_assignees: false, issue_weights: false)
+ end
+
describe "GET /issues" do
context "when unauthenticated" do
it "returns an array of all issues" do
@@ -183,6 +187,18 @@ describe API::Issues do
expect_paginated_array_response([issue.id, confidential_issue.id, closed_issue.id])
end
+ it 'returns only confidential issues' do
+ get api('/issues', user), params: { confidential: true, scope: 'all' }
+
+ expect_paginated_array_response(confidential_issue.id)
+ end
+
+ it 'returns only public issues' do
+ get api('/issues', user), params: { confidential: false }
+
+ expect_paginated_array_response([issue.id, closed_issue.id])
+ end
+
it 'returns issues reacted by the authenticated user' do
issue2 = create(:issue, project: project, author: user, assignees: [user])
create(:award_emoji, awardable: issue2, user: user2, name: 'star')
@@ -557,6 +573,18 @@ describe API::Issues do
expect_paginated_array_response([group_confidential_issue.id, group_issue.id])
end
+ it 'returns only confidential issues' do
+ get api(base_url, user), params: { confidential: true }
+
+ expect_paginated_array_response(group_confidential_issue.id)
+ end
+
+ it 'returns only public issues' do
+ get api(base_url, user), params: { confidential: false }
+
+ expect_paginated_array_response([group_closed_issue.id, group_issue.id])
+ end
+
it 'returns an array of labeled group issues' do
get api(base_url, user), params: { labels: group_label.title }
@@ -782,6 +810,18 @@ describe API::Issues do
expect_paginated_array_response([issue.id, confidential_issue.id, closed_issue.id])
end
+ it 'returns only confidential issues' do
+ get api("#{base_url}/issues", author), params: { confidential: true }
+
+ expect_paginated_array_response(confidential_issue.id)
+ end
+
+ it 'returns only public issues' do
+ get api("#{base_url}/issues", author), params: { confidential: false }
+
+ expect_paginated_array_response([issue.id, closed_issue.id])
+ end
+
it 'returns project confidential issues for assignee' do
get api("#{base_url}/issues", assignee)
spec/requests/api/merge_requests_spec.rb
diff --git a/spec/requests/api/merge_requests_spec.rb b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/requests/api/merge_requests_spec.rb
index b4cd3130dc5..131bc06e62b 100644
--- a/spec/requests/api/merge_requests_spec.rb
+++ b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/requests/api/merge_requests_spec.rb
@@ -898,6 +898,27 @@ describe API::MergeRequests do
expect(json_response['message']).to eq('405 Method Not Allowed')
end
+ it 'returns 405 if merge request was not approved' do
+ project.add_developer(create(:user))
+ project.update(approvals_before_merge: 1)
+
+ put api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/merge", user)
+
+ expect(response).to have_gitlab_http_status(406)
+ expect(json_response['message']).to eq('Branch cannot be merged')
+ end
+
+ it 'returns 200 if merge request was approved' do
+ approver = create(:user)
+ project.add_developer(approver)
+ project.update(approvals_before_merge: 1)
+ merge_request.approvals.create(user: approver)
+
+ put api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/merge", user)
+
+ expect(response).to have_gitlab_http_status(200)
+ end
+
it "returns 401 if user has no permissions to merge" do
user2 = create(:user)
project.add_reporter(user2)
@@ -984,21 +1005,6 @@ describe API::MergeRequests do
expect(squash_commit.message).to eq(merge_request.default_squash_commit_message)
end
end
-
- describe "the should_remove_source_branch param" do
- let(:source_repository) { merge_request.source_project.repository }
- let(:source_branch) { merge_request.source_branch }
-
- it 'removes the source branch when set' do
- put(
- api("/projects/#{project.id}/merge_requests/#{merge_request.iid}/merge", user),
- params: { should_remove_source_branch: true }
- )
-
- expect(response).to have_gitlab_http_status(200)
- expect(source_repository.branch_exists?(source_branch)).to be_falsy
- end
- end
end
describe "PUT /projects/:id/merge_requests/:merge_request_iid" do
spec/requests/api/notes_spec.rb
diff --git a/spec/requests/api/notes_spec.rb b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/requests/api/notes_spec.rb
index 424f0a82e43..aadf83a79ee 100644
--- a/spec/requests/api/notes_spec.rb
+++ b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/requests/api/notes_spec.rb
@@ -182,4 +182,22 @@ describe API::Notes do
end
end
end
+
+ context "when noteable is an Epic" do
+ let(:group) { create(:group, :public) }
+ let(:ext_group) { create(:group, :public) }
+ let(:epic) { create(:epic, group: group, author: user) }
+ let!(:epic_note) { create(:note, noteable: epic, project: project, author: user) }
+
+ before do
+ group.add_owner(user)
+ stub_licensed_features(epics: true)
+ end
+
+ it_behaves_like "noteable API", 'groups', 'epics', 'id' do
+ let(:parent) { group }
+ let(:noteable) { epic }
+ let(:note) { epic_note }
+ end
+ end
end
Edited by Yorick Peterse