summaryrefslogtreecommitdiff
path: root/spec/controllers/concerns
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-06-03 09:08:43 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-06-03 09:08:43 +0000
commit6be8ed5a9529d37f1512549f62db1e44961a4fc0 (patch)
tree3c7eb8f12c921666ec6afa7b07276b0db2bf65a1 /spec/controllers/concerns
parentb646822e5253cfa239728ed0d8b96cb584fc96c1 (diff)
downloadgitlab-ce-6be8ed5a9529d37f1512549f62db1e44961a4fc0.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/controllers/concerns')
-rw-r--r--spec/controllers/concerns/sorting_preference_spec.rb44
1 files changed, 41 insertions, 3 deletions
diff --git a/spec/controllers/concerns/sorting_preference_spec.rb b/spec/controllers/concerns/sorting_preference_spec.rb
index c0091e8b694..82a920215ca 100644
--- a/spec/controllers/concerns/sorting_preference_spec.rb
+++ b/spec/controllers/concerns/sorting_preference_spec.rb
@@ -4,6 +4,7 @@ require 'spec_helper'
RSpec.describe SortingPreference do
let(:user) { create(:user) }
+ let(:params) { {} }
let(:controller_class) do
Class.new do
@@ -23,6 +24,46 @@ RSpec.describe SortingPreference do
allow(controller).to receive(:sorting_field).and_return(:issues_sort)
end
+ describe '#set_sort_order' do
+ let(:group) { build(:group) }
+ let(:issue_weights_available) { true }
+
+ before do
+ allow(controller).to receive(:default_sort_order).and_return('updated_desc')
+ allow(controller).to receive(:action_name).and_return('issues')
+ allow(controller).to receive(:can_sort_by_issue_weight?).and_return(issue_weights_available)
+ user.user_preference.update!(issues_sort: sorting_field)
+ end
+
+ subject { controller.send(:set_sort_order) }
+
+ context 'when user preference contains allowed sorting' do
+ let(:sorting_field) { 'updated_asc' }
+
+ it 'sets sort order from user_preference' do
+ is_expected.to eq('updated_asc')
+ end
+ end
+
+ context 'when user preference contains weight sorting' do
+ let(:sorting_field) { 'weight_desc' }
+
+ context 'when user can sort by issue weight' do
+ it 'sets sort order from user_preference' do
+ is_expected.to eq('weight_desc')
+ end
+ end
+
+ context 'when user cannot sort by issue weight' do
+ let(:issue_weights_available) { false }
+
+ it 'sets default sort order' do
+ is_expected.to eq('updated_desc')
+ end
+ end
+ end
+ end
+
describe '#set_sort_order_from_user_preference' do
subject { controller.send(:set_sort_order_from_user_preference) }
@@ -49,8 +90,6 @@ RSpec.describe SortingPreference do
end
context 'when a user sorting preference exists' do
- let(:params) { {} }
-
before do
user.user_preference.update!(issues_sort: 'updated_asc')
end
@@ -81,7 +120,6 @@ RSpec.describe SortingPreference do
context 'when cookie exists' do
let(:cookies) { { 'issue_sort' => 'id_asc' } }
- let(:params) { {} }
it 'sets the cookie with the right values and flags' do
subject