diff options
Diffstat (limited to 'spec/requests/api/issues/issues_spec.rb')
-rw-r--r-- | spec/requests/api/issues/issues_spec.rb | 48 |
1 files changed, 41 insertions, 7 deletions
diff --git a/spec/requests/api/issues/issues_spec.rb b/spec/requests/api/issues/issues_spec.rb index 9204ee4d7f0..c5e57b5b18b 100644 --- a/spec/requests/api/issues/issues_spec.rb +++ b/spec/requests/api/issues/issues_spec.rb @@ -488,6 +488,8 @@ RSpec.describe API::Issues do let_it_be(:issue3) { create(:issue, project: project, author: user, due_date: frozen_time + 10.days) } let_it_be(:issue4) { create(:issue, project: project, author: user, due_date: frozen_time + 34.days) } let_it_be(:issue5) { create(:issue, project: project, author: user, due_date: frozen_time - 8.days) } + let_it_be(:issue6) { create(:issue, project: project, author: user, due_date: frozen_time) } + let_it_be(:issue7) { create(:issue, project: project, author: user, due_date: frozen_time + 1.day) } before do travel_to(frozen_time) @@ -500,7 +502,13 @@ RSpec.describe API::Issues do it 'returns them all when argument is empty' do get api('/issues?due_date=', user) - expect_paginated_array_response(issue5.id, issue4.id, issue3.id, issue2.id, issue.id, closed_issue.id) + expect_paginated_array_response(issue7.id, issue6.id, issue5.id, issue4.id, issue3.id, issue2.id, issue.id, closed_issue.id) + end + + it 'returns issues with due date' do + get api('/issues?due_date=any', user) + + expect_paginated_array_response(issue7.id, issue6.id, issue5.id, issue4.id, issue3.id, issue2.id) end it 'returns issues without due date' do @@ -512,19 +520,31 @@ RSpec.describe API::Issues do it 'returns issues due for this week' do get api('/issues?due_date=week', user) - expect_paginated_array_response(issue2.id) + expect_paginated_array_response(issue7.id, issue6.id, issue2.id) end it 'returns issues due for this month' do get api('/issues?due_date=month', user) - expect_paginated_array_response(issue3.id, issue2.id) + expect_paginated_array_response(issue7.id, issue6.id, issue3.id, issue2.id) end it 'returns issues that are due previous two weeks and next month' do get api('/issues?due_date=next_month_and_previous_two_weeks', user) - expect_paginated_array_response(issue5.id, issue4.id, issue3.id, issue2.id) + expect_paginated_array_response(issue7.id, issue6.id, issue5.id, issue4.id, issue3.id, issue2.id) + end + + it 'returns issues that are due today' do + get api('/issues?due_date=today', user) + + expect_paginated_array_response(issue6.id) + end + + it 'returns issues that are due tomorrow' do + get api('/issues?due_date=tomorrow', user) + + expect_paginated_array_response(issue7.id) end it 'returns issues that are overdue' do @@ -1164,14 +1184,15 @@ RSpec.describe API::Issues do end describe 'PUT /projects/:id/issues/:issue_iid/reorder' do - let_it_be(:project) { create(:project) } + let_it_be(:group) { create(:group) } + let_it_be(:project) { create(:project, group: group) } let_it_be(:issue1) { create(:issue, project: project, relative_position: 10) } let_it_be(:issue2) { create(:issue, project: project, relative_position: 20) } let_it_be(:issue3) { create(:issue, project: project, relative_position: 30) } context 'when user has access' do - before do - project.add_developer(user) + before_all do + group.add_developer(user) end context 'with valid params' do @@ -1197,6 +1218,19 @@ RSpec.describe API::Issues do expect(response).to have_gitlab_http_status(:not_found) end end + + context 'with issue in different project' do + let(:other_project) { create(:project, group: group) } + let(:other_issue) { create(:issue, project: other_project, relative_position: 80) } + + it 'reorders issues and returns a successful 200 response' do + put api("/projects/#{other_project.id}/issues/#{other_issue.iid}/reorder", user), params: { move_after_id: issue2.id, move_before_id: issue3.id } + + expect(response).to have_gitlab_http_status(:ok) + expect(other_issue.reload.relative_position) + .to be_between(issue2.reload.relative_position, issue3.reload.relative_position) + end + end end context 'with unauthorized user' do |