diff options
| author | Jason Blanchard <jas.blanchard@gmail.com> | 2013-11-20 17:59:50 -0500 |
|---|---|---|
| committer | Jason Blanchard <jas.blanchard@gmail.com> | 2013-11-23 15:04:50 -0500 |
| commit | b76948e6c92ce445249116ef86dbbd4d0b57573a (patch) | |
| tree | bd731e10171339dc4e3ee8f09ee0673c0c22c469 /spec/contexts/issues | |
| parent | 983bf359945bc9d4ec1e9581e6bc35dac65e3a3b (diff) | |
| download | gitlab-ce-b76948e6c92ce445249116ef86dbbd4d0b57573a.tar.gz | |
Added sorting to project issues page
Diffstat (limited to 'spec/contexts/issues')
| -rw-r--r-- | spec/contexts/issues/list_context_spec.rb | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/spec/contexts/issues/list_context_spec.rb b/spec/contexts/issues/list_context_spec.rb new file mode 100644 index 00000000000..63f2f3859fa --- /dev/null +++ b/spec/contexts/issues/list_context_spec.rb @@ -0,0 +1,77 @@ +require 'spec_helper' + +describe Issues::ListContext do + + let(:user) { create(:user) } + let(:project) { create(:project, creator: user) } + + titles = ['foo','bar','baz'] + titles.each_with_index do |title, index| + let!(title.to_sym) { create(:issue, title: title, project: project, created_at: Time.now - (index * 60)) } + end + + describe 'sorting' do + + it 'sorts by newest' do + params = {:sort => 'newest'} + + issues = Issues::ListContext.new(project, user, params).execute + issues.first.should eq foo + end + + it 'sorts by oldest' do + params = {:sort => 'oldest'} + + issues = Issues::ListContext.new(project, user, params).execute + issues.first.should eq baz + end + + it 'sorts by recently updated' do + params = {:sort => 'recently_updated'} + baz.updated_at = Time.now + 10 + baz.save + + issues = Issues::ListContext.new(project, user, params).execute + issues.first.should eq baz + end + + it 'sorts by least recently updated' do + params = {:sort => 'last_updated'} + bar.updated_at = Time.now - 10 + bar.save + + issues = Issues::ListContext.new(project, user, params).execute + issues.first.should eq bar + end + + describe 'sorting by milestone' do + + let(:newer_due_milestone) { create(:milestone, :due_date => '2013-12-11') } + let(:later_due_milestone) { create(:milestone, :due_date => '2013-12-12') } + + before :each do + foo.milestone = newer_due_milestone + foo.save + bar.milestone = later_due_milestone + bar.save + end + + it 'sorts by most recently due milestone' do + params = {:sort => 'milestone_due_soon'} + + issues = Issues::ListContext.new(project, user, params).execute + issues.first.should eq foo + + end + + it 'sorts by least recently due milestone' do + params = {:sort => 'milestone_due_later'} + + issues = Issues::ListContext.new(project, user, params).execute + issues.first.should eq bar + end + + end + end + +end |
