Index: app/models/issue.rb IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/app/models/issue.rb b/app/models/issue.rb --- a/app/models/issue.rb (revision e4b47acbc7e7dba269965d62a75683e46f30307e) +++ b/app/models/issue.rb (revision 190a8835f1946a51b99eee8362996d16b52b9dec) @@ -949,7 +949,7 @@ # Returns true if the issue is overdue def overdue? - due_date.present? && (due_date < User.current.today) && !closed? + due_date && (due_date < (status.is_closed ? closed_on.to_date : Date.current)) end # Is the amount of work done less than it should for the due date Index: test/unit/issue_test.rb IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb --- a/test/unit/issue_test.rb (revision e4b47acbc7e7dba269965d62a75683e46f30307e) +++ b/test/unit/issue_test.rb (revision 190a8835f1946a51b99eee8362996d16b52b9dec) @@ -2494,15 +2494,17 @@ def test_overdue User.current = nil today = User.current.today - assert Issue.new(:due_date => (today - 1.day).to_date).overdue? - assert !Issue.new(:due_date => today).overdue? - assert !Issue.new(:due_date => (today + 1.day).to_date).overdue? - assert !Issue.new(:due_date => nil).overdue? - assert !Issue. - new( - :due_date => (today - 1.day).to_date, - :status => IssueStatus.where(:is_closed => true).first - ).overdue? + opened_status = IssueStatus.where(:is_closed => false).first + closed_status = IssueStatus.where(:is_closed => true).first + assert Issue.new(:due_date => (today - 1.day), :status => opened_status).overdue? + assert !Issue.new(:due_date => today, :status => opened_status).overdue? + assert !Issue.new(:due_date => (today + 1.day), :status => opened_status).overdue? + assert !Issue.new(:due_date => nil, :status => opened_status).overdue? + + assert Issue.new(:due_date => (today - 1.day), :closed_on => today, :status => closed_status).overdue? + assert !Issue.new(:due_date => today, :closed_on => today, :status => closed_status).overdue? + assert !Issue.new(:due_date => (today + 1.day), :closed_on => today, :status => closed_status).overdue? + assert !Issue.new(:due_date => nil, :closed_on => today, :status => closed_status).overdue? end test "#behind_schedule? should be false if the issue has no start_date" do