diff --git a/app/models/time_entry.rb b/app/models/time_entry.rb old mode 100644 new mode 100755 index 2376f36..4296dca --- a/app/models/time_entry.rb +++ b/app/models/time_entry.rb @@ -44,7 +44,7 @@ class TimeEntry < ActiveRecord::Base validates_presence_of :user_id, :activity_id, :project_id, :hours, :spent_on validates_presence_of :issue_id, :if => lambda { Setting.timelog_required_fields.include?('issue_id') } validates_presence_of :comments, :if => lambda { Setting.timelog_required_fields.include?('comments') } - validates_numericality_of :hours, :allow_nil => true, :message => :invalid + validates_numericality_of :hours, :allow_nil => true, :greater_than => 0, :less_than_or_equal_to => 1000 validates_length_of :comments, :maximum => 1024, :allow_nil => true validates :spent_on, :date => true before_validation :set_project_if_nil @@ -122,7 +122,6 @@ class TimeEntry < ActiveRecord::Base end def validate_time_entry - errors.add :hours, :invalid if hours && (hours < 0 || hours >= 1000) errors.add :project_id, :invalid if project.nil? errors.add :issue_id, :invalid if (issue_id && !issue) || (issue && project!=issue.project) || @invalid_issue_id errors.add :activity_id, :inclusion if activity_id_changed? && project && !project.activities.include?(activity) diff --git a/test/unit/time_entry_test.rb b/test/unit/time_entry_test.rb old mode 100644 new mode 100755 index 1117133..0adedf5 --- a/test/unit/time_entry_test.rb +++ b/test/unit/time_entry_test.rb @@ -184,4 +184,11 @@ class TimeEntryTest < ActiveSupport::TestCase assert_equal ["Comment cannot be blank", "Issue cannot be blank"], entry.errors.full_messages.sort end end + + def test_create_should_not_allow_spent_time_with_0_hours + entry = TimeEntry.new(:project_id => 1, :spent_on => '2010-01-01', :hours => 0, :user => User.find(1), :activity => TimeEntryActivity.first) + + assert !entry.save + assert_equal 1, entry.errors.count + end end