Index: app/models/issue.rb IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- app/models/issue.rb (revision 6d260195e1f4269340b30e5ef2b401c2f92aed09) +++ app/models/issue.rb (date 1611739322377) @@ -914,7 +914,7 @@ # Returns true if the issue is overdue def overdue? - due_date.present? && (due_date < User.current.today) && !closed? + due_date && (due_date < (closed_on ? closed_on : 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 =================================================================== --- test/unit/issue_test.rb (revision 6d260195e1f4269340b30e5ef2b401c2f92aed09) +++ test/unit/issue_test.rb (date 1611905435592) @@ -2397,13 +2397,17 @@ def test_overdue User.current = nil today = User.current.today - assert Issue.new(:due_date => (today - 1.day).to_date).overdue? + closed_status = IssueStatus.where(:is_closed => true).first + + assert Issue.new(:due_date => (today - 1.day)).overdue? assert !Issue.new(:due_date => today).overdue? - assert !Issue.new(:due_date => (today + 1.day).to_date).overdue? + assert !Issue.new(:due_date => (today + 1.day)).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? + + 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 @@ -3184,7 +3188,7 @@ user_in_asia = users(:users_002) user_in_asia.pref.update! :time_zone => 'Hongkong' - issue = Issue.generate! :due_date => Date.parse('2016-03-20') + issue = Issue.generate! :due_date => Date.parse('2016-03-21') # server time is UTC time = Time.parse '2016-03-20 20:00 UTC'