diff --git a/app/models/issue_priority.rb b/app/models/issue_priority.rb index a4c93370e..10b81b577 100644 --- a/app/models/issue_priority.rb +++ b/app/models/issue_priority.rb @@ -19,7 +19,7 @@ class IssuePriority < Enumeration has_many :issues, :foreign_key => 'priority_id' after_destroy {|priority| priority.class.compute_position_names} - after_save {|priority| priority.class.compute_position_names if (priority.saved_change_to_position? && priority.position) || priority.saved_change_to_active?} + after_save {|priority| priority.class.compute_position_names if (priority.saved_change_to_position? && priority.position) || priority.saved_change_to_active? || priority.saved_change_to_is_default?} OptionName = :enumeration_issue_priorities diff --git a/test/unit/issue_priority_test.rb b/test/unit/issue_priority_test.rb index 19ee8072c..0719e066e 100644 --- a/test/unit/issue_priority_test.rb +++ b/test/unit/issue_priority_test.rb @@ -95,6 +95,13 @@ class IssuePriorityTest < ActiveSupport::TestCase assert_equal 'highest', IssuePriority.active.order(:position).last.position_name end + def test_defaulting_a_priority_should_update_position_names + prio = IssuePriority.first + prio.is_default = true + prio.save + assert_equal %w(default high4 high3 high2 highest), IssuePriority.active.to_a.sort.map(&:position_name) + end + def test_destroying_a_priority_should_update_position_names IssuePriority.find_by_position_name('highest').destroy assert_equal %w(lowest default high2 highest), IssuePriority.active.to_a.sort.map(&:position_name)