Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/concerns/sorting_preference_spec.rb')
-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