diff options
Diffstat (limited to 'spec/models/timelog_spec.rb')
-rw-r--r-- | spec/models/timelog_spec.rb | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/spec/models/timelog_spec.rb b/spec/models/timelog_spec.rb index f96d02e6a82..515057a862b 100644 --- a/spec/models/timelog_spec.rb +++ b/spec/models/timelog_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Timelog do +RSpec.describe Timelog, feature_category: :team_planning do subject { create(:timelog) } let_it_be(:issue) { create(:issue) } @@ -149,4 +149,30 @@ RSpec.describe Timelog do end end end + + describe 'sorting' do + let_it_be(:user) { create(:user) } + let_it_be(:timelog_a) { create(:issue_timelog, time_spent: 7200, spent_at: 1.hour.ago, user: user) } + let_it_be(:timelog_b) { create(:issue_timelog, time_spent: 5400, spent_at: 2.hours.ago, user: user) } + let_it_be(:timelog_c) { create(:issue_timelog, time_spent: 1800, spent_at: 30.minutes.ago, user: user) } + let_it_be(:timelog_d) { create(:issue_timelog, time_spent: 3600, spent_at: 1.day.ago, user: user) } + + describe '.sort_by_field' do + it 'sorts timelogs by time spent in ascending order' do + expect(user.timelogs.sort_by_field('time_spent', :asc)).to eq([timelog_c, timelog_d, timelog_b, timelog_a]) + end + + it 'sorts timelogs by time spent in descending order' do + expect(user.timelogs.sort_by_field('time_spent', :desc)).to eq([timelog_a, timelog_b, timelog_d, timelog_c]) + end + + it 'sorts timelogs by spent at in ascending order' do + expect(user.timelogs.sort_by_field('spent_at', :asc)).to eq([timelog_d, timelog_b, timelog_a, timelog_c]) + end + + it 'sorts timelogs by spent at in descending order' do + expect(user.timelogs.sort_by_field('spent_at', :desc)).to eq([timelog_c, timelog_a, timelog_b, timelog_d]) + end + end + end end |