##// END OF EJS Templates
Don't validate start date when updating an issue without changing it (#14086)....
Jean-Philippe Lang -
r11701:8cea7d8cf213
parent child
Show More
@@ -548,11 +548,11 class Issue < ActiveRecord::Base
548 548 end
549 549
550 550 def validate_issue
551 if due_date && start_date && due_date < start_date
551 if due_date && start_date && (start_date_changed? || due_date_changed?) && due_date < start_date
552 552 errors.add :due_date, :greater_than_start_date
553 553 end
554 554
555 if start_date && soonest_start && start_date < soonest_start
555 if start_date && start_date_changed? && soonest_start && start_date < soonest_start
556 556 errors.add :start_date, :earlier_than_minimum_start_date, :date => format_date(soonest_start)
557 557 end
558 558
@@ -65,13 +65,20 module ObjectHelpers
65 65 role
66 66 end
67 67
68 def Issue.generate!(attributes={})
68 # Generates an unsaved Issue
69 def Issue.generate(attributes={})
69 70 issue = Issue.new(attributes)
70 71 issue.project ||= Project.find(1)
71 72 issue.tracker ||= issue.project.trackers.first
72 73 issue.subject = 'Generated' if issue.subject.blank?
73 74 issue.author ||= User.find(2)
74 75 yield issue if block_given?
76 issue
77 end
78
79 # Generates a saved Issue
80 def Issue.generate!(attributes={}, &block)
81 issue = Issue.generate(attributes, &block)
75 82 issue.save!
76 83 issue
77 84 end
@@ -92,6 +92,27 class IssueTest < ActiveSupport::TestCase
92 92 assert_include 'Due date must be greater than start date', issue.errors.full_messages
93 93 end
94 94
95 def test_start_date_lesser_than_soonest_start_should_not_validate_on_create
96 issue = Issue.generate(:start_date => '2013-06-04')
97 issue.stubs(:soonest_start).returns(Date.parse('2013-06-10'))
98 assert !issue.valid?
99 assert_include "Start date cannot be earlier than 06/10/2013 because of preceding issues", issue.errors.full_messages
100 end
101
102 def test_start_date_lesser_than_soonest_start_should_not_validate_on_update_if_changed
103 issue = Issue.generate!(:start_date => '2013-06-04')
104 issue.stubs(:soonest_start).returns(Date.parse('2013-06-10'))
105 issue.start_date = '2013-06-07'
106 assert !issue.valid?
107 assert_include "Start date cannot be earlier than 06/10/2013 because of preceding issues", issue.errors.full_messages
108 end
109
110 def test_start_date_lesser_than_soonest_start_should_validate_on_update_if_unchanged
111 issue = Issue.generate!(:start_date => '2013-06-04')
112 issue.stubs(:soonest_start).returns(Date.parse('2013-06-10'))
113 assert issue.valid?
114 end
115
95 116 def test_estimated_hours_should_be_validated
96 117 set_language_if_valid 'en'
97 118 ['-2'].each do |invalid|
General Comments 0
You need to be logged in to leave comments. Login now