diff --git a/app/models/issue.rb b/app/models/issue.rb index 8c8947bac..f1d04d994 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -2069,7 +2069,7 @@ class Issue < ActiveRecord::Base tracker.disabled_core_fields.each do |attribute| send "#{attribute}=", nil end - self.priority_id ||= IssuePriority.default&.id || IssuePriority.active.first.id + self.priority_id ||= IssuePriority.default&.id || IssuePriority.active.first&.id self.done_ratio ||= 0 end end diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index 14124f7bd..d089883f4 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -3559,4 +3559,17 @@ class IssueTest < ActiveSupport::TestCase r = Issue.like('issue today') assert_include Issue.find(7), r end + + test "clear_disabled_fields raises error when no priority is present" do + issue = Issue.new + # Stubbing IssuePriority.default and IssuePriority.active.first to return nil + IssuePriority.stubs(:default).returns(nil) + IssuePriority.stubs(:active).returns([]) + + issue.tracker = Tracker.find(1) + issue.priority_id = nil + + # Assert that attempting to call clear_disabled_fields raises NoMethodError + assert_nothing_raised { issue.send(:clear_disabled_fields) } + end end