diff options
author | Felipe Artur <felipefac@gmail.com> | 2016-04-27 12:35:30 -0300 |
---|---|---|
committer | Felipe Artur <felipefac@gmail.com> | 2016-05-24 16:49:15 -0400 |
commit | 996240a4895abddf069eb6fc195bacee5e344e16 (patch) | |
tree | 58d77ae37f32a159952cfbbe519a8c2c75b32b98 /spec | |
parent | baa9c66057fccefce05b9f01009942fb079fee22 (diff) | |
download | gitlab-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.rb | 41 |
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([]) } |