@@ -638,7 +638,13 class Issue < ActiveRecord::Base | |||
|
638 | 638 | if leaf? |
|
639 | 639 | if start_date.nil? || start_date < date |
|
640 | 640 | self.start_date, self.due_date = date, date + duration |
|
641 |
|
|
|
641 | begin | |
|
642 | save | |
|
643 | rescue ActiveRecord::StaleObjectError | |
|
644 | reload | |
|
645 | self.start_date, self.due_date = date, date + duration | |
|
646 | save | |
|
647 | end | |
|
642 | 648 | end |
|
643 | 649 | else |
|
644 | 650 | leaves.each do |leaf| |
@@ -768,6 +768,19 class IssueTest < ActiveSupport::TestCase | |||
|
768 | 768 | assert_equal issue1.due_date + 1, issue2.reload.start_date |
|
769 | 769 | end |
|
770 | 770 | |
|
771 | def test_rescheduling_a_stale_issue_should_not_raise_an_error | |
|
772 | stale = Issue.find(1) | |
|
773 | issue = Issue.find(1) | |
|
774 | issue.subject = "Updated" | |
|
775 | issue.save! | |
|
776 | ||
|
777 | date = 10.days.from_now.to_date | |
|
778 | assert_nothing_raised do | |
|
779 | stale.reschedule_after(date) | |
|
780 | end | |
|
781 | assert_equal date, stale.reload.start_date | |
|
782 | end | |
|
783 | ||
|
771 | 784 | def test_overdue |
|
772 | 785 | assert Issue.new(:due_date => 1.day.ago.to_date).overdue? |
|
773 | 786 | assert !Issue.new(:due_date => Date.today).overdue? |
General Comments 0
You need to be logged in to leave comments.
Login now