diff options
-rw-r--r-- | app/models/time_entry.rb | 1 | ||||
-rw-r--r-- | test/unit/time_entry_test.rb | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/app/models/time_entry.rb b/app/models/time_entry.rb index c5a917d96..062e9c80b 100644 --- a/app/models/time_entry.rb +++ b/app/models/time_entry.rb @@ -116,6 +116,7 @@ class TimeEntry < ActiveRecord::Base 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) end def hours=(h) diff --git a/test/unit/time_entry_test.rb b/test/unit/time_entry_test.rb index 9154c6008..c9386cc37 100644 --- a/test/unit/time_entry_test.rb +++ b/test/unit/time_entry_test.rb @@ -142,6 +142,14 @@ class TimeEntryTest < ActiveSupport::TestCase assert_equal 1, te.errors.count end + def test_acitivity_should_belong_to_project_activities + activity = TimeEntryActivity.create!(:name => 'Other project activity', :project_id => 2, :active => true) + + entry = TimeEntry.new(:spent_on => Date.today, :hours => 1.0, :user => User.find(1), :project_id => 1, :activity => activity) + assert !entry.valid? + assert_include I18n.translate('activerecord.errors.messages.inclusion'), entry.errors[:activity_id] + end + def test_spent_on_with_2_digits_year_should_not_be_valid entry = TimeEntry.new(:project => Project.find(1), :user => User.find(1), :activity => TimeEntryActivity.first, :hours => 1) entry.spent_on = "09-02-04" |