summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorFelipe Artur <felipefac@gmail.com>2016-04-27 12:35:30 -0300
committerFelipe Artur <felipefac@gmail.com>2016-05-24 16:49:15 -0400
commit996240a4895abddf069eb6fc195bacee5e344e16 (patch)
tree58d77ae37f32a159952cfbbe519a8c2c75b32b98 /spec
parentbaa9c66057fccefce05b9f01009942fb079fee22 (diff)
downloadgitlab-ce-996240a4895abddf069eb6fc195bacee5e344e16.tar.gz
Fix issues/MRs filter when ordering by milestone due date
Diffstat (limited to 'spec')
-rw-r--r--spec/models/concerns/issuable_spec.rb41
1 files changed, 40 insertions, 1 deletions
diff --git a/spec/models/concerns/issuable_spec.rb b/spec/models/concerns/issuable_spec.rb
index 4a4cd093435..fa06a6f7ecf 100644
--- a/spec/models/concerns/issuable_spec.rb
+++ b/spec/models/concerns/issuable_spec.rb
@@ -1,7 +1,7 @@
require 'spec_helper'
describe Issue, "Issuable" do
- let(:issue) { create(:issue) }
+ let!(:issue) { create(:issue) }
let(:user) { create(:user) }
describe "Associations" do
@@ -114,6 +114,45 @@ describe Issue, "Issuable" do
end
end
+ describe "#sort" do
+ #Correct order is:
+ #Issues/MRs with milestones ordered by date
+ #Issues/MRs with milestones without dates
+ #Issues/MRs without milestones
+ let(:project) { issue.project }
+ let!(:early_milestone) { create(:milestone, project: project, due_date: 10.days.from_now) }
+ let!(:late_milestone) { create(:milestone, project: project, due_date: 30.days.from_now) }
+ let!(:issue1) { create(:issue, project: project, milestone: early_milestone) }
+ let!(:issue2) { create(:issue, project: project, milestone: late_milestone) }
+ let!(:issue3) { create(:issue, project: project) }
+
+
+ context "milestone due later" do
+ subject { Issue.where(project_id: project.id).order_milestone_due_desc }
+ before { @issues = subject }
+
+ it "puts issues with nil values at the end of collection" do
+ expect(@issues.first).to eq(issue2)
+ expect(@issues.second).to eq(issue1)
+ expect(@issues.third).to eq(issue)
+ expect(@issues.fourth).to eq(issue3)
+ end
+ end
+
+ context "milestone due soon" do
+ subject { Issue.where(project_id: project.id).order_milestone_due_asc }
+ before { @issues = subject }
+
+ it "puts issues with nil values at the end of collection" do
+ expect(@issues.first).to eq(issue1)
+ expect(@issues.second).to eq(issue2)
+ expect(@issues.third).to eq(issue)
+ expect(@issues.fourth).to eq(issue3)
+ end
+ end
+ end
+
+
describe '#subscribed?' do
context 'user is not a participant in the issue' do
before { allow(issue).to receive(:participants).with(user).and_return([]) }