diff options
author | Sean McGivern <sean@gitlab.com> | 2019-05-30 14:50:46 +0300 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2019-05-30 14:50:46 +0300 |
commit | 82ccc8bc120c78efdf68f65d77a72adc5fb48410 (patch) | |
tree | 8b28780bced61634231a97807b9ebd3cbfbc77f5 /spec | |
parent | d5686516bb3d1aaa75c5dffe09fcbc0ef3469521 (diff) | |
parent | 703dd456e38d2cd357c3e7ec15e3b088f8ea4235 (diff) |
Merge branch '9121-sort-relative-position' into 'master'
Support sorting issues using `relative_position`
Closes #62178
See merge request gitlab-org/gitlab-ce!28566
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/projects/issues_controller_spec.rb | 31 | ||||
-rw-r--r-- | spec/models/issue_spec.rb | 15 |
2 files changed, 46 insertions, 0 deletions
diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb index 0c46b43f080..32607fc5f56 100644 --- a/spec/controllers/projects/issues_controller_spec.rb +++ b/spec/controllers/projects/issues_controller_spec.rb @@ -130,6 +130,37 @@ describe Projects::IssuesController do end end + context 'with relative_position sorting' do + let!(:issue_list) { create_list(:issue, 2, project: project) } + + before do + sign_in(user) + project.add_developer(user) + allow(Kaminari.config).to receive(:default_per_page).and_return(1) + end + + it 'overrides the number allowed on the page' do + get :index, + params: { + namespace_id: project.namespace.to_param, + project_id: project, + sort: 'relative_position' + } + + expect(assigns(:issues).count).to eq 2 + end + + it 'allows the default number on the page' do + get :index, + params: { + namespace_id: project.namespace.to_param, + project_id: project + } + + expect(assigns(:issues).count).to eq 1 + end + end + context 'external authorization' do before do sign_in user diff --git a/spec/models/issue_spec.rb b/spec/models/issue_spec.rb index cc777cbf749..a5c7e9db2a1 100644 --- a/spec/models/issue_spec.rb +++ b/spec/models/issue_spec.rb @@ -93,6 +93,21 @@ describe Issue do end end + describe '#sort' do + let(:project) { create(:project) } + + context "by relative_position" do + let!(:issue) { create(:issue, project: project) } + let!(:issue2) { create(:issue, project: project, relative_position: 2) } + let!(:issue3) { create(:issue, project: project, relative_position: 1) } + + it "sorts asc with nulls at the end" do + issues = project.issues.sort_by_attribute('relative_position') + expect(issues).to eq([issue3, issue2, issue]) + end + end + end + describe '#card_attributes' do it 'includes the author name' do allow(subject).to receive(:author).and_return(double(name: 'Robert')) |